fortran - f2py Fortran 子例程中的 check 和 dependent 属性是什么?

标签 fortran f2py

我正在修改一些 Fortran 代码(实际上是 f2py),并且遇到了这样的子例程( https://github.com/dfm/python-nufft/blob/master/nufft/nufft1d.pyf ):

subroutine nufft1d1f90(nj,xj,cj,iflag,eps,ms,fk,ier) ! in :_nufft:src/nufft1d/nufft1df90.f
    integer, optional,check(len(xj)>=nj),depend(xj) :: nj=len(xj)
    real*8 dimension(nj) :: xj
    complex*16 dimension(nj),depend(nj) :: cj
    integer :: iflag
    real*8 :: eps
    integer :: ms
    complex*16 dimension(ms),intent(out),depend(ms) :: fk
    integer,intent(out) :: ier
end subroutine nufft1d1f90

我可以猜测基本知识,但我不确定 check 语句的具体作用或我如何修改它。另外,我猜 depend 会以某种方式告诉编译器声明的变量依赖于其他一些变量,但是这样做的后果是什么?

我通常使用 Python 进行编程,如果必须的话,也可以使用 Matlab 进行编程,但我唯一使用 Fortran 的经验是在 12 年前,所以我很生疏。不知何故,谷歌未能找到任何对我有用的信息和咨询http://link.springer.com/book/10.1007/978-1-84882-543-7http://link.springer.com/book/10.1007/978-0-85729-233-9没有发现任何有用的东西...

最佳答案

正如 @VladimirF 的评论所暗示的那样,正确的查找位置似乎是 f2py 的文档。我在 f2py docs 中找到了 checkdepend 和各种其他属性的解释。 .

check 属性用于对其关联参数执行一致性检查。 check 采用 C bool 表达式。

depend 属性告诉 f2py 例如,此参数的 check 属性依赖于一个或多个其他参数。这使得 f2py 能够确保以正确的顺序处理参数。

关于fortran - f2py Fortran 子例程中的 check 和 dependent 属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38285318/

相关文章:

visual-studio - 我们如何为 Visual Studio 指定调试目标

include - Fortran 'call' 与 'include'

pointers - 使用指针的 Fortran 链表中的内存泄漏

fortran - 是什么意思。 Fortran 中数字后的用法?

python - 在 Python 中打包旧版 Fortran。可以使用 setuptools 和 numpy.distutils 吗?

python - f2py 停止命令的同义词

makefile - 使用 Makefile 编译 F90 时出错

python - 从 python 向 Fortran 传递变量会导致错误值

python - 使用 F2PY 将数组从 Python 传递到 Fortran 结果错误=2(与形状相关)

python - 使用 f2py 在 (Fortran) 模块错误中停止 python 代码?