Fortran格式语句可以在使用前写成字符串吗?

时间:2014-12-04 06:18:08

标签: fortran

我有一个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) '

虽然我不是专家,但我希望它可以工作,因为格式应该是一个字符串。我哪里错了?我想这样做是为了使格式依赖于用户输入。感谢你。

1 个答案:

答案 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中给出的方法。希望这对你有帮助。