CyRhmU.jpeg
查看: 1677  |  回复: 7

vivianich

新虫 (初入文坛)

[求助] 急求fortran运行错误原因,在线等

最近改了一个fortran77的程序,编译都通过了,就是运行的时候出现错误如下:
forrtl: severe (24): end-of-file during read, unit 1,。。。
生成的文件fort1.1,打开只有OUTPUT LU=?这一句
我觉得这说明程序一开始运行就出错了,但不知道错在哪里,请高手指点
部分源程序如下:
      PROGRAM FTURB
      INTEGER*4 N1M,N2M,N3M
      DIMENSION LABL(10)
      COMPLEX X(512),Y(512)
      COMMON N1M,N2M,N3M,INPUT,ICART
       
      INPUT=1
      ICART=34
      ROOT2=SQRT(2.)
      WRITE(INPUT,9999)
9999  FORMAT(11HOUTPUT LU=?)
      READ(INPUT,9998) LUOUT
9998  FORMAT(I4)
      WRITE(INPUT,9997)
9997  FORMAT(7HN1MAX=?)
      READ(INPUT,9998) N1MAX
      WRITE(INPUT,9996)
9996  FORMAT(7HN2MAX=?)
      READ(INPUT,9998) N2MAX
      WRITE(INPUT,9995)
9995  FORMAT(7HN3MAX=?)
      READ(INPUT,9998) N3MAX
      WRITE(INPUT,9994)
9994  FORMAT(5HFS1=?)
      READ(INPUT,9993) FS1
9993  FORMAT(F10.0)
      WRITE(INPUT,9992)
9992  FORMAT(5HFS2=?)
      READ(INPUT,9993) FS2
      WRITE(INPUT,9991)
9991  FORMAT(5HFS3=?)
      READ(INPUT,9993) FS3
      WRITE(INPUT,9986)
9986  FORMAT(38H ENTER VELOCITY COMPONENT (1, 2, OR 3))
      READ(1,9985) II
9985  FORMAT(I1)
      N1M=N1MAX
      N2M=N2MAX
      N3M=N3MAX
      MREC=N1MAX*N2MAX*N3MAX/32
      MREC=N1M*N2M*N3M/32
      WRITE(1,8887) MREC
8887  FORMAT(7HMAXREC=,I7,25H  ENTER FILE TO BE OPENED)
      READ(1,8886) (LABL(I),I=1,10)
8886  FORMAT(10A2)
      OPEN(ICART,FILE=LABL,IOSTAT=IOS,STATUS='NEW',
     *          ERR=99,RECL=64,
     *      FORM='UNFORMATTED',ACCESS='DIRECT',MAXREC=MREC)
      DF1=FS1/FLOAT(N1MAX)
      DF2=FS2/FLOAT(N2MAX)
      DF3=FS3/FLOAT(N3MAX)
      N1D2=N1MAX/2
      N2D2=N2MAX/2
      N3D2=N3MAX/2
      DDDF=DF1*DF2*DF3
      X1MAX=FLOAT(N1MAX)
      X2MAX=FLOAT(N2MAX)
      X3MAX=FLOAT(N3MAX)
      FFF=FS1*FS2*FS3
      SIGXK=SQRT(X1MAX*X2MAX*X3MAX/2.)/FFF
      P=PHIU(0.,0.,0.,II)
      SUM=P
      H=SQRT(FFF*P)
      X(1)=SIGXK*ROOT2*H*CMPLX(GRAN(),0. )
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

q1036210267

木虫 (正式写手)

【答案】应助回帖


vivianich: 金币+1, ★★★很有帮助 2012-05-22 10:27:33
你好,我想问下:INput 是输入文件 还是输出文件??
好像不能 对一个 文件 同时输入和输出吧。
生活中坚持快乐的原则不改变,学习工作中踏实上进!`~`
2楼2012-05-20 09:04:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vivianich

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by q1036210267 at 2012-05-20 09:04:46:
你好,我想问下:INput 是输入文件 还是输出文件??
好像不能 对一个 文件 同时输入和输出吧。

我觉得input在这里起到的是赋值的作用,代表了unit=1这个存储文件,原版程序里确实是这么写的
3楼2012-05-20 09:44:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

q1036210267

木虫 (正式写手)

引用回帖:
3楼: Originally posted by vivianich at 2012-05-20 09:44:01:
我觉得input在这里起到的是赋值的作用,代表了unit=1这个存储文件,原版程序里确实是这么写的

但是 ,从你的出错提示信息:出错的地方 就是 对 1 这个文件的操作有问题。

如果方便的话,把你的源程序贴出来
(或发我邮箱liyunzhi01@126.com),大家一起讨论下。
生活中坚持快乐的原则不改变,学习工作中踏实上进!`~`
4楼2012-05-20 11:06:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vivianich

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by q1036210267 at 2012-05-20 11:06:52:
但是 ,从你的出错提示信息:出错的地方 就是 对 1 这个文件的操作有问题。

如果方便的话,把你的源程序贴出来
(或发我邮箱liyunzhi01@126.com),大家一起讨论下。

你好,源程序发过去了,考虑了您的建议后,我把所有读入命令里的input值改为5,也就是通过键盘输入,这个错误就解决了,但是运行后结果不对,并出现了错误提示ios=36,我想应该又是open语句出问题了
5楼2012-05-21 09:38:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Carpathia

银虫 (小有名气)

【答案】应助回帖

引用回帖:
5楼: Originally posted by vivianich at 2012-05-21 09:38:54:
你好,源程序发过去了,考虑了您的建议后,我把所有读入命令里的input值改为5,也就是通过键盘输入,这个错误就解决了,但是运行后结果不对,并出现了错误提示ios=36,我想应该又是open语句出问题了

不仅仅对input是read操作,还有write操作,还能向键盘写东西?
一般文件操作都用10以上的数字作为单元
追求理想的道路上东张西望
6楼2012-05-21 09:45:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vivianich

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by Carpathia at 2012-05-21 09:45:21:
不仅仅对input是read操作,还有write操作,还能向键盘写东西?
一般文件操作都用10以上的数字作为单元

只改了与read里的input值,write里的值没有改,所以运行后write里的语句仍会保存在unit1里,也没有出现之前的错误
7楼2012-05-21 09:51:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vivianich

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by q1036210267 at 2012-05-20 11:06:52:
但是 ,从你的出错提示信息:出错的地方 就是 对 1 这个文件的操作有问题。

如果方便的话,把你的源程序贴出来
(或发我邮箱liyunzhi01@126.com),大家一起讨论下。

还请帮忙看下源程序里的OPEN语句里FILE=LABL对不,因为按原意是要打开十个不同名的新文件吧,但我输入了二十个字符最后只创建了一个新文件,文件名就是我输入的二十个字符
8楼2012-05-21 16:36:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 vivianich 的主题更新
信息提示
请填处理意见