注意:如果變量是一維的,即一個數,那么不用定義其維度為“A(1)”,直接定義雙精度變量,即可在之后的運算中調用,否則需要在之后的調用中輸入“A(1)”而不是“A”。類似地,若變量是1*n或n*1的矩陣形式,則僅需要將變量定義為“A(n)”即可。
例如:
program main implicit none dimension x(1),y(1),z(1),M(1),Omega(1),gm(1) ! 定義變量維度 double precision x,y,z,M,L,Omega,gm x=1 y=2 Omega=1 ! 變量定義 call equation2(x,y,z,M,Omega,gm) open(file='result.dat',unit=1) write(1,'(1X, 4E20.10)') z,M,gm,0.5374E-98 close(1) end program main subroutine equation1(Omega,gm) ! 子程序中調用之前定義的變量 implicit none dimension Omega(1),gm(1) double precision Omega,gm gm=Omega*80 return end subroutine equation1 subroutine equation2(x,y,z,M,Omega,gm) ! 調用定義的變量 implicit none dimension x(1),y(1),z(1),M(1),Omega(1),gm(1) double precision x,y,z,M,Omega,gm call equation1(Omega,gm) z=x+y+gm return end subroutine equation2
這里Omega即為調用變量。
該程序在處理光存儲(由慢光過渡到光存儲,需調節控制場使之隨時間變化)的相關內容時需要使用。詳見新浪博客和科學網的博文。