fortran新建,添加外部文件和简要读写格式说明
FORTRAN简明教程
《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是小数位数,引号‘’内的内容原样输出,斜线‘\’表示输入/出时换行。
Fortran6.5 使用流程
简单说明一次编译程序的过程: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程序设计文件
♦ 物理设备与逻辑设备 ♦ 文件的概念 ♦ 外部文件分类 ♦ 文件基本操作(OPEN,WRITE/READ...) ♦ 文件记录的存取
Fortran程序设计文件
• 程序离不开数据,有效组织数据输入是设计和编 写程序的基本要求。
• 从键盘输入数据和向屏幕输出数据,适用于数据 量比较小的情况,不能与其它软件或程序交换数 据信息。
创建一个包含多个物理块的逻辑记录时,编译系统把长度值置为 129以表示当前物理块的数据和下一个物理块相连接。
Fortran程序设计文件
无格式直接文件 无格式直接文件是一系列非格式的记录,可以以任意顺 序读写记录。记录的长度都相同,由OPEN语句中的 RECL=选项 指定。没有字节分隔符或其它表示记录结 构的字节
Fortran程序设计文件
பைடு நூலகம்
与编辑器有关 ,VF一般*4
Fortran程序设计文件
Fortran程序设计文件
无格式顺序文件 无格式顺序文件中记录的长度可以不同,文件以130或 少于130字节为一个物理块进行组织。每个物理块包含 着输入到文件中的数据(最多128字节),编译系统在物理 块之间加入两个1字节长的长度值以说明每个记录的起 始和结束位置。 一个逻辑记录包含一个或多个物理块,其大小可在程序 中指定,编译系统会相应地使用需要数量的物理块。当
有格式直接存取 在格式化直接文件中,所有记录的长度都相同并且可以以 任意顺序读写。记录的长度由OPEN语句中的RECL=选项 指定,该长度应该大于或等于最长的记录中的字节数。CR 和LF是分隔符,不包括在RECL中。
Fortran程序设计文件
例:把1到10和它们的平方根存放到一个直接存取文件中,然后随意 查找1到10的平方根数。
(完整版)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':指定要打开的文件名称,文件名要符合系统规定。
fortranwrite用法
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用法 -回复
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。
Fortran用户指南
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. 开发的体系结构。
该产品为美国的出口控制法所涵该和控制,并有可能要遵守其它国家(地区)的出口或进口法规。
严禁将产品用于核、导弹、生化武器或核海事等最终目的或交给有此类企图的最终用户,无论是直接还是间接。
严禁将产品出口或再次出口到美国禁运的国家(地区)或美国出口排除列表中的实体,包括但不限于被拒绝的人员以及专门指定的公民列表。
本文档按“原样”提供,对所有明示或默示的条件、陈述和担保,包括对适销性、特殊用途的适用性或非侵权性的默示保证,均不承担任何责任,除非此免责声明的适用范围在法律上无效。
Fortran教程格式输入输出
格式阐明包括3种编辑描述符X,I和F。分别用I4和F5.1来控制 2345和67.8旳输出格式,1X也有特定旳用途。 格式阐明语句能够放在程序单位语句(主程序语句 PROGRAM,子程序语句FUNCTION或SUBROUTINE)之 后,END语句之前旳任何位置。
READ(*,10)A,B
10 FORMAT(F7.2,F6.1) 语句执行时,如从键盘输入123456□726.89,则A、B旳值分 别为12345.6和726.89。
当输入旳是指数形式时,假如E前面旳数字部分具有小数 点,则d不起作用。假如数字部分不具有小数点,则自动 按d决定数字部分小数点旳位置。
n FORMAT(格式阐明)
其中n是语句标号,FORMAT语句一定带有语句标号, 以便同格式输入输出语句配合使用。格式阐明由若干个 编辑描述符构成,编辑描述符之间用逗号分隔。例如
10 FORMAT(1X,I4,F5.1)
格式阐明语句是非执行语句,它只是给输入输出语句提 供数据旳格式描述。在程序运营过程中,由输入输出语句根 据格式阐明语句提供旳数据格式描述,实现数据旳格式控制。 单独旳格式阐明语句在程序中不器任何作用。例如
2. WRITE语句
WRITE语句旳一般格式是:
WRITE(u, f) 输出项
其中u是设备号,用于指明详细使用旳输入输出设备。u能 够是一种无符号整常量,也能够是一种整型变量或整型体 现式,还能够是星号*。*表达由计算机系统预先约定旳外 部设备,一般为显示屏。
f 是格式阐明符,指明了输入输出所用旳格式。它也有 三种形式,使用方法与PRINT语句相同。
WRITE(*,10)128.433,-0.0008
fortranwrite用法 -回复
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-文件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=文件单元号, ) ! 将数据写入文件在读取或写入文件时,需要注意数据的格式。
fortran程序文件的使用
前文件指针位置向后回退一个记录位置。使用 BACKSPACE语句完成文件指针回退操作。
一般格式:
BACKSPACE{<设备号>∣ ([Unit=]< 设备号>∣ERR=<错误转移>∣IOSTAT=&端、打印机、串行口、并行口等设备。
象使用外部文件一样使用这些外部设备。每一个外部设备都有一个
一般格式:
OPEN([UNIT=]<设备号>,FILE=<文件名>[,ACCESS=<存取方式>]
[,FORM=<存储格式>][,RECL=<记录长度>][,ERR=<错误转移>] [,BLOCKSIZE=<缓冲区大小>][,CARRIAGECONTROL=<首字符含义 >] [,DELIM=<分界符>][,BLANK=<空格含义>][,ACTION=<读写方式 >]
有格式顺序文件读写操作与键盘、显示器的读写
操作类似,不同的是需要用OPEN语句打开文件,指 定设备号,在READ和WRITE语句中指定设备号,而不 是星号“*”。
PROGRAM chaper1271 INTEGER :: A(10),sum=0,ave !打开一数据文件,先用文本编辑器创建,默认是一个有格式顺序存取文件 !数据文件中有10个整数,第1行5个,第2行2个,第3行3个 !数据文件有3个记录行,每个记录行长度不同 OPEN(11,FILE='input1.dat') READ(11,*)(A(I),I=1,10) !按表控格式从数据文件中输入10个数 !READ(11,*) A(1),A(2),A(3),A(4),A(5) !可用3个READ语句分3个行输入 !READ(11,*) A(6),A(7) !READ(11,*) A(8),A(9),A(10) CLOSE(11) DO I=1,10 sum=sum+A(I) ENDDO ave=sum/10 !打开一个最大记录长度为25的有格式顺序存取文件 OPEN(12,FILE='input2.dat',RECL=25) WRITE(12,"('10个数之和为:',I5)") sum !输出一个记录行,记录长度为19 WRITE(12,“(„10个数平均值为:',I5)") ave !输出一记录行,记录长度为21 WRITE(*,*) '程序运行正常结束。' END
在visual_studio_2010中新建FORTRAN程序(完全图解教程)
本教程包含一下内容: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简介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读文件教学课件
openif: If(status == 0) then
! open was OK. Read values
readloop: do
read(3, *, iostat = status) value
if(status /= 0) Exit
nvals = nvals + 1
write(*, 20) nvals, value
開啟檔案
開啟檔案的設定參數
設定參數說明
a) unit = int_expr
開啟一個檔案時要給定這個檔案一個讀取的編號,以後使用 write, read時使用這個編號就可以對這個檔案來讀寫了 int_expr = 數字 → 最好避開1, 2, 5, 6
2, 6是指內定的輸出位置,也就是螢幕 1, 5則是指內定的輸入位置,也就是鍵盤
8-1 The open statement
範例
a) opening a file for input
<error open (unit = 8, file = ‘a.dat', status = 'OLD', action = 'read', iostat = ierror)
8-1 The open statement
設定參數說明
f) access = char_expr
‘sequential’, ‘direct’設定讀取檔案的方式 char_expr = ‘sequential’ →讀取檔案的動作會以“循序”的方
法 來做讀取
‘direct’ →讀取檔案的動作可以任意指定位置
20 format(1x, 'Line', I6, ': Value = ', F10.4)
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。
Fortran写入文件
Fortran写 入 文 件
open(100,file='results.d',status='replace',position='append') write(100,'(<nx+1>(2x,I5.3))') chi write(100,'(<ny>(2x,f25.15))') delta close(100)
Format: I5.3 : 5个字符宽度输出整数,最少3个数字 F25.15: 25个字符宽度输出整数,最少输出15个数字
Position: asis: 打开时的读取位置,不特别指定,通常为文件开头,这是默认值 rewind: 打开时的读取位置在文件开头 end: 打开时的读取位置在文件结尾
Status: 'new': 原来不存在 ‘old’ : 原来存在 ‘replace’: 若存在,则替换原文件,若不存在,创建新文件 ‘scratch’: 打开暂存盘,不需要名字,file可省略。暂存盘会在程序结束后自动删除。 ‘unknown’: 根据编译器决定,通常同replace。默认为unknow
Fortran输入输出格式控制
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-文件简版修正
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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号语句的格式输出。