(完整版)fortran文件操作

合集下载

6 Fortran 程序设计6-文件

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语法手册

(完整)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程序实例

(完整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中批量处理文件方法总结

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-文件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跳跳

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

fortran新建,添加外部文件和简要读写格式说明

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数据文件的操作上机

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 为可选项

Fortran流程

Fortran流程

流程控制
多重判断IF-ELSE IF
IF(e1) THEN
…块1… ELSE IF(e2) THEN ← 条件e1成立时,执行这个模块程序
…块2…]
…… ……
← 条件e2成立时,执行这个模块程序
ELSE IF(en) THEN
…块n…] ELSE ← 条件en成立时,执行这个模块程序 ← 这个模块可忽略
流程控制
四、其他流程控制
PROGRAM ex0514 IMPLICIT NONE REAL :: height ! 记录身高 REAL :: weight ! 记录体重 WRITE(*,*) "height:" READ(*,*) height ! 读入身高 WRITE(*,*) "weight:" READ(*,*) weight ! 读入体重 IF ( weight > height-100 ) GOTO 200 ! 上面不成立, 没有跳到200才会执行这里 100 WRITE(*,*) "Under control." GOTO 300 ! 下一行不能执行所以要跳到300. 200 WRITE(*,*) "Too fat!" 300 STOP END
流程控制
字符的逻辑判断
除了数字可以拿来互相比较大小之外,字符也可以互相比较大小。比较字 符大小的根据是比较它们的字符码,因为在保存字符时,事实上就是保存它们 的字符码。个人计算机都使用ASCII字符码。
例如:‘a’<‘b’ !因为a的ASCII码为97, b的ASCII码为98。
program ex0511 implicit none character(len=20) :: str1,str2 character :: relation write(*,*) "String 1:" read(*,"(A20)") str1 write(*,*) "String 2:" read(*,"(A20)") str2 if ( str1>str2 ) then relation = '>' else if ( str1==str2 ) then relation = '=' else relation = '<' end if write(*,"('String1',A1,'String2')") relation stop end

forrtran中文本文件读写方法

forrtran中文本文件读写方法

forrtran中文本文件读写方法
在Fortran中,文本文件的读写可以通过使用OPEN和WRITE函数来实现。

首先,要明确要操作的文件的类型。

文本文件可以显示所有的字符,通常由行通过换行符(CRLF、CR或LF)隔开,列由间隔符(空格、逗号或TAB)隔开。

Fortran中称为有格式文件,有两种读取方式:顺序读取和直接读取。

对于顺序读取,可以使用以下语句打开文件:
```fortran
open(unit=fileid, file=filename, access="sequential")
```
其中,`unit`指定了文件的位置,`file`是文件名,`access`指定了文件的访问方式。

对于直接读取,可以使用以下语句打开文件:
```fortran
open(unit=fileid, file=filename, access="direct", recl=record_length) ```
其中,`recl`指定了每次读取的记录长度。

在写入文件时,可以使用以下语句:
```fortran
write(unit, fmt, nml=namelist) var1, var2, ...
```
其中,`unit`指定了文件的位置,`fmt`是格式化字符串,`nml`是命名列表,`var1, var2, ...`是要写入文件的变量。

需要注意的是,在使用Fortran进行文本文件读写时,需要注意文件的格式和编码方式,以及换行符和间隔符的使用。

此外,Fortran中的文本文件读写通常适用于较小的文件,对于较大的文件,建议使用二进制文件读写的方式。

fortran 90 文件(文件的操作语句)解析

fortran 90 文件(文件的操作语句)解析

土木学院
这是已被打开 的数据文件的 内容
土木学院
土木学院
$
10
100 202
U1=2 Open(Unit=2,File='F2.DAT',Status='New', Access='Sequential',Form='Formatted') do 10 I=1,30 write(*,*) "请输入学号、两门成绩" Read(*,*) N,A,B C=A+B Write(2,202) '学号:', N,'总成绩',C continue 输入30个学生的学号 Close(2) 和两门成绩,最后将总 Format(I2,F5.1,F5.1) 成绩与学号输出来. Format(A,I2,A,F7.1) End
我们现在主要以磁盘设备为例来介绍FORTRAN 对文件操作的语句(打开、关闭、定位、输入和输出)
土木学院
FORTRAN的数据文件由记录组成,也就是对文 件的存取是以记录为单位进行的;
文件
记录:长度不超过规定范围的数字或文本 的集合;
记录
Fortran的数据文件按存取方式可划分为: 1. 顺序存取文件(顺序文件) 其存取操作必须从头到尾顺序进行; 2. 直接存取文件(直接文件或随机文件) 在程序的执行过程中对任意一个指定的 记录进行操作(读和写)。
Access=SD 代表文件的存取方式: Direct:以直接方式存取;Sequential: 以顺序方式存取;
Form=fe 代表文件存放格式:Formatted-字符形式
在Open中省略Access和Form,则表示打开文件为 有格式顺序存取文件.

