目前在我的程序中,我有几个公共块分布在几个子程序和函数中。当我向其中添加变量时,我有时会忘记更改公共块的所有实例。我想将这些公共块制作成模块,这样我就可以在一个地方向模块添加和删除变量,而不必担心在我的子程序中更新模块的所有实例。
我是否需要在初始化模块中的变量的程序中包含“使用”语句,或者我是否需要在模块中包含程序?我通常会为此使用通用块,但我正在尝试实现模块,因为我认为随着复杂性的增加,它们将帮助我的代码保持可读性。
注意:模块中变量的某些值需要能够在它们从一个程序传递到另一个程序时进行更改。
我试图编写一个简化的测试程序来熟悉模块,但无法让它工作。我熟悉 fortran 77,但以前从未使用过模块。我感谢任何帮助或建议。
我正在使用 gfortran 4.6.1
主文件
program main
use Words
use Vals
double precision x,y,z
character*5 Greet
integer i
Greet = 'Hello'
x = 4.1
y = 5.2
z = 10.0
i = 3
call foo ()
end program main
subroutine foo ()
use Words
use Vals
print *, Greet
z = x + y
print *, z
print *, i
end subroutine
module Words
character*5 Greet
save
end module
module Vals
double precision x,y
integer int
save
end module