回 帖 发 新 帖 刷新版面

主题:fortran错误提示的解决-unterminated block exists

各位童鞋们,本人刚开始学fortran,问个比较傻的问题哈,编写了一个特别简单的程序,在用do语句的时候,写do 0.25, 6.0, 0.25, 为什么编译后提示unterminated block exists,请教是怎么回事,然后怎么解决呢,希望大侠们帮帮忙哈

回复列表 (共15个回复)

沙发

首先,您知道do是神马东东么?

板凳

只说明楼主没看书直接写代码...

3 楼


呃,我知道啊,我忘加end do了,虽然问题很傻,也不用这么埋汰我吧,5555

4 楼


我就现看现用了下,以前学过的,好久没用过了,忘了都,现在又要用到所以才捡起来的,丢人了

5 楼


既然都被您埋汰了,您就再帮我看看这个程序吧,他说Overflow occurred while evaluating constant expression,程序附在下面,欢迎提问题和意见
      program homework2
      real*4,dimension(24) :: N1,N2
    real*4,dimension(96) :: NI,NXe
    real*4 :: N0=2.26428*10**21
    real*4 :: t0,t1
    do t0=0.25, 6.0, 0.25
    N1(t0)=log(N0*exp(-(10**t0)*1.186*10**(-6)))
    N2(t0)=log(N0*7.531*10**(-10)
     &     *(exp((-10**t0)*2.29*10**(-13))-exp((-10**t0)*0.01824)))
    end do
    do t1=0.0,5.0,0.5 
    NI(t1)=log(exp(-0.1055*10**t1)*1.075*10**16)
    NXe(t1)=log(3.55642*(exp(-0.075837*10**t1)-exp(-0.1055*10**t1))
     &         *1.075*10**16)
    end do
c    open(UNIT=1,file='N1.DAT',status='replace', action='write')
c    open(UNIT=2,file='N2.DAT',status='replace', action='write')    write(*,*)  N1
      write(*,*)  N2


      write(*,*)  NI
    write(*,*)  NXe


    stop 
    end

6 楼

楼主, 还要指出的是, 循环变量t0,t1不要用浮点数. 浮点数作为循环变量的标准是f90定的, f95就废止了.
是否值得继续用自己看着办吧.

7 楼

尽量不要用小数做为循环变量,否则容易出兼容性问题。因为这个是被废弃的标准。

8 楼

还有啊,楼主不该用小数做数组下标啊~~~~

9 楼


我没有用小数作为数组下标啊?是哪里啊?

10 楼


我想得到N1随时间t的变化值,不用数组的话应该怎么写啊?

我来回复

您尚未登录,请登录后再回复。点此登录或注册