C语言直接操作FORTRAN数据文件的方法

C语言直接操作FORTRAN数据文件的方法

摘要:FORTRAN数据文件的结构及用C语言直接对FORTRAN数据文件进行数据读取和处理的方法,并结合实例,给出了完成操作的C语言源程序。

关键词:C语言FORTRAN数据文件数据直接读写FORTRAN语言适用于数值计算,在科学和工程计算方面发挥了重要作用。

C语言具有很强的通用程序设计功能,而且很适于处理图形图像、系统程序方面的问题,但它的数值计算能力不如FORTRAN语言。

如果能在C语言程序中直接调用FORTRAN程序的计算结果,则可充分利用这2种语言的优势。

为此,有必要建立用C语言对FORTRAN数据文件进行直接读取和处理的方法。

1 FORTRAN数据文件的结构在C语言程序中调用FORTRAN程序的计算结果,可通过FORTRAN数据文件来实现,而要用C语言直接存取FORTRAN数据文件,必须首先清楚FORTRAN数据文件的结构。

FORTRAN数据文件按存取方式的不同可分为顺序文件和直接文件。

而不论是顺序文件还是直接文件,按数据在文件中的存放方式的不同,都有2种存放形式,一种是字符形式(即ASCII码形式),另一种是二进制代码形式。

前者称为有格式存放,后者称为无格式存放。

由于对直接文件存取的基本操作步骤与对顺序文件存取的基本操作步骤相同,二者的不同主要体现在操作时是否应顺序进行。

下面以顺序文件为例进行具体分析。

1.1 有格式文件的结构有格式文件全部由有格式的记录组成,有格式的记录是字符的序列,以ASCII码形式存放。

各记录以回车符(0DH)和换行符(0AH)作为结束标志,各记录之间无分隔符,各记录的长度(字节数)可以不等。

1.2 无格式文件的结构无格式文件全部由无格式记录组成,无格式记录是值的序列,即二进制代码序列。

这种格式的文件,其第1个字节是4BH(即十进制的75),最后1个字节为82H(即十进制的130),各无格式记录的数据信息位于这2个字节之间。

每一个无格式记录都由下面3部分组成:(1)记录的首字节,是该记录所有数据所占的字节数;(2)组成该记录的各数据内容。

fortran 90 文件(文件的操作语句)

fortran 90 文件(文件的操作语句)

土木学院
这是已被打开 的数据文件的 内容
土木学院
土木学院
$
10
100 202
U1=2 Open(Unit=2,File='F2.DAT',Status='New', Access='Sequential',Form='Formatted') do 10 I=1,30 write(*,*) "请输入学号、两门成绩" Read(*,*) N,A,B C=A+B Write(2,202) '学号:', N,'总成绩',C continue 输入30个学生的学号 Close(2) 和两门成绩,最后将总 Format(I2,F5.1,F5.1) 成绩与学号输出来. Format(A,I2,A,F7.1) End
顺序文件的输出操作: Write(设备号,格式说明) 输出项表
土木学院
举例:读出一个数据文件记录,并把它显示在屏幕上
Open (Unit=2,File=‘TAB.DAT’,Status=‘NEW’ $ Access=‘Sequential’ ,Form=‘Formatted’) Do 10 X=1,10 Write(2,100) X, X*X, X*X*X 10 Continue Rewind(2) 将文件指针重新设置在文件开头(与设备号2连接的文件的开头) Write(*,*) ‘ X X*X X*X*X’ 20 Read(2,100, End=30) A,B,C Write(*,200) A,B,C Goto 20 End=30表示一旦读到文件 结束标志就不再进行读操作 30 Close(2) 而转到标号为30的语句继续 100 Format(3F7.1) 执行。 200 Format(1X,3F9.2) End

FORTRAN上机指导

FORTRAN上机指导

