qi984804915 发表于 2022-9-19 21:47:08

请教关于文件写入格式的问题

write(1,'(99(1pe14.6))',advance='no') time, dtime, EN, density(:)

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

青衣巷 发表于 2022-9-20 08:56:47

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

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

如果理解还有困难,尝试运行以下代码:
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:02

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

感谢感谢!
页: [1]
查看完整版本: 请教关于文件写入格式的问题