W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)然,除了一維數(shù)組,我們也可能會(huì)想在主程序中傳遞二維數(shù)組給子程序,但是 ?a(*, *)
? 的寫法在 Fortran 中是不支持的。因此,我們需要把二維數(shù)組的維度也傳遞給子程序。
如下示例 7 所示,數(shù)組 a 和 b 為二維數(shù)組,m 和 n 是它們的維度。子程序中使用數(shù)組變量名和給定的維度定義出二維數(shù)組。示例 7 的主程序定義了四個(gè)二維數(shù)組及它們的維度大小,調(diào)用子程序時(shí)不僅傳遞了數(shù)組本身,也傳遞了維度大小。而子程序采用了兩個(gè) for 循環(huán)疊加的方式來交替給二維數(shù)組中的每一行每一列的元素賦值。
!!! 示例 7
program stest1
implicit none
real a(10, 20), b(10, 20), c(100, 200), d(100, 200)
......
call copy2d(a, b, 10, 20)
call copy2d(c, d, 100, 200)
end program stest1
subroutine copy2d(a, b, m, n)
implicit none
real a(m, n), b(m, n)
integer m, n, i, j
do j = i, n
do i = i, m
b(i, j) = a(i, j)
enddo
enddo
end subroutine copy2d
數(shù)組 a(m, n) 的定義表示數(shù)組的行號(hào)是從 1 到 m、列號(hào)是從 1 到 n。如果想要行號(hào)和列號(hào)從 0 開始,則應(yīng)該將數(shù)組定義為 a(0:m-1, 0:n-1)。一維數(shù)組時(shí)可以定義為 a(0:*)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: