子程序中的全局二维数组

时间:2017-01-24 19:14:13

标签: arrays fortran subroutine

我正在制作一个使用数组的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

0 个答案:

没有答案