使用 ctypes 从 Python 调用 fortran 函数

2024-03-12

我希望使用 ctypes 来调用一些旧的 Fortran 库,这些库是我老板几年前编写的。我按照中给出的例子进行操作上一个问题 https://stackoverflow.com/questions/5811949/call-functions-from-a-shared-fortran-library-in-python,我得到了预期的结果。

但是,当我修改代码时,为了稍微接近我面临的情况,这样

integer function addtwo(a, b)
  integer, intent(in) :: a, b
  addtwo = a + b
end function

becomes

real function addtwo(a, b)
  integer, intent(in) :: a, b
  addtwo = a + b
end function

即,该函数现在是real, not integer,返回的值始终是0。谁能解释一下发生了什么事以及我应该如何解决这个问题?

(PS。我在 mac os 雪豹上使用 64 位 gfortran 编译器)

EDIT:我正在努力解决的功能看起来像:

real function ykr(seed)

  integer, intent(in) :: seed
  real ykr0
  ykr= real(seed)
end function

Really, ykr调用另一个函数,ykr0,递归地,但由于即使在这个基本方面我也很挣扎,所以我现在忽略它。我看不出这段代码和上面的代码有什么不同,但是调用ykr_(byref(c_int(4)))回报0, not 4正如预期的那样...


添加行

ykr_.restype = c_float

在你的Python代码中,之前ykr_(byref(c_int(4)))。 这将函数的返回类型设置为float (or realFortran 语言)。

在原来的帖子中,这是没有必要的,因为 int 被假定为默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ctypes 从 Python 调用 fortran 函数 的相关文章

  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 用 Python 编写一个无操作或虚拟类

    假设我有这样的代码 foo fooFactory create 由于种种原因 fooFactory create 可能无法创建实例Foo 如果可以的话我想要fooFactory create 返回一个虚拟 无操作对象 这个对象应该是完全惰性
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • Python3 查找 2 个列表中有多少个差异才能相等

    假设我们有 2 个列表 always具有相同的长度和always包含字符串 list1 sot sot ts gg gg gg list2 gg gg gg gg gg sot 我们需要找到 其中有多少项list2应该改变 以便它等于lis
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • WindowsError:[错误 5] 访问被拒绝

    我一直在尝试终止一个进程 但我的所有选项都给出了 Windows 访问被拒绝错误 我通过以下方式打开进程 一个python脚本 test subprocess Popen sys executable testsc py 我想杀死那个进程
  • 是否可以写一个负的python类型注释

    这可能听起来不合理 但现在我需要否定类型注释 我的意思是这样的 an int Not Iterable a string Iterable 这是因为我为一个函数编写了一个重载 而 mypy 不理解我 我的功能看起来像这样 overload
  • Plotly:如何避免巨大的 html 文件大小

    我有一个 3D 装箱模型 它使用绘图来绘制输出图 我注意到 绘制了 600 个项目 生成 html 文件需要很长时间 文件大小为 89M 这太疯狂了 我怀疑可能存在一些巨大的重复 或者是由单个项目的 add trace 方法引起的 阴谋 为
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • Google App Engine 中的自定义身份验证

    有谁知道或知道我可以在哪里学习如何使用 Python 和 Google App Engine 创建自定义身份验证流程 我不想使用 Google 帐户进行身份验证 并且希望能够创建自己的用户 如果不是专门针对 Google App Engin
  • 使用 Keras 和 fit_generator 绘制 TensorBoard 分布和直方图

    我正在使用 Keras 使用 fit generator 函数训练 CNN 这似乎是一个已知问题 https github com fchollet keras issues 3358TensorBoard 在此设置中不显示直方图和分布 有
  • 使用“pythonw”(而不是“python”)运行应用程序时找不到模块

    我尝试了这个最小的例子 from flask import Flask app Flask name app route def hello world return Hello World if name main app run deb
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA

