Fortran 數(shù)組作為子程序參數(shù)

2023-12-29 15:32 更新

如果主程序想要用數(shù)組變量或數(shù)組變量的某個(gè)位置的值為調(diào)用的子程序賦值,F(xiàn)ortran 也是完全支持的。如下所示,第一行是用數(shù)組變量初始化子程序參數(shù),第二行是用數(shù)組變量 a 中編號(hào)為 1 的元素初始化子程序參數(shù)。

call sub(a)
call sub(a(1))

上面第一行調(diào)用方式對(duì)應(yīng)的主程序和子程序可以類似于下面的示例 5。主程序和子程序中分別將 a 和 x 都定義為長(zhǎng)度為 10 的一維數(shù)組,并在子程序中使用循環(huán)的方式依次為數(shù)組 x 的每個(gè)元素賦值。最后,賦好值的數(shù)組 x 也會(huì)返回給主程序。從執(zhí)行結(jié)果看到,輸出結(jié)果為期待的 a(3) 值。

!!! 示例 5
program stest5
implicit none
real a(10)
call sub(a)
print *, a(3)
end program stest5

subroutine sub(x)
implicit none
real x(10)
integer i
do i = 1, 10
x(i) = i
enddo
end subroutine sub

!!! 執(zhí)行結(jié)果
>>> 3.00000000

如果我們?cè)谡{(diào)用時(shí)寫成了 ?call sub(a(1))?,那會(huì)怎么樣呢?實(shí)際上還是會(huì)得到一樣的結(jié)果。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)