Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran格式语句在使用前是否可以写成字符串?_Fortran - Fatal编程技术网

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

Fortran格式语句在使用前是否可以写成字符串?,fortran,Fortran,我有一个Fortran程序,其中我使用一个格式语句来编写 WRITE (12,'(A72,1X,A,1X,I6.6)') ALINE,SFFIX(1:NUM),LINENO 这很好用。但是当我写一个字符串'fmtt'时 WRITE (fmtt,'(a)') trim(adjustl(sttr(2))) 其中字符串“sttr(2)是”(A72,1X,A,1X,I6.6)”,我通过打印类似于 WRITE(*,'(a)')fmtt 当我在write语句中使用字符串fmtt作为格式时,如 WRIT

我有一个Fortran程序,其中我使用一个格式语句来编写

WRITE (12,'(A72,1X,A,1X,I6.6)') ALINE,SFFIX(1:NUM),LINENO
这很好用。但是当我写一个字符串'fmtt'时

WRITE (fmtt,'(a)') trim(adjustl(sttr(2)))
其中字符串“sttr(2)
”(A72,1X,A,1X,I6.6)”,我通过打印类似于

WRITE(*,'(a)')fmtt
当我在write语句中使用字符串fmtt作为格式时,如

WRITE (12, fmtt) ALINE,SFFIX(1:NUM),LINENO
我收到错误信息

forrtl : info(58) format syntax error at or near  '(A72,1X,A,1X,I6.6) '

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

可能是单引号“”造成了问题。下面的代码工作正常

implicit none
character(len=30) :: fmtt
fmtt = '(A72,1X,A,1X,I6.6)'
write(*,fmtt)"first_character","second_character",230
stop
end

请注意,print*、fmtt给出的输出没有单引号。我遵循中给出的方法。希望这会对您有所帮助。

这不是关于报价。我需要生成一个字符串,然后才能与fmtt相等。类似于WRITE(STTR(2),“(a)”(a“//trim(adjustl(STTR(1)))//trim(adjustl(string(3)))//”)。然后我可以把'fmttt=sttr(2)`等同起来,这当然不起作用。你能给出一个简单的例子并说明你的编译器版本吗?从您提供的信息来看,我看不出有任何错误。不是您没有使用“格式语句”,而是使用了“格式字符串”。我必须支持对可编译示例的请求。