(完整版)fortran文件操作
6 Fortran 程序设计6-文件

6 Fortran 程序设计6-文件在Fortran程序设计中,文件操作是非常重要的一部分。
通过文件操作,可以实现数据的读取和写入,以及数据的存储和处理。
本文主要介绍Fortran程序设计中与文件相关的操作。
文件的打开和关闭在Fortran中,可以使用OPEN语句打开一个文件,并使用CLOSE语句关闭文件。
以下是打开文件和关闭文件的示例代码:fortranOPEN(unit=10, file='data.txt', status='old',action='read')! 打开名为data.txt的文件,使用编号为10的单元,以只读方式读取文件内容! 进行读取操作CLOSE(unit=10)! 关闭编号为10的文件单元OPEN语句中的unit参数是文件的编号,file参数是文件的路径和名称,status参数指定文件的打开模式,action参数指定文件的操作方式。
常用的status参数值包括:'old'(读取现有文件)、'new'(创建新文件)、'replace'(替换现有文件)等。
文件的读取和写入在Fortran中,可以使用READ语句从文件中读取数据,使用WRITE语句将数据写入文件。
以下是读取文件和写入文件的示例代码:fortranREAD(unit=10, fmt=) variable1, variable2,! 从编号为10的文件单元中读取数据,并将数据存储到相应的变量中! 进行处理操作WRITE(unit=20, fmt=) variable1, variable2,! 将变量的值写入编号为20的文件单元中READ语句中的unit参数是文件的编号,fmt参数是数据的格式。
通常使用表示自由格式,即根据数据的类型自动判断格式。
WRITE语句的unit参数和fmt参数的含义与READ语句相同。
文件的定位在处理大型文件时,有时候需要跳过一部分数据或者回到文件的开头位置。
(完整)fortran语法手册

