方案1
FORMAT(I3,<kk_plus1>F7.2,I8)
不规范,只适合部分编译器,比如 intel 的编译器
方案2
FORMAT(I3,*(F7.2))
* 的意思是有多少算多少。但这个方案后面不能再加其他变量。你可以把后面 I8 对应的变量在接下来的下一个write语句输出。
方案3,这个方案比较难理解。你需要知道,格式符本身也是一个字符串,所以可以用字符串的操作方式来构造它,比如用 // 来拼接字符串。
[Fortran] 纯文本查看 复制代码 INTEGER:: kk_plus1=15
real :: array(15) = 30
character(len=8) :: fmtText
write( fmtText , '(i8)' ) kk_plus1 !//先把 kk_plus1=15 转换成 fmtText="15"
write( * , "(I3,"//fmtText//"F7.2,I8)") 3,array,6 !//再构造格式输出 |