fortran新建,添加外部文件和简要读写格式说明
- 格式:docx
- 大小:17.95 KB
- 文档页数:2
《FORTRAN》程序设计原理1、程序结构及书写规则一个程序由不同的程序单元组成,每一程序单元均以end结束,一般情况下,主程序的结构为:Program程序单元名说明语句可执行语句……STOPEND子程序的结构为:SUBROUTINE 程序单元名(哑元名表)说明语句可执行语句………RETURNEND以及FUNCTION 程序单元名(哑元名表)说明语句可执行语句………RETURNEND程序单元名由字母和数字组成,各程序单元中的变量独立编译,同名变量相互不影响。
1-5列为行号,可以是1-99999之间的任意数,6列为续行号,可以是任何字符,正文从第8列写到72列。
当第1列为字符C时,此行为注释行。
2、说明语句说明语句分为二类,一类必须放在程序单元的开头,另一类可以放在任何地方。
2.1 变量说明语句这一类说明语句,必须放在程序单元的开头,以表明变量的性质。
若不加以说明,以I-N开头的变量均为整型,其余变量均为实型,称之为I-N规则。
同一变量经下列显式说明语句说明后,I-N规则失效,没有经显式说明的变量,I-N规则仍然有效。
PARAMETER(变量名=const,……)REAL 变量名表INTEGER变量名表CHARACTER变量名表LOGICAL变量名表COMPLEX 变量名表IMPLICIT 变量基本类型(字符名表)DOUBLE PRECISION变量名表DIMENSION变量名表COMMON 变量名表COMMON /公共区名/ 变量名表DATA 变量名表/数值名表/一个变量可由多个语句说明,其中类型说明语句的级别最高,例如:Implicit real (a-c,e) 由a,b,c,e开头的变量均为实型Dimension ax(100) 定义一个100个元系的实型数组Integer bx, ax 重新定义bx, ax为整型变量2.2 格式说明语句这一类语句可以放在程序单元内的任何地方,常用的有:FORMAT(nFw.d, nX, nAw, nIw, ‘…….’, \ ,nEw.d)这里,n是重复使用该格式码的次数,F表示实型,X表示空格,A表示字符,I表示整型,E科学记数法,w是输入/出的宽度,d是小数位数,引号‘’内的内容原样输出,斜线‘\’表示输入/出时换行。
简单说明一次编译程序的过程:1.建立一个新的Project(File-new-选择Project选项卡-Utility Project,给定project的名称),确定生成Project。
2.生成一个新的程序文件(File-new-选择Files选项卡-Fortran Free Format Source File,给定文件名),或是插入一个已有的程序文件(选项Project/Add to Project/Files).3.用Build菜单中的Excute选项来编译并运行程序,或是只单击Build选项来只做编译,不运行程序。
4.要写新的程序可以另外建立一个新的Project,或是直接跟换Project中的文件。
千万不要把两个独立的程序文件放入同一个Project中,否则导致编译过程出现错误。
5.下次修改程序时,可以直接使用File/Open Workspace来打开*.dsw的Project工程文件。
一、安装Fortran6.5安装包中包括以下文件(夹)本人电脑-x86 64位-win7进入X86文件夹,运行,中间需要输入序列号,记事本打开获取,进过中间一些文件位置的选择,到百分之九十多的时候,需要选择是否安装运行环境,选是,最后安装完成。
二、运行开始---Compaq Visual Fortran 6---Developer Studio如果提示打开失败,则选中Developer Studio,右键----管理员获得所有权---就可以了三、打开出现如下对话框:熟悉一些tips:第一条:If your program hangs应用程序瘫痪while running outside the debugger在调试器外运行程序, attach贴上、附加the debugger调试器to your program程序by choosing Start Debug调试、除错form the Build menu, and then choosing Attach to Process.如果你的程序在调试器外运行,导致应用程序瘫痪,通过选择Build---Start Dubug---attach to program,讲调试器连接到你的程序。
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':指定要打开的文件名称,文件名要符合系统规定。
fortranwrite用法Fortran中的fortranwrite是一个用于文件写入的子程序。
它提供了一种将数据以二进制格式写入文件的方法,并可以按照指定格式将数据转换为字符文本。
fortranwrite具有灵活的选项,可以根据不同的需求调整数据写入的方式。
fortranwrite的基本语法如下:`WRITE (unit, format) [input-list]`其中,unit指定了要写入的文件单元号,通常是一个整数或逻辑单元号。
这个单元号可以是事先由OPEN语句获得的逻辑单元号,也可以是内建的实体所定义的逻辑单元号(如*或者"stdout"表示控制台输出,或者trim文件的单元号)。
format是一个字符表达式,用于指定将数据转换为字符的格式。
格式指令是用于指定如何写入和读取数据的符号,也称为“格式编辑描述符”。
Fortran的格式编辑描述符包括格式宽度、字段宽度、编辑序列等。
input-list是需要写入文件的数据列表。
数据可以是常数、数组、变量或者复合结构。
input-list中的每个元素都按照format中的格式转换为字符并写入文件。
下面是使用fortranwrite的一个例子:fortranprogram write_exampleimplicit noneinteger :: i, jreal :: x(10), y(10)! 给数组x和y赋值do i = 1, 10x(i) = iy(i) = i2end do! 打开文件并写入数据open(unit=10, file='data.dat', status='replace', action='write') do i = 1, 10write(10, '(2F10.2)') x(i), y(i)end doclose(unit=10)! 从文件读取数据并打印open(unit=10, file='data.dat', status='old', action='read')do i = 1, 10read(10, '(2F10.2)') x(i), y(i)end doclose(unit=10)! 打印读取到的数据do i = 1, 10write(*, '(2F10.2)') x(i), y(i)end doend program write_example在上面的示例中,我们首先定义了两个数组x和y,然后使用do循环为它们赋值。
fortranwrite用法-回复Fortran是一种编程语言,它被广泛用于科学计算和数值分析领域。
在这篇文章中,我将详细介绍Fortran中的fortranwrite函数的用法以及它的作用。
Fortran是一种面向高性能计算的程序设计语言,广泛用于科学计算和工程领域。
它是世界上最早的高级程序设计语言之一,于1950年代由IBM 开发。
虽然有其他更现代化的编程语言,但Fortran在科学计算和数值分析方面的性能仍然无可比拟。
fortranwrite函数是Fortran编程语言中非常重要和常用的一个函数,用于将数据写入到外部文件中。
fortranwrite函数的语法如下:WRITE (unit, format) list其中,unit是一个整数表达式,代表文件的单元号。
在Fortran中,使用一个整数值来引用打开的外部文件。
format是格式控制字符串,定义了数据的输出格式。
list是一个包含要写入文件的数据的列表。
在使用fortranwrite函数之前,我们需要先打开一个外部文件。
这可以通过OPEN语句来完成。
下面是打开一个文件的示例:OPEN (unit = unit_number, file = 'filename.txt', status = 'unknown')其中,unit_number是一个整数表达式,代表要打开的文件的单元号。
filename.txt是要打开的文件的名称。
status是文件状态,可以是unknown、old、new等。
接下来,我们可以使用fortranwrite函数将数据写入文件。
在fortranwrite 函数中,我们需要指定要写入的数据所在的列表。
请注意,列表中的数据必须与format字符串中指定的格式相匹配。
以下是一个使用fortranwrite函数将数据写入文件的示例:program maininteger :: unit_numberreal :: data(5) = [1.0, 2.0, 3.0, 4.0, 5.0]open (unit = unit_number, file = 'data.txt', status = 'unknown')write (unit_number, '(5f10.2)') dataclose (unit_number)end program main在上面的示例中,我们首先声明了一个整数变量unit_number和一个包含5个实数值的数组data。
Sun Microsystems, Inc.有关本文档的建议请发到:/hwdocs/feedback Fortran 用户指南Sun™ Studio 8部件号码 817-5802-10 2004 年 4 月,修订 A版权所有© 2004 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. 保留所有权利。
美国政府权利―商业软件。
政府用户在使用时应遵循 Sun Microsystems, Inc. 的标准许可协议和 FAR 及其补充中的适用规定。
使用本软件应遵守许可证条款。
此次分发可能包含由第三方开发的内容。
该产品的部分内容可能出自 Berkeley BSD 系统,由加州大学 (University of California) 授权。
UNIX 是在美国和其它国家(地区)的注册商标,由 X/Open Company, Ltd. 独家授权。
Sun、Sun Microsystems、Sun 徽标、Java、JavaHelp 是 Sun Microsystems, Inc. 在美国和其它国家(地区)的商标或注册商标。
所有的 SPARC 商标均需获得授权才能使用,它们是 SPARC International, Inc. 在美国和其它国家(地区)的商标或注册商标。
标有 SPARC 商标的产品都基于由Sun Microsystems, Inc. 开发的体系结构。
该产品为美国的出口控制法所涵该和控制,并有可能要遵守其它国家(地区)的出口或进口法规。
严禁将产品用于核、导弹、生化武器或核海事等最终目的或交给有此类企图的最终用户,无论是直接还是间接。
严禁将产品出口或再次出口到美国禁运的国家(地区)或美国出口排除列表中的实体,包括但不限于被拒绝的人员以及专门指定的公民列表。
本文档按“原样”提供,对所有明示或默示的条件、陈述和担保,包括对适销性、特殊用途的适用性或非侵权性的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效。
fortranwrite用法-回复Fortran是一种编程语言,被广泛用于科学计算和工程应用。
它最初于20世纪50年代开发,被设计用于数值计算和科学研究领域。
Fortran以其高效的性能和可靠的数值计算功能而闻名,为科学家和工程师在数值模拟、大规模数据处理和复杂算法设计方面提供了强大的工具。
在本文中,我们将一步一步地回答关于Fortranwrite用法的问题。
首先,让我们明确一下Fortranwrite的功能。
Fortranwrite是Fortran 语言中的一个内建函数,用于将数据写入文件。
它接受数据和格式参数,并将数据写入到指定的文件中。
该函数使用简单,灵活,可以满足各种不同的要求。
要使用Fortranwrite,首先需要了解格式参数的基本语法。
格式参数是一个由字符组成的字符串,用于指定数据的格式和布局方式。
例如,"10s"表示一个字符串,宽度为10个字符。
"5d"表示一个整数,宽度为5个字符。
接下来,我们需要创建一个文件来存储要写入的数据。
在Fortran中,可以使用open语句打开一个文件,并使用unit号来指定文件。
例如,"open(unit=1, file='data.txt')"将打开名为"data.txt"的文件,并将其关联到unit号为1的文件单元。
一旦文件被打开,我们可以使用Fortranwrite来写入数据。
语法形式为"write(unit, format) data",其中unit为文件单元号,format为格式参数,data为要写入的数据。
例如,要将一个字符串写入文件中,可以使用以下代码:fortranprogram write_democharacter(10) :: my_string = "Hello"open(unit=1, file='data.txt')write(1, "(A)") my_stringclose(1)end program write_demo上述代码将字符串"Hello"写入名为"data.txt"的文件中。
6 Fortran 程序设计6-文件6 Fortran 程序设计6-文件在Fortran编程中,文件操作是非常重要的一部分。
通过文件操作,我们可以方便地读取和写入数据,对数据进行处理和分析。
本文将介绍Fortran中的文件操作相关内容。
1. 文件的概念和分类文件是计算机中用来存储数据的一种存储介质,可以是硬盘、光盘或其他存储设备。
在Fortran中,常见的文件类型包括文本文件和二进制文件。
文本文件是以文本的形式存储数据的文件,其中的数据以可打印字符的形式表示。
文本文件可以使用文本编辑器打开并查看其内容。
二进制文件以二进制形式存储数据的文件,其中的数据以二进制位表示。
二进制文件一般不能直接使用文本编辑器打开查看,需要通过特定的程序进行读取和解析。
2. 文件操作的基本过程文件操作的基本过程包括打开文件、读取或写入文件、关闭文件。
下面分别介绍这三个步骤的具体内容。
2.1 打开文件在Fortran中,可以使用`OPEN`语句打开一个文件。
打开文件时需要指定文件名、打开模式和文件单元号。
OPEN(unit=文件单元号, file=文件名, status=打开模式)其中,文件单元号是一个整数值,用来标识一个打开的文件。
文件名是一个字符串,表示要打开的文件的路径和文件名。
打开模式可以是以下几种:- `READ`:只读模式,用于从文件中读取数据。
- `WRITE`:只写模式,用于向文件中写入数据。
如果文件不存在,则创建一个新文件;如果文件已存在,则清空文件内容。
- `APPEND`:追加模式,用于向文件中写入数据。
如果文件不存在,则创建一个新文件;如果文件已存在,则在文件末尾追加写入数据。
- `READWRITE`:读写模式,既可以读取数据,也可以写入数据。
2.2 读取或写入文件在打开文件之后,可以使用`READ`和`WRITE`语句进行读取和写入操作。
读取文件时,可以使用以下语句:READ(unit=文件单元号, ) ! 读取文件中的数据写入文件时,可以使用以下语句:WRITE(unit=文件单元号, ) ! 将数据写入文件在读取或写入文件时,需要注意数据的格式。
本教程包含一下内容:Visual studio 2010如何新建c++项目 (1)Visual studio 2010如何新建FORTRAN项目 (9)Visual studio 2010如何新建c++项目打开Visual studio 2010,在起始页中选择“新建项目”选择模板时选择“Visual c++”,然后选择“win32控制台应用程序”,然后输入文件名,然后点击ok。
在弹出设置窗口中选择“next”。
在应用类型选择“Console Application(控制台应用)”,附加选项选择“Empty Project(空项目)”【务必选择空项目】。
在连接项目窗口中点击右上角的关闭。
将鼠标移动到显示窗口左边,会浮动出来“Solution Explore(解决方案浏览)”标签【程序默认是浮动的,鼠标放在上方便会自动显示出来,移走的话会自动收起】,在项目文件名上(或者“Source File”上)右击鼠标,在弹出窗口里将鼠标放在“Add(新建)”上方,在下一级菜单选择“New Item(新建项)”点击它。
然后可以看到新建项窗口,在新建类型里选择“c++ file(.cpp)”,并输入文件名,完了点击“Add”确定。
在窗口中输入程序代码就可以运行了,按F5即可运行。
注意,运行时如果需要显示运行结果的话,需要按下Ctrl+F5【只按F5的话只能看到dos窗口一闪而过】。
运行成功的话,下面的输出窗口会显示“Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped”。
另外,需要设置界面外观的话(白色的底纹看久了眼花,特别是在亮度较高的时候……)可以在菜单栏选择“Tools”菜单下的“Options(选项)”并点击它。
比如设置字体和颜色,选择“Environment”下的“Fonts and Colors”。
另外,默认情况下,输出命令窗口位于显示器左侧,经常会位于我们的程序语句的上方,影响我们方便地查看程序。
fortranwrite用法一、Fortranwrite简介Fortranwrite是一种用于文件读写的Fortran语言的函数或子程序。
它可以实现将数据写入文件或者从文件中读取数据的功能,是Fortran语言中非常常用的工具之一。
Fortranwrite函数的用法灵活多样,可以根据不同的需求选择合适的方式进行数据写入。
下面将介绍Fortranwrite的用法及相关注意事项。
二、Fortranwrite的基本用法Fortranwrite函数的基本用法如下:```CALL Fortranwrite(Unit, Data, Numbytes)```其中,Unit是文件的编号,Data是待写入的数据,Numbytes是待写入数据的字节数。
三、Fortranwrite的参数类型1. Unit参数类型Unit参数是Fortranwrite函数中用来指定文件编号的参数。
在写入文件前,需要先打开文件,并获得一个文件编号。
文件编号是一个整型数值,它可以是任意非零正整数,表示文件的唯一标识符。
一般情况下,可以使用以下代码获得一个文件编号:```OPEN(Unit=Unit, File=FileName, Status=Status, Action=Action)其中,FileName是文件名,Status是文件打开状态(如"OLD"表示打开已存在的文件,"NEW"表示创建新文件),Action是文件打开方式(如"READ"表示只读,"WRITE"表示只写,"APPEND"表示在文件末尾追加写入)。
2. Data参数类型Data参数是Fortranwrite函数中用来指定待写入数据的参数。
Data的类型可以是Fortran中的任意数据类型,例如整型、实型、字符型等。
3. Numbytes参数类型Numbytes参数是Fortranwrite函数中用来指定待写入数据的字节数的参数。
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。
Fortran输入输出格式控制Open, Read and Write in Fortran1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。
以上等价,6是默认输出位置,即屏幕。
2:print*,"string"。
Print只能对屏幕输出。
3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。
以上等价。
real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。
以上等价。
4:f77,变量名长度1~6;f90,变量名长度1~31。
5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。
以上等价,5是默认输入位置,即键盘。
6:FORMAT(http://202.118.74.226/fortran/pages/730.htm)6.1 格式输出格式输出语句由两部分组成:输出语句和输出格式语句。
输出语句的一般形式为:WRITE(*,L) 输出表列或:PRINT L 输出表列其中:* 代表隐含的输出设备,L 指输出格式语句的标号。
输出格式语句的一般形式:L FORMAT(1X,S)其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。
FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。
FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。
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语句相同。
文件的定位在处理大型文件时,有时候需要跳过一部分数据或者回到文件的开头位置。
1.建立新的运行空间
File>new>workspace>new>prject>console application>new>file>free-form
2.建立多个文件
可以把子程序文件和主程序文件放在同一个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语句时,文件指针指向第一个记录,从第一个记录开始读取。
3.使用read语句读取时,如果输入表要求输入的数据少于当前记录的数据个数,则多余的
数据将被忽略,下一个read语句从下一个新的记录开始读取数据。
相反则继续读取下条数据记录直到读完全部输入数据。
4.使用write语句时,从当前文件指针开始存写,完成存写后文件指针自动后移一个记录,
使用OPEN和REWIND语句时,文件指针指向第一个记录,从第一个记录开始读取。
如果文件已存在,则原文件的数据将丢失。
5.使用write语句写入数据时,从当前的位置开始写入,可使用format语句中的格式说明
及括号和反斜杠/创建多条新纪录写入,完成操作后,文件指针自动后移一个记录。
6.使用了read以后,立即使用write语句,将导致写入的数据为最后一个记录,其余的数
据将丢失。
如果在文件末尾要写入新的记录可以通过下了语句实现:
100 read(1,*,end=200)
Goto 100
200 write(1,*)’’
7.使用了write语句立即使用read语句会遇到一个文件结束标志。
如果写入后要立即进行
读取,需要用OPEN、rewind、backspace等对文件重新定位。
文件打开操作:
Open(unit=设备号,file=文件名,access=存取方式,form=存取格式,recl=记录长度,err=错误转移,pad=补加空格,position=读取位置)
如err=100,表示跳到100号语句
Position 为文件位置包括三个格式,ASIS,已存在文件的上一次操作位置为文件的位置,缺
省值,REWIND指向开头,append指向末尾
Status=’old’打开已存在的文件,默认为该选项’new’在磁盘上新建文件’scratch’打开的文件为临时文件,文件关闭或程序结束时被删除’unknow’先用OLD打开,如果打开失败用NEW创建
文件关闭,close(1)
格式输入输出:
nI3,NF3.1,NE8.1,NA8分别表示整型占三个字符重复n次;浮点型共三个字符(包括小数点),小数点后为一位,重复n次;科学型,占8个字符包括E和小数点,小数点后为一位。
字符串的输出。
NX表示从当前位置空N个字符空格
如下(2X,I3,3X,I4)表示空两格读取一个整型3位的数,然后空三格读取整型为4的数。
/用于输入输出中本行结束从下一行输入或输出,斜杠控制符前可以有逗号也可以没逗号。
\表示下一语句的输出从本行的末输出
Read *,print *,*号可用数字代替,如print 8,表示按照8号语句的格式输出。