我正在考虑来自思考实验室的修补分子动力学包中的一些代码: http://dasher.wustl.edu/tinker/
我在其中一个文件alchemy.f中看到了这句话:
program alchemy
...
...
some statements here and there
...
...
integer ixyz
integer freeunit
...
然后才有这个令人费解的声明
ixyz = freeunit ()
...
由于两个变量都是整数I类型的标量,因此不确定括号的含义。
谢谢,
答案 0 :(得分:3)
声明
integer freeunit
可能,特别是在旧代码中,不是声明标量整数变量而是声明返回整数的函数。通常情况下,函数将在另一个编译单元中定义,并且它在程序中的声明为链接器提供了足够的工作。
如果是这种情况,那么
ixyz = freeunit ()
将被解释为对没有参数的函数的调用。
搜索包含
的行的源文件integer function freeunit
请注意,我在这里做了有根据的猜测,我从不跟踪SO的安全性。我会更进一步,猜测函数freeunit
会返回一个尚未使用的i / o单元号。
答案 1 :(得分:0)
其他用户已经提供了更完整的答案。在您的问题中,括号表示一个函数。特别是整数类型。外部函数声明函数的类型和名称,以及列出参数。
type FUNCTION fname(arg11, arg2, …, argn)
函数类型的数据类型指定外部函数返回的值的数据类型。如果省略,则返回的数据类型由符号名称fname的第一个字母确定。
在你的代码中,freeunit()是一个整数函数,它返回一个整数值。整数ixyz表示变量已声明为整数类型。
声明
ixyz=freeunit ()
表示freeunit()返回的整数值分配给ixyz。