Fortran Coder

标题: 内层循环只计算了一次后面的到的结果都为0大佬些为什么啊 [打印本页]

作者: MADAO    时间: 2021-1-26 18:06
标题: 内层循环只计算了一次后面的到的结果都为0大佬些为什么啊
[Fortran] 纯文本查看 复制代码
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
因为你没有赋值啊。所有的变量都没有赋值,你让这个程序做什么。
作者: fcode    时间: 2021-1-27 08:18
考虑到你的代码不完整,补充完整(但可能并不符合你的意图)后没有任何问题。

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

http://debug.w.fcode.cn
[Fortran] 纯文本查看 复制代码
  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





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2