内层循环只计算了一次后面的到的结果都为0大佬些为什么啊
REAL, ALLOCATABLE, DIMENSION(:,:) :: AVE_DENSI, VAR_DENSIDO ILLL = 0, TIME_STEP
WRITE(2116,*) 'TIME = ', ILLL*DELT_T*dt
WRITE(2117,*) 'TIME = ', ILLL*DELT_T*dt
DO ILL = 0, 20
WRITE(2116,*) ILL, AVE_DENSI(ILLL, ILL)/NRMAX
WRITE(2117,*) ILL, VAR_DENSI(ILLL, ILL)/NRMAX -
& (AVE_DENSI(ILLL, ILL)/NRMAX)**2
enddo
enddo
因为你没有赋值啊。所有的变量都没有赋值,你让这个程序做什么。 考虑到你的代码不完整,补充完整(但可能并不符合你的意图)后没有任何问题。
这类问题,可以通过单步断点调试排查。
http://debug.w.fcode.cn
REAL, ALLOCATABLE, DIMENSION(:,:) :: AVE_DENSI, VAR_DENSI
integer :: time_step = 3 , NRMAX = 1
allocate(AVE_DENSI(3,3), VAR_DENSI(3,3))
AVE_DENSI = 1
VAR_DENSI=1
DO ILLL = 0, TIME_STEP
WRITE(*,*) 'TIME = ', ILLL*DELT_T*dt
WRITE(*,*) 'TIME = ', ILLL*DELT_T*dt
DO ILL = 0, 3
WRITE(*,*) ILL, AVE_DENSI(ILLL, ILL)/NRMAX
WRITE(*,*) ILL, VAR_DENSI(ILLL, ILL)/NRMAX - &
(AVE_DENSI(ILLL, ILL)/NRMAX)**2
enddo
enddo
end program
页:
[1]