有此程序:Fortran:通過「CALL」命令將主程序中的標量傳遞給子程序中的矢量?
INTEGER i,k
REAL*8 mp(15,48)
REAL*8 sp(15)
k=0
do i=1,12
k=k+1
call Equaltensors(sp,mp(1,k),15)
enddo
end
c=====================
subroutine Equaltensors(tensA,tensB,n)
REAL*8 tensA(n),tensB(n)
INTEGER i
do i=1,n
tensB(i)=tensA(i)
enddo
return
end
所以基本上熔點(1,1)等的值被傳入到該子程序作爲一個矢量tensB(15)中n = 15。我不明白的是如何在一個子程序中將實數存儲在一維數組中。
任何幫助,將不勝感激。
無論參數傳遞執行的行爲是由標準保證的 - 見F2008 12.5.2.4p13和12.5.2.11下的闡述。 – IanH
這和將C中的數組傳遞給'&array [0]'類似,是嗎? – dwwork
是的。一個不同之處在於C對數組和Fortran列主要使用行主佈局。那麼,從一個地址開始訪問二維數組的哪一部分在語言之間會有所不同。 –