上机环境一.上机环境FORTRAN语言程序设计的上机环境如下:1.硬件环境微型计算机(Intel X86系列CPU)一台。

2.软件环境∙Windows98/2000/XP操作系统;∙任意一种文本编辑器(EDIT.exe、NOTEPAD.exe、TC.exe等);∙FOR5.1编译器二.上机步骤1.设置环境变量假设将FOR5.1安装在D:\,则上机前用如下的命令设置环境变量:PATH D:\FOR5\BIN;%PATH%SET LIB=D:\FOR5\LIB2.建立FORTRAN源程序建立FORTRAN源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器,使用方法同Microsoft Office Word。

3.用FL.EXE编译连接源文件将源程序编译为可执行文件的方法,有两种情况:第一种:将编译和连接一次完成,命令如下:FL 源程序名回车后开始编译)例:FL Y.FOR (没有错误,将产生Y.EXE文件)第二种:先将每个程序编译成目标文件(.OBJ),再将多个文件连接装配成可执行文件(.EXE)文件,这时命令分为两步:第一步:FL /C 源程序名(产生目标文件)第二步:FL 目标文件1+目标文件2 /LINK(产生.EXE)例: FL/C Y1.FOR (没有错误,将产生Y1 .OBJ)FL/C Y2.FOR (没有错误,将产生Y2 .OBJ)然后,将两个目标文件连接生成可执行文件:FL Y1.OBJ+Y2.OBJ /link (没有错误,将产生Y1.EXE文件)4.运行程序建立了EXE文件后,就可以直接在DOS下运行此程序,如下所示:C:>Y〈回车〉程序运行结束后,返回DOS。

如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。

如果不正确,则从1开始修改程序。

目录上机一顺序程序设计 (1)一.上机目的 (1)二.上机内容 (1)三.上机要求 (2)四.思考题 (2)上机二分支结构程序设计 (3)一.上机目的 (3)二.上机内容 (3)三.上机要求 (4)四.思考题 (4)上机三循环结构(一) (5)一.上机目的 (5)二.上机内容 (5)三.上机要求 (6)四.思考题 (6)上机四循环结构(二) (7)一.上机目的 (7)二.上机内容 (7)三.上机要求 (8)四.思考题 (9)上机五数组(一) (10)一.上机目的 (10)二.上机内容 (10)三.上机要求 (11)四.思考题 (11)上机六数组(二) (12)一.上机目的 (12)二.上机内容 (12)三.上机要求 (13)四.思考题 (14)上机七字符数据(一) (15)一.上机目的 (15)二.上机内容 (15)三.上机要求 (17)四.思考题 (17)上机八字符数据(二) (18)一.上机目的 (18)二.上机内容 (18)三.上机要求 (20)四.思考题 (20)上机九子程序(一) (21)一.上机目的 (21)二.上机内容 (21)三.上机要求 (23)四.思考题 (23)上机十子程序(二) (24)一.上机目的 (24)二.上机内容 (24)三.上机要求 (26)四.思考题 (26)上机十一文件(一) (27)一.上机目的 (27)二.上机内容 (27)三.上机要求 (27)四.思考题 (27)上机十二文件(二) (28)一.上机目的 (28)二.上机内容 (28)三.上机要求 (28)四.思考题 (28)上机十三综合设计 (29)一.上机目的 (29)二.上机内容 (29)三.上机要求 (31)四.思考题 (31)上机一顺序程序设计一.上机目的1、掌握编程、编译、连接过程。

fortran语言教程第8章

fortran语言教程第8章

第8章 FORTRAN语言的文件操作在前面介绍的程序中,结果都是输出在屏幕上,数据都是通过键盘送入内存单元,实际上数据的输入/输出也可在磁盘上。

如图所示:FORTRAN中对文件的存取以记录为单位,即:输出时:一个输出语句的数据就是一个记录,叫写入文件。

输入时:一个输入语句需要的数据就是一个记录,叫读出文件。

本章讨论FORTRAN程序的文件操作,也就是FORTRAN程序对磁盘数据文件的操作——读/写方式,并描述数据文件的记录结构,以及在程序设计中怎样建立,使用这些数据的记录结构。

8.1文件的概念8.1.1 文件的分类1)按记录存储结构分:顺序文件:文件记录存储按照时间顺序依次存放,记录的逻辑次序与物理顺序是一致的,不能随意读或取某个记录,必须从首记录开始访问。

直接文件:又叫随机文件,记录存放按记录号完成。