1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I—N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
2.2 用类型说明语句确定变量类型:可以改变I—N规则2。
3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I—N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2。
4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(—1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=’,I,’A=’,A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2。
5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/—1.0,-1。
0,—1。
0/DATA A/-1.0/,B/-1.0/,C/—1。
0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*’’/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容.4 FORTRAN77关系运算符。
(完整word版)fortran程序实例

1) 实例3 —求多个半径下的圆周长 ! z3.f90 --Fortran95 FUNCTIONS:-Entry point of con sole application.I*************************************************************************PROGRAM: z3PURPOSE: En try point for the con sole applicati on.I************************************************************************program z3 !求多个半径下的圆周长 !主程序! PROGRAM Z3PRINT *, 'R=',1.2,'C=',C(1.2) PRINT *, 'R=',3.4,'C=',C(3.4) PRINT *, 'R=',15.6,'C=',C(15.6) PRINT *, 'R=',567.3,'C=',C(567.3) END program z3 !子程序FUNCTION C(R) PI=3.1415926 C=2*PI*R RETURN ! Body of z3 endz3•■Alta• JSwFta.■■ TTjn* FMIIH-.T jd - |叭■(Lld4ilh■ Hi li tii.IW M H MvfriiMfeai Iwi Ji JJII+M4Tml+n««I*界rFHtlE- HfrtpliK * W mita itflLuLfl-PRINT* ,'以上为计算机的计算结果,注意 B 的值'ZXZ I O.f90 FUNCTIONS: ZXZ_I_O- Entry point of con sole applicati on.PROGRAM: ZXZ_I_OPURPOSE: En try point for the con sole applicati on.program ZXZ_I_O implicit none!变量声明的位置INTEGER(2) i; INTEGER(4) j; INTEGER(4) m; REAL n INTEGER A,B PRINT*,'输入整数 A'; READ*, A PRINT*,'输入整数 B'; READ*, B B=A+BWRITE(*,*) 'A*B=',A*B实例4 —键盘与显示器输入/输出2)a) Fortra n 基本操作1 B Li PlLu- i \ JfiL ■ I■' hi -IJBL . n :»'匹:"b )程序指令BIE1A J~. C ■* «I*************** 输入、输出样式种种 **************************!系统默认的输出样式 PRINT* ,'系统默认的输出样式' !人为控制的的输出样式--格式化输出 i=21; j=53; m=5 n=(i+j*m*i**m) WRITE(*,*) 'i,j,m 是常量,程序赋初值PRINT*, i,j,m WRITE(*,*) 'i,j,m 的计算结果:'PRINT*,'i+j*m*i**m=' ,nPRINT* ,''! Body of ZXZ_I_O end program ZXZ_I_O 程序说明: 程序赋值一初始化 i=21; j=53; m=5 键盘无格式输入 READ*, A 键盘有格式输入 READ ( *, 100)A,B,C 100 FORMA T( 2F5.2,F5.3) 显示器无格式输出PRINT* ,'系统默认的输出样式' WRITE(*,*) 'A*B=',A*B 显示器有格式输出 PRINT 100 ,A+B WRITE(*,100) 'A*B=',A*B 100 FORMA T( F5.2)C )调试运行d )程序指令pruqrdiri ZX2_l_0 iflnpllclt iioiiv 陝量声明的立置IHTEGERfZ) i; IMTEGEimi ]; IHTEGER(^)叭 REAL nA.B I Uairidbles■HIKE J 播入整該■打1E.D 屯A PRINT •,-KM«a■ e-fltBFHJHIv T -H-Ai-B-1 ,ti' Axb- 1 T A I UHU NA 「臥存为计負机药计貝韭呆*妊憲L1的低・1-21; j-b3;«R[TEC-,«) l,j,n 是常最.程序Itt 前值・FHIHTa, 1 J ,■WR1TF(-F -J l p j,n 的tt 幣结黑,.FHim* /■r u 讪o#畑」」Ffirl prnni'an ZK? I o! ZXZ丄O.f90! FUNCTIONS:ZXZ_I_O - Entry point of con sole applicati on.PROGRAM: ZXZ_I_OPURPOSE: En try point for the con sole applicati on.1 *************** 输^入 ^输出样式种不中program ZXZ_I_Oimplicit none!变量声明的位置INTEGER(2) i; INTEGER(4) j; INTEGER(4) m; REAL nINTEGER A,BREAL X,Y ,Z ! VariablesPRINT*,'输入整数A'; READ*, APRINT*,'输入整数B'; READ*, B PRINT*,'计算结果为:'B=A+BPRINT*,'B=A+B=',BWRITE(*,*) 'A*B=',A*BPRINT* ,'以上为计算机的计算结果,注意B的值'!系统默认的输出样式PRINT* ,'系统默认的输出样式'PRINT*,'输入实数X'; READ(*,100) XPRINT*,'输入实数Y:READ(*,100) Y100 FORMA T(F5.2)PRINT*,'计算结果为:'Z=X+YPRINT 200,Z200 FORMA T(4X,'Z=X+Y=',F8.3)WRITE(*,*)WRITE(*,300) X*Y300 FORMA T(4X,'Z=X*Y=',F8.3)!人为控制的的输出样式--格式化输出PRINT* ,'程序为常量赋了初值'i=21; j=53; m=5n=(i+j*m*i**m)WRITE(*,*) 'i,j,m 是常量,程序赋初值PRINT*, i,j,mWRITE(*,*) 'i,j,m 的计算结果:'PRINT*,'i+j*m*i**m=' ,nPRINT* ,' '! Body of ZXZ_I_Oend program ZXZ_I_Oe)调试运行rRIHT* JPRTNi*. ■讦薛结果为.・ E^A*BPRTNT*,,R=A+R=,,8 URrfEfw,*) 'ft-D-1t A-DPRINT * J 以上药i1■宴利的iT 畀结果.傢金默认囱馥出择畫PRINT*「系唏默认册葆出样式・ 阳IHH. •揃扎斓 W : WIHZJ 输入宪数V;1B0 F0RHAKF5.2)PRINT -,■廿尊结杲为FREAD(*,1ua ) K R 匚flD(*,100) VPRINT 2Q0左2(JU FUKMfil(4i(t ; = «+/= \FB »J) unrrEf*.*)WRITE(*r 30O) X*V FORMfiT(UX /? = X*V=* ,F8 .3}认为扌前函的输世#戎一逼占化输出PRTHT- ”囉序対常豊瓯了初值・ i^Z» i j=53;I1=5 n=(i +j*m*i**n)WRITEf"^) 'i t j t n 是常量,程序赋初值 PRTHTw, i r j F nMRlTEe 』)・i J,n 的计具结衆:,PRI HI*.'i+j *R*i**m=',n。
Fortran中批量处理文件方法总结