随机推荐

  • PyQt 允许枚举值和字符串

    在 PySide 中 我可以通过使用获取具有可能 允许的枚举值及其字符串表示形式的字典values属性 例如 QtWidgets QMessageBox StandardButton values items 如何在 PyQt4 PyQt5
  • 为什么禁用的 JavaFX TextArea 的颜色与 TextField 不同

    我正在重新设计 JavaFX 应用程序 但我有一个问题 disabled风格 当我尝试改变 fx text fill and fx opacity settings 文本区域的文本颜色仍然比文本字段稍浅 这是我现在得到的风格 Text Fi
  • AppDelegate.m 用于 FBSDK 和 LinkingManager

    要使用 FBSDK 我需要在应用程序委托中使用此代码片段 BOOL application UIApplication application openURL NSURL url sourceApplication NSString sou
  • 使用学习的人工神经网络来解决输入

    我最近再次深入研究人工神经网络 包括进化和训练 我有一个问题 关于什么方法 如果有的话 可以解决导致目标输出集的输入 这个有名字吗 我试图寻找的一切都会导致我进行反向传播 但这不一定是我所需要的 在我的搜索中 我最接近表达我的问题的是 是否
  • 为什么 tailwind css 类名中有一个反斜杠?

    我正在尝试学习和使用最近非常流行的新实用程序框架 顺风CSS https tailwindcss com 当我使用文档中的说明编译 css 时 我看到很多 css 类名都有冒号 其中 前面有一个反斜杠 这是为什么 是为了让CSS明白有一个
  • Vagrant + Xdebug + Atom

    我有一个安装了 xdebug 的 vagrant box 在 OSX 上运行 但我很难获取 Atom xdebug 插件 php debug 连接到它 我粘贴了phpinfo 将数据输入 xdebug 验证站点 结果显示一切正常 并且您可以
  • 使用短信验证设备的电话号码

    我正在尝试通过让设备向自身发送短信并自动检查是否已收到短信来验证 Android 设备的电话号码 我怎样才能做到这一点 首先 这需要两个权限 一种用于发送短信 另一种用于接收短信 以下内容需要在您的 AndroidManifest xml
  • navigationToURL 通过 POST 发送数据到 php 页面

    想象一下 我在 Flash 应用程序中有一个表单 其中包含两个字段 input1 和 input2 当用户填写完此表单后 它会转到 php 页面 目前 我正在使用 GET方法发送数据 像这样 var request URLRequest r
  • SIM卡认证

    我是 SIM 卡新手 我正在尝试使用 Gemalto JCardManager 金雅拓开发人员套件的一部分 和 Gemplus USB 智能卡读卡器对 SIM 卡进行身份验证 显然 我拥有所有必要的密钥 kic kid 和 kik 但我无法
  • vuetifyjs:仅添加使用过的图标来构建

    我目前正在使用默认的 Material Design Icons 构建一个 vuetifyjs app 在生产版本中 我仅使用该字体的 2 个图标 由 vuetify 组件芯片使用 按照建议 我包含了完整的 iconfont 但生产版本迫使
  • FormsAuthentication 对象已过时 [使用 MVC5]

    我在 MVC5 站点中使用以下代码 HttpPost ValidateAntiForgeryToken public ActionResult Login LoginModel loginModel if ModelState IsVali
  • 从 Matlab 调用 R

    我曾经能够通过系统调用从 Matlab 调用 R system usr bin R no save lt myscript R 但现在 使用 Matlab R2012b 和 R 版本 3 0 0 2013 04 03 Masked Marv
  • Android - 在单独的类中使用共享首选项?

    我想使用 android 中的共享首选项保存数据 但我希望使用单独的类来完成这项任务 我已经实现了该类 如下所示 import android content Context import android content SharedPre
  • 不变函子的例子?

    我正在阅读monad 层包的文档 http hackage haskell org package layers 0 1 docs Documentation Layers Overview html我的大脑快要沸腾了 In the mmt
  • 如何配置 gradle 仅对某些依赖项组使用本地存储库?

    工作关 闭gradle 依赖文档 http www gradle org dependency management html 我们有一个包含这样的片段的 build gradle repositories mavenCentral ivy
  • RijndaelManaged:第四代?

    我想在我的应用程序中实现最安全 最可靠的对称密钥加密形式 用户应该输入密码来加密 解密 仅此而已 对于 RijndaelManaged 必须输入密钥和 IV 我不知道如何解决这种情况 现在 我输入的密码经过 SHA256 哈希处理 然后用作
  • MATLAB 对 2D 和 3D 矩阵进行排序并通过索引访问

    假设你有一个一维矩阵 a rand 1 5 sa i sort a then sa and a i 是相同的 然而 如果矩阵的大小增加 a rand 3 4 sa i sort a then sa and a i 不一样 当我尝试按三维矩阵
  • React 中的 getElementById

    目前出现此错误 Uncaught TypeError Cannot read property value of null 我在下面的渲染函数中调用它
  • 触发单击 SVG 图像

    我正在尝试使用 SVG 图像 看看是否可以为我的网站创建地图 我从第三方网站获取了该图像 现在我只是尝试实现它 这是我所拥有的一个小提琴 https jsfiddle net hL1weg3o 1 https jsfiddle net hL
  • 使用 ctypes 从 Python 调用 fortran 函数

    我希望使用 ctypes 来调用一些旧的 Fortran 库 这些库是我老板几年前编写的 我按照中给出的例子进行操作上一个问题 https stackoverflow com questions 5811949 call functions