我已经问过这个问题,但是这次我会尝试更清楚。我对 fortran 真的很陌生,所以请原谅任何语法错误,这是更多的伪代码。
module variables
implicit none
SAVE
integer x
integer y
end module
subroutine init()
use variables
x = x + 2
y = y + 1
endsubroutine
那么我的主要程序将是
program main
use variables
implicit none
call init()
call some_other_function()
endprogram
如果我包含我的模块,它们是否会在 some_other_function() 中保留它们的值,假设 some_other_function() 是一个巨大的模拟程序的抽象。我可以依靠我的初始化变量保持它们的值吗?
那是模块中的SAVE语句吗?
背景信息:我的 program1 被 program2 调用了很长时间。Program1 有一个巨大的 intilization 阶段,只需要发生一次。如果我在程序 2 调用程序 1 之前运行初始阶段,我可以依靠保存所有模块声明的变量吗