Sun Studio 12:Fortran 用户指南

4.7 其他的 I/O 扩展

本节介绍一些 Fortran 95 输入/输出处理扩展,f95 编译器接受这些扩展,但它们不是 Fortran 2003 草案标准的一部分。某些扩展是在 Fortran 77 编译器 f77 中出现的 I/O 扩展,现在这些扩展已成为 Fortran 95 编译器的一部分。

4.7.1 I/O 错误处理例程

通过两个新函数,用户可以为逻辑单元上的格式化输入指定自己的错误处理例程。当检测到格式错误时,运行时 I/O 库会调用指定的由用户提供的处理程序例程,同时将数据指向输入行中导致错误的字符。处理程序例程可以提供一个新字符,并允许 I/O 操作在检测到错误的点上使用新字符继续运行;或者采用缺省的 Fortran 错误处理操作。

新例程 SET_IO_ERR_HANDLER(3f)GET_IO_ERR_HANDLER(3f) 是模块子例程,并要求在调用它们的例程中使用 USE SUN_IO_HANDLERS。要详细了解这些例程,请参见手册页。

4.7.2 变量格式表达式

Fortran 77 允许用尖括号括起的任意表达式来代替具有某种格式的任何整数常量:

1 FORMAT(< expr > … )

变量格式表达式不能作为 nH… 编辑描述符中的 n 出现在 ASSIGN 语句引用的 FORMAT 语句中,或者并行区域内的 FORMAT 语句中。

这种功能是在 f95 中自动启用的,并且不要求使用-f77 兼容性选项标志。

4.7.3 NAMELIST 输入格式

4.7.4 二进制未格式化 I/O

使用 FORM=’BINARY’ 打开文件与使用 FORM=’UNFORMATTED’ 具有大致相同的效果,所不同的是文件中没有嵌入记录长度。如果没有此数据,则无法知道一条记录的开始或结束位置。因此,无法对 FORM=’BINARY’ 文件执行 BACKSPACE 操作,这是因为不知道要退格到什么位置。对 ’BINARY’ 文件执行 READ 操作时,将按需要读取尽可能多的数据来填充输入列表中的变量。

4.7.5 各种 I/O 扩展