通过指定指数中的位数来打印双精度数

时间:2016-03-05 19:03:39

标签: format fortran precision

我想打印0.3194D-114。有没有办法做到这一点?

我尝试使用

write(111,"(2I4, D30.20E3)") i, j, ez1(i,j,k)

但我收到错误错误:

  

格式说明符

所需的时间段

1 个答案:

答案 0 :(得分:0)

根据Fortran 2008标准(Cl.10.3.2),D编辑描述符不允许使用指数宽度:

  

1编辑描述符是数据编辑描述符(data-edit-desc),   控制编辑描述符(control-edit-desc)或字符串编辑   descriptor(char-string-edit-desc)。

R1007 data-edit-desc       is I w [ . m ]
                           [...]
                           or D w.d

仅允许EENESG编辑描述符(相同的子句和段落)指定指数:

                           or E w.d [ E e ]
                           or EN w.d [ E e ]
                           or ES w.d [ E e ]
                           or G w [.d [ E e ] ]

如果您可以使用表示指数的E(而不是D),则可以使用

write(111,"(2I4, E30.20E3)") i, j, ez1(i,j,k)