2)按记录数据存放格式分:有格式文件:记录以字符形式(或称ASCII码形式)存储,文件的数据流由一个个的字符组成,每个字符占据一个字节,每条记录用回车和换行符作为结束符,可以用文本编辑器(如记事本)直接打开查看。

无格式文件:数据以计算机内部的二进制代码形式存放。

如果用文本编辑器直接打开查看,只能看到乱码符号。

二进制文件:这是Microsoft的一种扩充模式,数据按其在内存中的存储形式存储在文件中,其数据流由二进制代码形式的一个个字节组成,结构最紧凑,适合保存大容量的数据。

用文本编辑器直接打开查看也只能看到乱码。

归纳起来,FORTRAN语言的文件可以分为:有格式(顺序文件、直接文件、二进制文件);无格式(顺序文件、直接文件、二进制文件);8.1.2 文件的操作1)文件记录定位文件在存取过程中,有一个文件指针控制着读写的位置,它总是指向当前进行输入或输出的那个记录,也可以通过语句拨动指针的位置。

2)文件操作的过程打开文件:要求机器分配一个供该文件使用的I/O缓冲区。

读或写文件:将数据通过分配的I/O缓冲区向文件中读写记录。

fortran文件知识点

fortran文件知识点

Fortran文件知识点Fortran(Formula Translation)是一种高级编程语言,专门用于科学和工程计算。

它于20世纪50年代初由IBM公司开发,并成为第一种被广泛应用的程序设计语言。

Fortran文件是指使用Fortran语言编写的源代码文件,其中包含了Fortran程序的逻辑和算法。

在本文中,我们将逐步介绍Fortran文件的知识点,帮助读者了解如何编写和使用这种文件。

第一步:文件结构Fortran文件通常由以下几个部分组成:1.程序声明:用于声明程序的名称和目的,以及引入外部模块或库文件。

2.变量声明:用于声明程序中使用的各种变量,包括整数、实数、字符等类型。

3.主程序:包含实际的计算逻辑和算法,用于执行特定的任务或解决问题。

第二步:文件扩展名Fortran文件通常使用.f或.f90作为文件扩展名。

.f扩展名是Fortran 77的标准,而.f90扩展名是Fortran 90及更高版本的标准。

这些扩展名有助于编译器识别文件类型并选择正确的编译方式。

第三步:编写Fortran文件编写Fortran文件可以使用任何文本编辑器,例如记事本、Sublime Text、Visual Studio Code等。

以下是一个简单的Fortran文件示例:program helloimplicit nonecharacter(10):: namewrite(*,*)'请输入您的名字:'read(*,*) namewrite(*,*)'您好,', trim(name), '!'stopend program hello在这个示例中,我们定义了一个名为hello的主程序,其中包含一个字符类型的变量name。

程序首先向用户请求输入姓名,然后输出一个问候语。

最后,程序通过stop语句终止运行。

第四步:编译和运行Fortran文件要编译Fortran文件,我们需要使用特定的编译器。

(完整版)fortran文件操作

(完整版)fortran文件操作

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':指定要打开的文件名称,文件名要符合系统规定。

Gfortran 使用说明

Gfortran 使用说明

1、source中未使用外部库链接的,直接执行:gfortran foo.f/f90 -o foo./foo如没有"-o"选项,生成a.out文件,这显然不是我想要的。

:D2、gFortran分两部分:compiler and library。

如果gFortran不是标准安装的,编译source后执行,可能找不到lib,这时可以加入"-static"选项:gfortran -static foo.f/f90 -o foogFortran会将库建在所生成程序内部。

3、FortranSource有77和90两种书写格式,gFortran默认根据后缀进行compile。

如果想自定义,例如foo.f是用90格式写的,可执行:gfortran -ffree-form foo.f -o foo大写的后缀名,gFortran会预执行该程序。

4、多source文件时,先compile不含PROGRAM语句段的source文件,各自生成foo1.o,foo2.o等。

再一起编译。

例如:gfortran -c foo1.f/f90gfortran -c foo2.f/f90gfortran main.f/f90 foo1.o foo2.o -o main5、foo.f95的,加选项"-std=f95",.f2003的,目前支持尚不完整。

顺便说,gFortran unstable版4.3.x将支持pointer。

下面还有一些可能常用到的options。

"-fbounds-check":检查列表序列脚标是否超出"-ffree/ffix-line-length-n":设置最大columns。