Fortran中批量处理文件的方法总结—循环读取目录下的所有符合条件的文件一、简单的介绍在一年之前,我写过一个程序,主要是对Micaps资料进行批量处理,将逐日资料处理为旬、月的数据,在那个程序中,始终有一个问题困扰我,就是如何自动生成该读取的下一个文件名,这使我真正开始关注fortran中的批处理,时隔一年,决定写下这些文字,将我用到的一些fortran批处理的方法和大家共享,交流。
对于那些只要会用程序,不求其中原理的朋友,请马上跳过这些文字,直接去下载附件吧!程序里有使用说明,但是,如果你不懂原理,估计现成的程序你使用起来也会碰壁哦!这里所说的批处理是指对某一个目录下的指定后缀的文件的批量读取和处理。
我总结的批处理方法大概可以用下面这个示意图来说明:|||将文件目录写入一个文本文件,供fortran循环读取|————手动输入文件名|————运行程序之前命令行工具导出文件名|————程序运行后,未开始计算之前,生成文件名| ————调用CMD命令生成| ————GETFILEINFOQQ方法生成| ————调用WIN32API生成||在程序运行时动态生成文件名||对于第一种方法,我将主要介绍如何将目录写入文件,然后举出一个小的示例来验证。
第二种方法主要是说明其思路。
二、方法的介绍1、将文件目录写入一个文本文件,供fortran循环读取1.1、手动输入文件名这是最基本的方法啦,如果文件个数不多,而且文件名中包含了空格等特殊字符的话,建议使用这种方法,在这里就不多说啦,至于在fortran中的处理,等几个小方法介绍完之后会有一个例子来说明。
1.2、运行程序之前命令行工具导出文件名这是一个既高效又保险的方法,主要思路就是通过强大的CMD命令列出目录下的文件到一个指定的文件中,然后由fortran去循环读取该文件中的文件名信息,从而批量处理。
a、从运行工具打开你的CMD窗口;b、转到要处理的当前目录(可省略):CD /d 路径,如:CD /d e:\test这样可以快速到达e:\test目录c、使用DIR命令列出文件目录信息到指定的文件,通常使用的Dir *.*>新文件名这个命令在这里已经不能满足要求,因为会列出一堆对于我们处理而言无用的信息,现在要使用的命令是:DIR /b filter>newfile注意,其中的filter为文件筛选,必须自己修改为所需的,比如你可以把它改成*.txt,这样,就会列出当前目录下的所有txt结尾的文件了。
6 Fortran 程序设计6-文件

6 Fortran 程序设计6-文件6 Fortran 程序设计-文件6.1 引言本章将介绍如何在Fortran程序中处理文件输入和输出。
文件输入和输出是Fortran程序中常见的操作,可以用于读取外部数据、将结果写入文件等。
本章将介绍如何打开、关闭、读取和写入文件,并提供一些常用的文件操作示例。
6.2 文件的打开和关闭在Fortran中,可以使用OPEN语句打开一个文件,使用CLOSE语句关闭一个文件。
打开文件时,需要指定文件名、打开模式和文件单元号。
关闭文件时,只需要指定文件单元号即可。
6.2.1 打开文件打开文件的语法如下:OPEN(unit=, , status=status, iostat=iostat)其中,unit是文件单元号,file是文件名,status是文件的打开模式,iostat是一个可选的参数,用于返回执行结果。
status的取值有以下几种:- 'OLD':打开一个已存在的文件,该文件必须已经存在,否则会报错。
- 'NEW':创建一个新文件,如果文件已存在,则会清空文件内容。
- 'UNKNOWN':打开一个已存在的文件,如果文件不存在,则会创建一个新文件。
- 'REPLACE':创建一个新文件,如果文件已存在,则会替换原文件。
打开文件成功后,文件单元号将被用于后续的文件操作。
6.2.2 关闭文件关闭文件的语法如下:CLOSE(unit=, status=status, iostat=iostat)其中,unit是文件单元号,status是一个可选的参数,用于指定关闭文件时的操作。
status的取值有以下几种:- 'KEEP':保留文件,不清空文件内容。
- 'DELETE':删除文件。
文件关闭成功后,文件单元号将无法再用于文件操作。
6.3 文件的读取和写入在Fortran中,可以使用READ和WRITE语句进行文件的读取和写入操作。
FORTRAN文件转换代码使用说明by跳跳

