當前在我的程序中,我有幾個公用塊遍佈幾個子程序和函數。我有時會忘記在添加變量時,更改公共塊的所有實例。我想將這些通用塊組合成模塊,這樣我就可以在一個地方向模塊添加和刪除變量,而無需擔心在我的子程序中更新模塊的所有實例。從多個公共塊中創建多個模塊fortran 77
我是否需要在程序中包含'use'語句來初始化模塊中的變量,或者是否將程序包含在模塊中?我通常會爲此使用通用塊,但我試圖實現模塊,因爲我認爲隨着複雜性的增加,它們將幫助我的代碼保持可讀性。
注意:模塊中變量的某些值需要能夠在從一個程序傳遞到另一個程序時進行更改。
我試圖寫一個簡化的測試程序,以熟悉模塊,但無法使其工作。我熟悉Fortran 77,但之前從未使用過模塊。我感謝任何幫助或建議。
我使用gfortran 4.6.1
Main.f
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
自從2003年Fortran(或2008年?)以來,所有模塊變量都會自動保存。 – eriktous
這非常有幫助。謝謝。希望在週末我可以成功地將模塊實現到我的程序中。 – kxk7607
模塊的使用優於使用'include'嗎?我目前在我的MAIN結尾有很多'include'語句。我的理解是,包含的子程序可以彼此隱式訪問。這是一個正確的理解?我應該實現模塊嗎?我已經有了該程序,但如果使用模塊將使人們更容易編輯我的程序,那麼我將花時間實施它們。 – kxk7607