W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Fortran 語言中全局變量必須使用 module
的方式單獨(dú)定義。當(dāng)在主程序或子程序中需要使用這些已定義的全局變量時,首先要使用 use <module 名>
來聲明引用,并且該聲明應(yīng)在 implicit none
之前。如下所示,定義了兩個整數(shù)類型的變量 nmin 和 nmax,以及實(shí)數(shù)類型的變量 tinitial 和 二維數(shù)組 amatrix。
module data1
integer nmin, nmax
real tinitial, amatrix(20, 30)
end module data1
示例 9 是一個完整的全局變量定義和使用的例子。可以看到,子程序并沒有聲明任何參數(shù),而是利用定義的全局變量 xais 和 yais 來從主程序中傳遞值到子程序中。這里的程序執(zhí)行順序是:主程序 → 調(diào)用子程序 → 子程序中的打印 → 子程序修改 yais 變量 → 主程序中的打印 → 程序結(jié)束。所以最終的執(zhí)行結(jié)果的第一行是子程序中打印還未修改的兩個全局變量,而第二行是主程序中打印已被子程序修改的兩個全局變量,符合預(yù)期效果。
!!! 示例 9
module global
real xais, yais
end module global
program stest4
use global
implicit none
xais = 5.0
yais = 100.0
call subr4
print *, xais, yais
end program stest4
subroutine subr4
use global
implicit none
print *, xais, yais
yais = 25.0
end subroutine subr4
!!! 執(zhí)行結(jié)果
>>> 5.00000000 100.000000
>>> 5.00000000 25.0000000
有的時候子程序中可能并不需要 module 中定義的所有全局變量,只想引入幾個有關(guān)的全局變量。在 Fortran 語言中可以用 ?only? 的語法來限定引入的全局變量,如下所示。
use 模塊名, only : 變量1, 變量2, ...
use global, only : yaxsis
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: