fortran95的使用方法
其中的文件名称表达式(file-name-expr)为标量默认字符型表达式(R906)。
OPEN语句的一般规则为:
● 如果在部件说明符里面省略可选字符UNIT=,那么联结说明列表(connect-spec-list)的第一项必须是部件说明符。
● 在一个给定OPEN语句里面,任何说明符都至多只能出现一次;其中必须给出外部文件部件(external-file-unit)。
● 在说明符ERR=里面给出的语句标签必须是与该OPEN语句同一个作用域单位里面的分支目标语句的标签。
● 如果说明符STATUS=的值为NEW或REPLACE,那么说明符FILE=必须同时给出。 如果说明符STATUS=的值为SCRATCH,那么说明符FILE=不能同时出现。
如果说明符STATUS=的值为OLD,那么说明符FILE=必须出现,除非部件当前联结到一个文件,并且该文件存在。
● 说明符当中出现的标量默认字符表达式为字符的有限列表,尾部的空格被忽略。如果系统同时支持大小写,那么字符取值不区分大小写。
● 在一个程序的任意程序单位里面,一旦一个外部部件通过OPEN语句获得联结,那么在该程序的任意程序单位里面都可以引用该部件。
● 如果一个部件已经联结到一个存在的文件,仍然可以对该部件执行OPEN语句。如果在该OPEN语句当中不包含FILE=说明符,那么与该部件联结的文件就是已经与该部件联结的文件。
● 如果与部件联结的文件并不存在,但是和已经与部件预联结的文件相同,那么由OPEN语句给出的属性成为联结的一部分。
● 如果通过OPEN语句联结到部件的文件与已经与部件联结的文件不同,那么这个OPEN语句的执行效果相当于:在执行OPEN语句之前,马上执行一个不带有STATUS=说明符的CLOSE语句。
● 如果通过OPEN语句联结到部件的文件与已经与部件联结的文件相同,只是当前起作用的BLANK=,DELIM=,PAD=,ERR=,以及IOSTAT=这些说明符的值不同,那么会产生如下后果:
● 如果OPEN语句当中包含POSITION=说明符,那么它的值可能与文件的当前定位不符。
● 如果OPEN语句当中包含STATUS=说明符,那么它的值为OLD。
● BLANK=,DELIM=,PAD=这些说明符的值发生作用,而其他没有出现的说明符不会发生变化,文件的定位也不会发生变化。
● 此前执行的任何OPEN语句的ERR=,以及IOSTAT=这些说明符对当前执行的OPEN语句没有影响。
● 如果通过OPEN语句联结到部件的文件与已经与部件联结的文件相同,那么具有值OLD的说明符STATUS=总是合法的,这时如果文件在执行OPEN语句之前的状态为SCRATCH,那么在部件关闭后,文件被删除,并且认为具有SCRATCH状态。 ● 如果一个文件已经与一个部件建立联结,那么对该文件运用OPEN语句使其与另外一个不同的部件建立联结是非法的。
【例16-2】
OPEN (10, FILE = 's', ACTION = 'READ', PAD = 'YES')