3 fortran
我在其中一个fortran函数中初始化了一个变量.我在另一个功能中使用它.但价值并不相同.在其他函数调用我得到垃圾值.我如何保持初始值.
例如:
entry a() num_calls=0 entry b() num_calls= num_calls + 1
从条目"b"我得到num_calls作为一些垃圾
在经典的Fortran(Fortran 77或更早版本)中,您需要确保在公共块中定义num_calls - 可能是命名的公共块.
COMMON /magic/ num_calls
Run Code Online (Sandbox Code Playgroud)
我没有使用Fortran 90,所以我不知道它有什么额外的设施.它可能会保留命名的公共块以实现向后兼容,但也可能提供更好的功能.
我也作弊,并使用了变量的隐式声明.完整的,我应该写:
INTEGER*4 num_calls
COMMON /magic/ num_calls
Run Code Online (Sandbox Code Playgroud)