比如要转换的文件名为crosovr.f,在对话框中只需要输入crosovr/,然后按下回车键就可以完成转换,
4.下载的转化文件代码执行过之后,会在项目里生成的Debug文件夹下产生一个.exe文件。使用者也可将这个.exe文件拷贝到
自己直接运行這个.exe文件进行文件格式
FORTRAN文件转换代码使用说明:
0.这两个文件分别可进行FORTRAN77与FORTRAN90代码文件的格式转换,
1.下载后打开FORTRAN,新建项目,之后将下载文件添加到项目文件夹下面,
2.运行代码,
3.代码运行后对话框中会有英文说明。需要注意的是,把你需要转换的文件必须放到代码所在的项目文件夹下才能进行转化。
fortran新建,添加外部文件和简要读写格式说明

1.建立新的运行空间File>new>workspace>new>prject>console application>new>file>free-form2.建立多个文件可以把子程序文件和主程序文件放在同一个source文件下3.建立外部文件用于读写数据Open(1,file=’ exam.txt ‘)用于打开文件,其中1为设备号——用一整数表示,exam.txt为要打开的文件名,文件有文件名和文件类型构成,文件名可给出路径如file=’ D:\exam\exam.txt ‘Write(1,*)’学生的成绩为:’用于在写在前面打开的1文件里写数据,其中*和0、5、6是系统预定义的设备号由系统隐含规定。
一个文件名只能和一个设备号建立联系,同样一个设备号也只能与一个文件建立联系,一个通过OPEN语句打开并指定了设备号的文件不能再次用OPEN语句打开Read(1,*)表示从文件里面读取数据,一次读取一个数据,数据间用逗号隔开每隔一个read语句或write语句默认的换一行读入或写入Write(1,”(‘输入’)”)=write(1,*) ‘输入’Write(1,”(‘I3,’输出’,I7)”) x,y结果是x以3个整型字符输出,输出,y以7个整型输出Read(1,100)或write(1,100)I,j,k 100 format(I3,I7,F6)表示按照100语句的格式读入或输出顺序读写数据:Read(uint设备号,fmt格式说明,end结束语句转移,eor错误语句转移)输入数据可以按规定的域宽输入,也可以用逗号强制间隔,1.使用read语句读取数据时,read语句输入表中的数据类型和格式应该与当前指针位置数据类型和格式一致。
2.使用read语句读取数据时,从当前文件指针开始读取,完成读取后文件指针自动后移一个记录,使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。
fortran90数据文件的操作上机

