我有一个Fortran程序,我使用格式文件来编写
WRITE (12,'(A72,1X,A,1X,I6.6)') ALINE,SFFIX(1:NUM),LINENO
工作正常。但是当我写一个字符串`fmtt'像
WRITE (fmtt,'(a)') trim(adjustl(sttr(2)))
其中string' sttr(2)is
'(A72,1X,A,1X,I6.6)' `,我通过打印fmtt确认
WRITE(*,'(a)')fmtt
当我在像
这样的写语句中使用字符串fmtt作为格式时WRITE (12, fmtt) ALINE,SFFIX(1:NUM),LINENO
我收到错误消息
forrtl : info(58) format syntax error at or near '(A72,1X,A,1X,I6.6) '
虽然我不是专家,但我希望它可以工作,因为格式应该是一个字符串。我哪里错了?我想这样做是为了使格式依赖于用户输入。感谢你。
答案 0 :(得分:0)
可能是单引号' '正在制造问题。以下代码工作正常。
implicit none
character(len=30) :: fmtt
fmtt = '(A72,1X,A,1X,I6.6)'
write(*,fmtt)"first_character","second_character",230
stop
end
请注意,print *,fmtt给出的输出没有单引号。我按照http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap05/format.html中给出的方法。希望这对你有帮助。