在 f95 中,已实现了三个新的 Fortran 2003 格式化 I/O 说明符。它们可以出现在 OPEN、READ、WRITE、PRINT 和 INQUIRE 语句中:
DECIMAL=[’POINT’|’COMMA’]
更改缺省的十进制编辑模式。对于使用 D、E、EN、ES、F 和 G 编辑格式的浮点数,缺省使用句点来分隔整数和小数部分。'COMMA' 更改缺省设置以使用逗号而不是句点来打印,例如 123,456。缺省设置为 'POINT',即使用句点来打印,例如 123.456。
ROUND=[’PROCESSOR_DEFINED’ | ’COMPATIBLE’]
为格式化 I/O D、E、EN、ES、F 和 G 编辑设置缺省舍入模式。如果使用 'COMPATIBLE',数据转换后的值是与两个近似值较近的那个值,如果值正好在两者中间,则是离 0 远的值。如果使用 'PROCESSOR_DEFINED',舍入模式取决于处理器的缺省模式,如果未指定 ROUND,则为编译器缺省设置。
例如,WRITE(*,’(f11.4)’) 0.11115 在缺省模式下打印 0.1111,而在 'COMPATIBLE' 模式下打印 0.1112。
IOMSG=character-variable
将错误消息作为字符串在指定字符变量中返回。这与标准输出中显示的错误消息相同。用户应该分配足够大的字符缓冲区以保存最长的消息。(CHARACTER*256 应该足够了。)
在 INQUIRE 语句中使用时,这些说明符声明一个字符变量以返回当前值。
新的编辑描述符 DP、 DC、RP 和 RC 将单个 FORMAT 语句中的缺省设置分别更改为小数点、小数逗号、处理器定义的舍入以及兼容的舍入。例如:
WRITE(*,’(I5,DC,F10.3)’) N, W
在 F10.3 输出项中打印逗号而不是句点。
要了解如何更改格式化 I/O 的浮点舍入模式,另请参见 -iorounding 编译器命令行选项。(3.4.45 –iorounding[={ compatible|processor-defined}])