MADAO 发表于 2021-1-26 18:06:12

内层循环只计算了一次后面的到的结果都为0大佬些为什么啊

REAL, ALLOCATABLE, DIMENSION(:,:) :: AVE_DENSI, VAR_DENSI
                DO 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

风平老涡 发表于 2021-1-27 01:30:34

因为你没有赋值啊。所有的变量都没有赋值,你让这个程序做什么。

fcode 发表于 2021-1-27 08:18:47

考虑到你的代码不完整,补充完整(但可能并不符合你的意图)后没有任何问题。

这类问题,可以通过单步断点调试排查。

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]
查看完整版本: 内层循环只计算了一次后面的到的结果都为0大佬些为什么啊