24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1723  |  回复: 8

836449366

金虫 (小有名气)

[求助] Fortran出现语法错误

我自己编了一段程序,就是将aaa.txt中的数据的前一行减去后一行,然后返回差值
这是程序
      program main
      implicit none
      integer :: i,j
      real*8 r1,r2,a,m(200,2),n(200)
      open(10,file='bbb')
      do i=1,200
        read(10,*) a,(m(i,j),j=1,2)
        r1=m(i,2)
        r2=m(i+1,2)
        n=r1-r2
        write(*,"(a4,200F30.15)" i,n(i)
      enddo
      end
下面是aaa.txt文件
           1   11.5927413790973
           2   11.8587968919448
        ……         …………      
       200   11.7952433041584
运行后总是出现错误
fortcom: Error: xxx.f90, line 11: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
        write(*,"(a4,200F30.15)" i,n(i)
---------------------------------^
compilation aborted for xxx.f90 (code 1)
求大神解答,本人不胜感激!
回复此楼

» 猜你喜欢

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

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

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
gkf高: 金币+2 2013-09-29 23:19:22
write(*,"(a4,200F30.15)" i,n(i)
有误, 应为
write(*,'(I4,200F30.15)') i,n(i)
2楼2013-09-29 22:22:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yongma2008

木虫 (著名写手)

论文?苦!主。

write(*,"(a4,200F30.15)" i,n(i)
---------------------------------^
这句话已经告诉你在哪有问题了。要习惯看错误提示
3楼2013-09-30 10:46:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

836449366

金虫 (小有名气)

引用回帖:
2楼: Originally posted by jerkwin at 2013-09-29 22:22:23
write(*,"(a4,200F30.15)" i,n(i)
有误, 应为
write(*,'(I4,200F30.15)') i,n(i)

改了后,还是出现了错误
fortcom: Error: xxx.f90, line 13: Syntax error, found IDENTIFIER 'I' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ...
        write(*,"(I4,200F30.15)" i,n(i)
---------------------————-----------^
compilation aborted for xxx.f90 (code 1)
4楼2013-09-30 14:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongxd325

至尊木虫 (文坛精英)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
gmy1990: 金币+2 2013-10-03 20:27:22
write(*,"(I4,200F30.15)" i,n(i)少了个右括号,应该是write(*,'(I4,200F30.15)') i,n(i)
一个人做点好事并不难难的是一辈子做好事!!!
5楼2013-09-30 14:43:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

836449366

金虫 (小有名气)

引用回帖:
2楼: Originally posted by jerkwin at 2013-09-29 22:22:23
write(*,"(a4,200F30.15)" i,n(i)
有误, 应为
write(*,'(I4,200F30.15)') i,n(i)

现在已经运行没有发生错误了,但并不能导出我们所要的结果?
求大神帮忙!
6楼2013-09-30 17:44:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★
gmy1990: 金币+2 2013-10-03 20:27:28
read(10,*) a,(m(i,j),j=1,2)
        r1=m(i,2)
        r2=m(i+1,2)
        n=r1-r2
逻辑不对, 自然不是你要的结果
这里i+1行还没读入, 你就使用了
7楼2013-09-30 21:24:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

836449366

金虫 (小有名气)

引用回帖:
7楼: Originally posted by jerkwin at 2013-09-30 21:24:24
read(10,*) a,(m(i,j),j=1,2)
        r1=m(i,2)
        r2=m(i+1,2)
        n=r1-r2
逻辑不对, 自然不是你要的结果
这里i+1行还没读入, 你就使用了

大神,能不能帮我改改,怎样修改才能得到我想要的结果?
8楼2013-10-03 16:30:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★
gkf高: 金币+2 2013-10-03 23:25:12
最简单的, 就是先读进来, 再写个循环做差
或者
只读一遍, 根据条件写差
9楼2013-10-03 21:43:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 836449366 的主题更新
信息提示
请填处理意见