Fortran Coder

标题: 请教关于文件写入格式的问题 [打印本页]

作者: qi984804915    时间: 2022-9-19 21:47
标题: 请教关于文件写入格式的问题
write(1,'(99(1pe14.6))',advance='no') time, dtime, EN, density(:)

请问大家!这句里的99(1pe14.6)每个部分代表什么意思,主要是 99 和 1p

作者: 青衣巷    时间: 2022-9-20 08:56
99() 意思是把括号里的格式符重复99次
1pe14.6 可视为  1p,e14.6
1p表示后面的输出放大一个数量级,如果后面是 f 编辑符,结果直接乘以 10^k。(k=1)
如果后面是 e d 格式符,则平移小数部分,平移量在指数部分补偿。
e14.6 就是输出一个工程计数法的小数,宽度是14,小数点后保留6个数字。

其实 1pe14.6 可以简短的写做  es14.6

如果理解还有困难,尝试运行以下代码:
[Fortran] 纯文本查看 复制代码
program fcodecn
  implicit none
  write(*,'(e14.6)') 33.0
  write(*,'(f14.6)') 33.0
  write(*,'(1p,e14.6)') 33.0
  write(*,'(es14.6)') 33.0
  write(*,'(1p,f14.6)') 33.0
  write(*,'(2p,e14.6)') 33.0
  write(*,'(2p,f14.6)') 33.0
  write(*,'(-1p,e14.6)') 33.0
  write(*,'(-1p,f14.6)') 33.0
end program fcodecn

作者: qi984804915    时间: 2022-9-20 09:30
青衣巷 发表于 2022-9-20 08:56
99() 意思是把括号里的格式符重复99次
1pe14.6 可视为  1p,e14.6
1p表示后面的输出放大一个数量级,如果后 ...

感谢感谢!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2