1、从文件中读数据的语句:
写法: READ (控制信息表)输入表
顺序存储文件的最简写法:
READ (设备号,格式说明)输入表
例:
READ(2,*)A,B,C READ(2,FMT=’(3F4.1)’)A,B,C
READ的其它选项
IOSTST=IT IT为整型变量值,执行此语句时获得数 值, <0表遇到文件结束信息 >0 此操作发生错误 =0 执行成功
试盘(盘符为T:)的根目录下供阅卷用。
【题目】函数f(x,c)的展开式如下:(2009春)
f ( x, c) c
2
4c x
2x
cs o(
( 2 n 1) x c
)
( 2 n 1)
2
0 x c
n 1
将上式右端编写成外部过程。当级数通项的绝对值小于eps=1E-10时停止 计算。在同一行上,x和c用F6.2格式输出,计算所得的用F9.5格式输出。 计算所用的数据存放在文件MYF2.DAT中,从该文件输入的x、c的值分别 为:
10.2 文件的基本操作
对文件的基本操作包括打开文件、读、写文件及关闭文件。
10.2.1 OPEN 语句 功能:打开文件。把文件与一个文件号连接起来且文件指 针指向第一个记录(直接文件无文件指针)。 一般形式如下: OPEN(连接信息表) 连接信息表所包含的说明符如下:
1、UNIT=ut。 文件号ut ,必须是无符号整数 当文件号为第一个说明符时,‘UNIT=’可省略 2、FILE=fe。 fe字符型数据,代表文件名(可含盘符路径) 例如:OPEN(3,FILE=‘DATA.DAT’)
功能:解除文件号与文件的连接关系。 写法:CLOSE(关闭信息表) 关闭信息表主要有下列说明符: UNIT=ut IOSTAT=it 为可选项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fortran文件操作From: 《Fortran 95 程序设计》彭国伦1.文件读取的概念:读取:“顺序读取”和“直接读取”。
保存:“文本文件”和“二进制文件”。
二进制文件:读取快,因为保存格式和数据在内存中的保存方法一样,同时也节省空间。
----------------------------------2. 文件的操作:----------------------------------open的使用:使用open命令打开文件之后,就可以对文件来做输入输出。
example:program ex0901impicit noneopen(unit=10, file='hello.txt') ! 打开hello.txt文件, unit指定文件代码,file 指定文件名称。
write(10, *) "hello" !在代码为10的文件中写入hellostopend program ex0901open中有很多参数可以使用,详细如下:OPEN(UNIT=number, FILE='filename', FORM='...', STATUS='...', ACCESS='...', RECL=length, ERR=label, IOSTAT=iostat, BLANK='...', POSITION='...', ACTION=action, PAD='...', DELIM='...')UNIT='number': number必须是一个正整数,它可以使用变量或是常量来赋值。
number最好避开1,2,5,6。
因为2,6是默认的输出位置,也就是屏幕。
1,5则是默认的输入位置,键盘。
FILE='filename':指定要打开的文件名称,文件名要符合系统规定。
windows下不区分大小写,unix下则会区分大小写,最好不要使用中文文件名。
FORM='FORMATTED' OR 'UNFORMATTED'FORM字段只有两个值可以设置:FORM='FORMATTED' “文本文件”格式来保存FORM='UNFORMATTED' “二进制文件”格式保存这一栏不给定时候的默认值是: FORM='FORMATTED'STATUS='NEW' or 'OLD' or 'SCRATCH' or 'UNKNOWN' 用来说明打开一个新的文件或已经存在的旧文件。
STATUS='NEW' 打开一个原本不存在的新文件STATUS='OLD' 打开一个原来已经存在的文件STATUS='REPLACE' 若文件已经存在则重新创建一次,原来的内容消失;若不存在则会创建新文件。
STATUS='SCRATCH' 表示要打开一个暂存文盘,这个时候可以不需要指定文件名称,也就是FILE这个一栏可以忽略。
因为程序本身会自动取一个文件名,至于文件名是啥也不重要,因为暂存盘会在程序结束后自动删除。
STATUS='UNKNOWN' 由各编译器自定义。
通常会同REPLACE的效果。
!这一栏不给定时,默认为STATUS='UNKNOWN'。
ACCESS='SEQUENTIAL' or 'DIRECT' 设置读写文件的方法:ACCESS='SEQUENTIAL' 读写文件的操作会以“顺序”的方法来做读写,“顺序读取文件”。
ACCESS='DIRET' 读写文件的操作可以任意指定位置,“直接读取文件”。
!不赋值时候,默认为: ACCESS='SEQUENTIAL'。
RECL=length 在顺序读取文件中,RECL字段值用来设置一次可以读取多大容量的数据。
打开“直接读取文件”,RECL=length的length值是用来设置文件中每一个模块单元的分区长度。
length的单位在文本根式下为1个字符,也就是1 byte。
在二进制格式下则由编译器自行决定,一般可能为1 byte (G77) 或 4 byte (Visual Fortran)。
ERR=LABEL 这个字段用来设置当文件打开发生错误时,程序会跳跃到LABEL所指定的行代码处来继续执行程序。
IOSTAT=var 这个字段会设置一个整数值给后面的整型变量,这是用来说明文件打开的状态,数值会有下面三种情况:var>0 表示读取操作错误var=0 表示读取操作正常var<0 表示文件终了BLANK='NULL' or 'ZERO' 用来设置输入数字时,当所设置的格式字段中有空格存在时所代表的意义。
BLANK='NULL'时,空格代表没有东西。
BLANK='ZERO'时,空格部分会自动以0代入。
以下是Fortran 90添加的功能:POSITION='ASIS' or 'REWIND' or 'APPEND' 设置文件打开时候的读写位置:POSITION='ASIS' 表示文件打开时的读取的位置不特别指定,通常就是在文件的开头。
是默认值。
POSITION='REWIND' 表示文件打开时的读取位置移到文件的开头。
POSITION='APPEND' 表示文件打开时的读取位置移到文件的结尾。
ACTION='READ' or 'WRITE' or 'READWRITE' 设置打开文件的读写权限:ACTION='READWRITE' 表示所打开的文件可以用来读取及写入,这是默认值。
ACTION='READ' 表示所打开的文件只能用来读取数据。
ACTION='WRITE' 表示所打开的文件只能用来写入数据。
PAD='YES' or 'NO'PAD='YES' 在格式化输入时,最前面的不足字段会自动以空格填满,默认值是PAD='YES'。
PAD='NO' 在格式化输入时,不足的字段不会自动以空格填满。
DELIM='APOSTEROPHE' or 'QUOTE' or 'NONE'DELIM='NONE' 纯粹输出字符串内容DELIM='QUOTE' 输出字符串内容会在前后加上双引号DELIM='APOSTEROPHE' 输出字符串内容会在前后加上单引号-----------------------------------------WRITE & READ的使用(详细):WRITE/READ(UNIT=number, FMT=format, NML=namelist, REC=record, IOSTAT=stat,ERR=errlabel, END=endlabel, ADVANCE=advance, SIZE=size)UNIT=number 指定read/write所使用的输入输出的位置。
FMT=format 指定输入输出格式的使用。
NML=namelist 指定读写某个NAMELIST的内容(后续介绍)。
REC=record 在直接读取文件中,设置所要读写的文件的模块位置。
IOSTAT=stat 会设置一个数值给在它后面的变量,用来说明文件的读写状态。
stat>0 表示读取操作发生错误。
stat=0 表示读取操作正常。
stat<0 表示文件终了。
ERR=errlabel 指定在读写过程中发生错误时,会转移到某个行代码来继续执行程序。
END=endlabel 指定在读写到文件末尾时,要转移到某个行代码来继续执行程序。
以下是fortran 90添加功能:ADVANCE='YES' or 'NO' 设置在文本格式下的顺序文件中,每一次的READ,WRITE命令完成后,读写位置会不会自动想下移动一行。
ADVANCE='YES' 是默认的状态,每读写一次会向下移动一行。
ADVANCE='NO' 会暂停自动换行的操作。
!使用这个字段时候一定要设置输出入格式,在屏幕输出时可以使用这个设置来控制write命令是否会自动换行。
SIZE=count 在ADVANCE='NO'时,才可以使用这个字段。
它会把这一次输出入的字符数目设置给后面的整型变量。
----------------------------------查询文件的状态INQUIRE:在使用open打开文件的前后,都可以通过inquire命令来查询文件目前的情况,inquire 命令中的各个字段和第一小节中open的字段很类似。
example: !检查某个程序是否存在program ex0903implicit nonecharacter(len=20) :: filename = "ex0903.f90"logical aliveinquire(file=filename, exist=alive)if(alive) thenwrite (*, *) filename, " exist."elsewrite (*, *) filename, "doesn't exist."end ifstopedn program ex0903详细介绍inquire的使用方法:INQUIRE(UNIT=number, FILE=filename, IOSTAT=stat, ERR=label, EXIST=exist, OPENED=opened, NUMBER=number, NAMED=named, ACCESS=access, SEQUENTIAL=sequential, DIRECT=direct, FORM=form, FORMATTED=formatted, UNFORMATTED=unformatted, RECL=recl)UNIT=number 文件代号FILE=filename 文件名IOSTAT=stat 查询文件读取情况,会设置一个整数给后面的变量:stat>0 文件读取操作错误stat=0 文件读取操作正常stat<0 文件终了ERR=errlabel 发生错误时会转移到复制的代码行继续执行程序。