用gfortran在Fortran中格式化语句

用gfortran在Fortran中格式化语句,fortran,gfortran,Fortran,Gfortran,您好,这是查普曼195页的《科学家和工程师用Fortran 95-2003》(第3版)一书中给出的代码 WRITE (*,100) index, time, depth, amplitude, phase 100 FORMAT('1',t20,'results for the test number ',i3,///,& 1x,'time = ',f7.0/, & 1x,'depth = ',f7.1,' meters',/, &am

您好,这是查普曼195页的《科学家和工程师用Fortran 95-2003》(第3版)一书中给出的代码

WRITE (*,100) index, time, depth, amplitude, phase

100 FORMAT('1',t20,'results for the test number  ',i3,///,&
      1x,'time      = ',f7.0/, &
      1x,'depth     = ',f7.1,' meters',/, &
      1x,'amplitude = ',f8.2/ &,
      1x,'phase     = ',f7.1)
为了运行它,我完成了其余的语句

program test
implicit none

INTEGER :: index = 10
real:: time=300.0,depth=330.0,amplitude=850.65,phase=30.0
WRITE (*,100) index, time, depth, amplitude, phase

100 FORMAT('1',t20,'results for the test number  ',i3,///,&
      1x,'time      = ',f7.0/, &
      1x,'depth     = ',f7.1,' meters',/, &
      1x,'amplitude = ',f8.2/ &,
      1x,'phase     = ',f7.1)

end program test 
当我用gfortran编译它时,我会得到以下错误

test.f90:12.31:

      1x,'amplitude = ',f8.2/ &,
                               1
Error: Unexpected element '&' in format string at (1)
test.f90:13.8:

      1x,'phase     = ',f7.1)
        1
Error: Non-numeric character in statement label at (1)
test.f90:13.9:

      1x,'phase     = ',f7.1)
         1
Error: Invalid character in name at (1)
test.f90:7.12:

WRITE (*,100) index, time, depth, amplitude, phase
            1
Error: FORMAT label 100 at (1) not defined

这里发生了什么事?我在stackoverflow看到了另一个线程,问题是关于fortran中的控制字符。查普曼在他的书中讨论了这一点,但没有提到控制字符的特性在Fortran 2003中被删除。所以我想知道这是否是gfortran无法识别的类似的旧东西?

在格式规范的行中,在“与”后面有一个逗号,具有“与=”文字。要在非字符上下文中充当连续字符,与必须是行中最后一个非空、非注释字符

逗号可能应该在和前面


(由于符号AND不被视为连续字符,编译器认为它是格式规范的一部分,因此出现第一个错误。然后,下一行开始一个新语句,从而出现后续错误。)

在格式规范的“与”字后面有一个逗号。要在非字符上下文中充当连续字符,与必须是行中最后一个非空、非注释字符

逗号可能应该在和前面


(由于与符号不被视为连续字符,编译器认为它是格式规范的一部分,因此出现了第一个错误。然后,下一行开始一个新语句,因此出现了后续错误。)

bingo!!!!!!查普曼在这里犯了个错误。我查了他的勘误表,但没有包括这一点。看来我在这本书中看到了很多打字错误。我可能会换成别的东西。通过浏览这里的几个帖子,我发现了宾果!!!!!!查普曼在这里犯了个错误。我查了他的勘误表,但没有包括这一点。看来我在这本书中看到了很多打字错误。我可能会换成别的东西。通过浏览这里的几个线程,我发现