我正在制作一个使用数组的CFD程序。在代码的最后部分,如下所示,我有子程序INIT
,它将变量温度设置为0.温度是在主程序中声明的二维数组。
问题在于,当我调用子例程INIT
时,它不知道我已经声明了数组T(NN,NN)
。换句话说,子程序中未检测到数组。
我该如何解决这个问题?如何将T(NN,NN)
设置为全局变量?
! VARIABLES
PARAMETER (NN=100)
DIMENSION X(NN),Y(NN),DXPW(NN),DXEP(NN),DYNP(NN),DYPS(NN),SEW(NN),SNS(NN),T(NN,NN)
...
WRITE(*,*)
SNS(1)=0.0
SNS(NJ)=0.0
DO J=2,NJM1
SNS(J)=0.5*(DYNP(J)+DYPS(J))
WRITE(*,*)SNS(J)
END DO
CALL INIT(NI,NJ)
END
SUBROUTINE INIT(NI,NJ)
DO I=1,NI
DO J=1,NJ
!T(I,J)=0.0
END DO
END DO
RETURN
END SUBROUTINE