Fortran 错误:FORMAT语句中缺少逗号
我的代码写在下面:Fortran 错误:FORMAT语句中缺少逗号,fortran,gfortran,fortran77,Fortran,Gfortran,Fortran77,我的代码写在下面: DIMENSION T(10) DATA A,B /9.,5./ IS=1 J=J+3 T(j-2)=A T(J-1)=A-B 80 T(J)=T(1)+T(J-1) J=J+1 IF(J.NE.10) GOTO 80 DO I=1,5 WRITE (*,15) I, T(J) END DO 15 FORMAT ('T('I2')=', F8.4) STOP END jdoodle.f95:13:16: 15 FORMAT ('T('IS')=', F8.4)
DIMENSION T(10)
DATA A,B /9.,5./
IS=1
J=J+3
T(j-2)=A
T(J-1)=A-B
80 T(J)=T(1)+T(J-1)
J=J+1
IF(J.NE.10) GOTO 80
DO I=1,5
WRITE (*,15) I, T(J)
END DO
15 FORMAT ('T('I2')=', F8.4)
STOP
END
jdoodle.f95:13:16:
15 FORMAT ('T('IS')=', F8.4)
1
Error: GNU Extension: Missing comma at (1)
jdoodle.f95:11:20:
WRITE (*,15) I, T(J)
1
Error: FORMAT label 15 at (1) not defined
我的编译错误写在下面:
DIMENSION T(10)
DATA A,B /9.,5./
IS=1
J=J+3
T(j-2)=A
T(J-1)=A-B
80 T(J)=T(1)+T(J-1)
J=J+1
IF(J.NE.10) GOTO 80
DO I=1,5
WRITE (*,15) I, T(J)
END DO
15 FORMAT ('T('I2')=', F8.4)
STOP
END
jdoodle.f95:13:16:
15 FORMAT ('T('IS')=', F8.4)
1
Error: GNU Extension: Missing comma at (1)
jdoodle.f95:11:20:
WRITE (*,15) I, T(J)
1
Error: FORMAT label 15 at (1) not defined
你能告诉我我的Fortran代码的错误陈述在哪里吗?结果一定是T(1)=nnn.0nnn,我想。非常感谢,我刚刚找到了一个解决方案 代码是:
DIMENSION T(10)
DATA A,B /9.,5./
IS=1
J=J+3
T(J-2)=A
T(J-1)=A-B
80 T(J)=T(1)+T(J-1)
J=J+1
IF(J.NE.10) GOTO 80
DO I=1,5
WRITE (*,15) I, T(I)
END DO
15 FORMAT ('T(',I2,')=',F8.4)
STOP
END
结果是:
T( 1)= 9.0000
T( 2)= 4.0000
T( 3)= 13.0000
T( 4)= 22.0000
T( 5)= 31.0000
谢谢。如图所示,将格式规范替换为
15 FORMAT ('T(',I2,')=',F8.4)
停止编译器的抱怨。我现在将更笼统地回答
格式规范可以由多个格式项组成,其中每个项都是编辑描述符或(递归地)带括号的格式项列表
通常需要用逗号分隔每个格式项。在问题的格式中,编辑描述符是'T('
,I2
和')='
。[第一个和最后一个是字符串编辑描述符,第二个是数据编辑描述符。]两对之间不允许省略逗号
根据Fortran 2008标准,只有在以下情况下才允许省略逗号:
- 在
编辑描述符和紧随其后的P
、F
、E
、EN
、ES
或D
编辑描述符之间,前面可能有重复规范李>G
- 当可选重复规范未出现时,在斜杠编辑描述符之前李>
- 在斜杠编辑描述符之后李>
- 在冒号编辑描述符之前或之后
正如评论中所指出的,即使使用了正确的格式规范,程序仍然无效:在第一次定义
j
之前,不允许有j=j+3
。尝试('T(',I2',)=',F8.4)
第二个错误就在后面,因为标记的格式无效。非常感谢!它工作了,但结果只有零???j
从未初始化。尝试j=3
而不是j=j+3
如果这是你的新学习代码,我强烈建议你从本世纪学到一些东西。比如说Fortran 95或者更近的版本。代码中的样式很难阅读,根本不值得推荐。因为您是作为答案发布的,请参阅我关于初始化j
的评论。如果您更改编译器,这将对您不利。