Fortran 二維數(shù)組變量

2023-12-29 15:32 更新

當(dāng)然,除了一維數(shù)組,我們也可能會想在主程序中傳遞二維數(shù)組給子程序,但是 ?a(*, *)? 的寫法在 Fortran 中是不支持的。因此,我們需要把二維數(shù)組的維度也傳遞給子程序。

如下示例 7 所示,數(shù)組 a 和 b 為二維數(shù)組,m 和 n 是它們的維度。子程序中使用數(shù)組變量名和給定的維度定義出二維數(shù)組。示例 7 的主程序定義了四個二維數(shù)組及它們的維度大小,調(diào)用子程序時不僅傳遞了數(shù)組本身,也傳遞了維度大小。而子程序采用了兩個 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ù)組的行號是從 1 到 m、列號是從 1 到 n。如果想要行號和列號從 0 開始,則應(yīng)該將數(shù)組定義為 a(0:m-1, 0:n-1)。一維數(shù)組時可以定義為 a(0:*)。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號