【发布时间】:2016-07-09 19:02:41
【问题描述】:
我正在修改一些 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-7 和 http://link.springer.com/book/10.1007/978-0-85729-233-9 并没有找到任何有用的东西......
【问题讨论】:
-
您展示的不是 Fortran。它是一个 .pyf 文件,f2py 的自定义语言。除此之外,本网站不用于推荐资源。打开您最喜欢的图书销售网站并搜索“Fortran”并阅读评论。在您喜欢的搜索引擎中搜索“Fortran 教程”。你也可以试试fortranwiki.org中的链接
-
@VladimirF 我确实指定了我正在处理 f2py 并且我绝对认识到上述大部分代码与可能的 Fortran 代码一致。拜托,阅读 Fortran 书籍的评论不太可能告诉我它们是否包含我在这里寻找的特定信息。正如我上面所写的,我已经检查过的两本书没有。我确实在我最喜欢的搜索引擎中进行了搜索,正如我所提到的,我无法找到有关这些特定细节的任何有用信息。您似乎表明我所询问的功能是 f2py 特定的,所以我可以尝试这个方向。谢谢。
-
但是您的问题是在哪里可以找到 Fortran 子例程的描述,而不是这两个关键字的含义。因此,它是题外话。一个主题问题是
check和depend在.pyf文件中的含义,但您的问题(尤其是标题)与此无关。 -
好的,现在更正了。