77默认:72;90默认:132。

n若设为"0"或"none",则不限有效行数"-fimplicit-none":等同于在f90每段sub中声明"IMPLICIT NONE",且source中implicit语句优先"-fmax-error-n":意义如词义"-fsyntax-only":不编译,只检查语法"-fexternal-blas":使用BLAS库函数,替代gFortran默认的函数感谢9楼。

FORTRAN

FORTRAN

FORTRAN 不区分大小写,对空格无严格要求;MATLAB区别大小写,系统内置关键字会自动变绿;数组列元素优先,默认下标从1开始;元语言符号和含义:():表示括号内对象一定取其中之一;[]:表示括号内任取一个对象,也可不取;1、创建文件:---创建工作环境(在file中)---创建工程(在左边目录树中右键环境添加工程即可)---创建文件(在file)---工程:FORTRAN CONSOLE APPLYCATION文件:FORTRAN FREE FORMAT SOURCE FILE直接打开.F90文件时,单击编译就可以调出环境和工程目录;2、调试:①---设置断点(手型图标)---单步执行(GO F5)---左下角中locals 中查看变量值变化---退出调试(stop debugging (shift+f5))②双击错误,即可跳到程序中出错的位置;3、常见错误:①1e(-5) --→ 1e-5 (不带括号);2^(3) -→ 2**3 (这是FORTRAN2003新增字符)②SQRT(i):i必须为实型;SQRT(4.0)A=SQRT(4):出错,类型不匹配;J=DSQRT(4.0) 出错,DSQRT为双精度;J=DSQRT(I) 定义时需REAL*8 I,J4、常见1D-7 :1乘以10的-7次方;乘方:2**2 两个*号;一、基础知识①定义符号常量:<1 REAL PIPARAMETER (PI=3.14)<2 REAL,PARAMETER :: PI=3.14②定义字符及字符串CHARACTER 变量名CHARACTER (len) 变量名, 或CHARACTER [ ( [LEN=] len) ] 变量名CHARACTER *len 变量名③定义变量:INTEGER :: I=3 有‘::’可以赋初值,否则不能赋初值;REAL*n 变量名REAL ( [KIND]=n ) 变量名(默认为4单精度,8为双精度)④IMPLICIT REAL*8(A-Z) 说明所有(从A到Z的)变量均为双精度(可以在后续声明中改变部分变量类型)<1有许多变量时可以采用这种声明方法;二、输入输出①输入READ:两种句法格式均可;READ *,x,y,zREAD (*,*) x,y②输出:都仅有一种句法;PRINT: PRINT *,x,yWRITE:WRITE (*,*) ,x,y<1输出文字时,可以用单引号或者双引号;WRITE (*,*) ‘输出’WRITE (*,*) “输出”(第一个逗号可以不写)<2两个*号时,第一个*表示在系统隐含指定的设备上输出;第二个*表示‘表控格式输出(计算机默认格式)’;一个*号时,*表示‘表控格式输出’;格式控制三种方法(用指定格式代替代表格式的*):<1> READ (*,”(I4,I5,I5)”),i,j,k<2>PRINT “(1X,’i=’,I5, 1X,’j=’,I5)”,i,j<3>WRITE (*,100),i,j100 FORMAT(1X,’i=’,I5, 1X,’j=’,I5)1) 5I3 :5和I之间没有*;<M>I3 :前面为常量时需加尖括号;③输出数据的个数必须和数据格式编辑符的个数一致:WRITE (*,100),n,I,j,k100 FORMAT(‘n=’, I2, ’i=’, I3, ’j=’, I4, ’k=’, I3) (4个I编辑符)④数据格式编辑符:<1整型数据:I编辑符;[r] Iw [.m]i:编辑符重复次数;w:字段总宽度;<2实型数据:F编辑符:[r] Fw.dd:实数小数位数;<3字符型数据:A编辑符:[r] Aw1)输出数据为*时,说明指定数据宽度位数不够;⑤控制格式编辑符:nX:空格;Tn:位置编辑符;指明记录的下一个字符输出到本行的第n个字符的位置上;/:换行输入;例:100 FORMAT(T20,'NEWTON迭代计算的方程的根:',//,& 3X,'X=',F15.10,/,&3X,'F(X)=',F15.10,/,&3X,'ITER=',I3)三、选择结构程序设计①执行代码必须另起一行;IF () THENIF执行代码ELSEELSE执行代码END IF<1可以没有ELSE②逻辑IF语句,执行语句可紧跟其后IF (条件表达式) 执行语句此时不需要,ELSE IF,也不需要END IF;四、循环结构程序设计1、循环类型:<1带循环变量:[DO 结构名:] DO i=e1, e2 [,e3]循环体END DO [DO结构名] ([]表示可省略)<2不带循环变量:[DO 结构名:] DO循环体判断条件EXITEND DO [DO结构名]<3DO WHILE语句[DO 结构名:] DO WHILE (逻辑表达式)循环体END DO [DO结构名]<4EXIT 和CYCLEEXIT [DO结构名]:跳出当前循环;CYCLE[DO 结构名]:终止本次循环,重新开始下一次循环;五、数组1、数组的定义:<1类型说明语句定义:类型说明 [::]数组名(维数说明符[,维数说明符,…])[,数组名,…] (1)维数说明符:[下标下界值:]下标上界值REAL a1(1:10), a2(1:5,1:3),a3(5), a4(5,5)注意:①如果声明 INTEGER A(M,N),那么之前必须声明M,N为常量;<2类型说明+DIMENSION语句类型说明,DIMENSION(维数说明符[,维数说明符,…])::数组名[,数组名,···]REAL,DIMENSION(4,5):: x,y2、数组引用:<1整体引用:INTEGER A(4,5),B(10) A=2<2单个元素引用:数组名(下标 [,下标,…])B(2)=1 A(1,2)=1<3片段法引用:(1)连续片段法:数组名(起始下标:终止下标)B(5:8)=1 A(1:1,1:4)第一行的前四列元素(2)下标三元素法:数组名([起始下标]:[终止下标][:不长],...)B(:10:5)=1 !将B(1),B(6)赋值1A(:,1:5:2)=1 !将1,3,5列赋值为13、数组赋值:<1直接赋值:数组对象=数组值A(2,3)=1<2DATA 语句:DATA 变量表1/初值表1/[,变量表2/初值表2/]…INTEGER X,Y,A(9),B(2,5),C(3,9)DATA X,Y/-3,-3/ ;DATA X,Y/2*-3/DATA A/1,2,3,4.../ ;DATA (A(i),i=1,10)/10*1/ <3数组构造器:数组名=(/数组取值列表/)(1)利用数值赋值:A=(/1,2,3,4…/) (仅限于一维) (2)利用数组赋值:A=(/B(1,1:5),C(1:2,8:9)/)A(:,1)=B(:,1)(3)隐式DO循环赋值:A=(/(j,j=1,9)/)4、数组输入输出:<1DO循环输入输出;<2使用数组名或数组片段进行输入输出操作:WRITE (*,200) B(3:5)WRITE (*,200) B<3使用隐含DO循环进行输入输出操作:WRITE (*,200) (c(i),i=1,5,2)WRITE (*,200) ((d(i,j),j=1,5,2),i=1,3)200 FORMAT (3*I)5、动态数组:---定义---空间分配---释放空间---<1动态数组的定义:类型说明,ALLOCATABLE [::] 数组名 1 (维数说明符1)[,数组名2(维数说明符2),…]‘:’表示一维数组;‘:,:’表示二维数组;INTEGER,ALLOCATABLE :: A(:),B(:,:),C(:)<2空间分配:ALLOCATE (数组名1([下界:] 上界) [,数组名2([下界:] 上界,…]…[,STAT=状态值])ALLOCATE (A(-3,3),B(4,4),C(6))<3空间释放:DEALLOCATE (动态数组名1[,动态数组名2,…])DEALLOCATE (A,B,C)6、数组操作语句:<1WHERE语句:提取符合条件要求的数组元素,然后对其进行操作;①WHERE (表达式) 赋值语句WHERE (A/=0) B=A+2②ELSEWHERE[块名:] WHERE (控制表达式1)[块1处理语句][ELSEWHERE (控制表达式2) [块名][块2处理语句]][ELSEWHERE [块名][块3处理语句]]END WHERE[块名]<2FORALL语句:[块名:] FORALL (三元循环下标 [,三元循环下标]…[,三元循环下标][控制表达式])[块处理语句]END FORALL[块名]例:FORALL (j=1:6,(i<j.AND.a(i,j)==0))A(i,j) = i*jEND FORALL。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 发生错误时会转移到复制的代码行继续执行程序。

相关文档
最新文档