




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fortran程序设计基础 金鑫2010 8 6 Contents Fortran语言简介作为一门诞生于上个世纪50年代后半期的高级计算机语言 Fortran在这个C C Java等新兴语言大行其道的时代仍然活跃在人们的视野之中 Fortran语言的长项在于数值计算 在科学研究和工程设计领域有着广泛的用途 在描述数学语言的自然性方面 Fortran同现存的其他高级语言相比有着明显的优势 对于科研工作者和工程技术人员而言 Fortran语言的易学性和易用性是公认的 Fortran语言基础知识 1954 IBM在IBM704上发展1957 IBM发表 Fortran FormulaTranslator1966 AmericanStandardsAssociation制定Fortran66鉴于各家编译器无法相容 故统一标准AmericanStandardsAssociation 美国国家标准局 ANSI 的前身1978 ANSI公布Fortran77标准删去部分内容 新增逻辑与输入输出方面的功能1992 国际标准组织ISO公布Fortran90标准与77版本差异较大加入物件导向 提供指针与加強阵列功能 自由格式写作1997 国际标准组织ISO公布Fortran95标准加强并行运算Fortran200 x Fortran发展历史 CompaqVisualFortran6 5 Fortran编译器 CompaqVisualFortran 固定格式 Fortran77 后缀 f for 自由格式 Fortran90 后缀 f90 Fortran语言的书写格式 在Fortran语言中 有五种基本的数据类型可供使用 他们分别是整型 INTEGER 实型 REAL 复型 COMPLEX 字符型 CHARACTER 和逻辑型 LOGICAL 对我们来说常用的数据类型为整型 实型 字符型各数据分类分别包括常量及变量 数据类型及I 0格式 变量名的作用是识别程序中的变量 Fortran中的变量名命名有一定的规则 主要有以下几条 变量名中只能包含26个英文字母和0 9十个数字 在Fortran90 95标准中 还允许使用下划线 变量名的第一个字符必须是字母 不能是下划线 或数字 在Fortran77标准中 变量名不允许超过6个字符 在Fortran90 95标准中 变量名不允许超过31个字符 数据类型及I 0格式 变量的定义及类型说明 1 类型说明语句integeryear month dayrealrunoffcharacter 10station 2 隐含约定I N规则 数据类型及I 0格式 输入 输出语句READ 设备号 格式说明或格式说明语句标号 变量列表 WRITE 设备号 格式说明或格式说明语句标号 变量列表 READ WRITE语句中当设备号为星号 时 表示从默认的设备输入输出 格式说明为星号 表示表控格式输入 输出 输入 输出项可以有多个 每个输出项之间用逗号 分隔 当语句中没有输出项时 命令将输出一个空白行 表控格式输入 输出格式输入 输出 数据类型及I 0格式 格式输入输出控制符常用控制符i f a写法 nIw nfw d naw如 integeryear month daywrite 3i8 year month day又如 realrunoffwrite f9 2 runoff 数据类型及I 0格式 格式说明语句format写法 FORMAT format list 如 integeryear month daywrite 15 year month day15format 3i8 数据类型及I 0格式 Fortran三种常用运算算数运算 算数运算符及算数表达式关系运算 关系运算符及关系表达式逻辑运算 逻辑运算符及逻辑表达式其中 算数运算是Fortran的基本运算 其基本运算符包括 Fortran语法结构 Fortran语法结构 关系运算在实际的数学或工程问题中 经常会遇到比较两个数据谁大谁小的问题 这就是一个关系比较的问题 在Fortran中 提供了进行这类操作的运算符和表达式规则 关系运算符也可以称作关系比较符 它是一个双目运算符 Fortran中定义了六个基本的关系运算符 Fortran语法结构 关系表达式是最简单的一种逻辑表达式 它的一般形式为 关系运算量可以是算术量 也可以是字符量 算术量可以是数值型常量 数值型变量 数值函数 还可以是算术表达式 如 A B 3 5等价于A B GT 3 540 40等价于40 GE 4040 C等价于40 LT CCOS B 0 5等价于COS B LE 0 5 M N X 0 0等价于 M N X EQ 0 0X Z NE Y X 等价于X Z NE Y X 关系运算符等级低于算数运算符 Fortran语法结构 逻辑运算Fortran语言中提供了5种逻辑运算符供程序员在编程时使用 新旧Fortran标准中的逻辑运算符没有任何区别 每个运算符的左右两侧都有一点 书写时不可以省略 逻辑运算符中有的是双目运算符 有的是单目运算符 使用中需要注意 Fortran语法结构 逻辑表达式的一般形式为 同关系表达式不同 一个逻辑表达式中可以包括多个逻辑运算符 例如逻辑表达式 A GE 10 0 AND A C GT B D OR NOT TRUE 中包含了 AND OR NOT 三个逻辑运算符 在逻辑表达式中除了有逻辑运算符外 还可以有关系运算符和算术运算符 下面是一些逻辑表达式的例子 A GT B AND A NE C 等价于 A B AND A C X LT 1 0 OR X GT 1 0 等价于 X1 0 NOT A C D LE 0 0 等价于 NOT A C DB EQV C D Fortran语法结构 在上面的一系列例子中 有的逻辑表达式中既有逻辑运算符 又有关系运算符和算术运算符 对于这种混合了多种运算符的表达式 Fortran语言规定了不同运算符的运算顺序 首先计算算术表达式的值 例如前面一个范例中的A C和B D 接下来再求关系表达式的值 例如前面一个范例中的A LE 10 0和A C GT B D 最后进行逻辑运算 各个逻辑运算符的先后顺序是 NOT AND OR EQV NEQV 如果逻辑表达式中有括号 则先进行括号内的运算 程序流程控制的常用语句结构判断If语句goto语句块if结构do循环结构常用结构选择结构循环结构 Fortran程序流程控制 If语句IF 逻辑表达式 执行语句块If结构IF 逻辑表达式1 THENTHEN块ELSEIF 逻辑表达式2 THENELSEIF块 ELSEELSE块ENDIF Fortran程序流程控制 goto语句goto语句标号do循环语句DO循环变量 循环初值 循环终值 循环增量 循环体ENDDO当循环增量为1时 可省略 Fortran程序流程控制 选择结构设计块IF语句多层嵌套块IF语句循环结构设计 当 型循环 直到 型循环其他程序控制语句EndPausestop Fortran程序流程控制 实例分析 1 1 100求和 2 输入5个数 按大小排序 Fortran程序流程控制 数组是Fortran语言中功能最为强大 运用最为灵活的一种数据结构 在存储结构上 数组占用一片连续的存储单元 程序中通过数组索引来对数组元素 片断进行操作 数组的基本操作数组的定义数组的引用数组的赋值数组的计算数组的输入输出 数组操作 数组的定义类型说明 数组名 下标下界 下标上界 如realrunoff 365 realrunoff 12 31 realrunoff 1 12 1 31 数组下标下界缺省时 值为1数组可用DIMENSION语句定义DIMENSIONrunoff 365 Realrunoff 使用数组必须先定义 数组操作 数组引用 1 引用数组元素数组名 下标 如runoff 15 rain 3 5 2 引用全部数组数组名 如 realB 10 A 10 B A 3 引用数组片段数组名 下标范围 数组操作 PROGRAMTESTIMPLICITNONE 变量定义REAL A1 A2 A3 A4 A5 B 5 5 READ A1 A2 A3 A4 A5 数组片断的引用B 1 1 5 A1B 2 1 5 A2B 3 1 5 A3B 4 1 5 A4B 5 1 5 A5ENDPROGRAMTEST 数组操作 数组赋值 1 赋值语句数组对象 value 2 data语句 赋初始值 datadays 31 28 31 30 31 30 31 31 30 31 30 31 3 do循环doi 1 12doj 1 31runoff i j 0enddoenddo 数组操作 数组的运算包括数组之间的运算及数组元素之间的运算数组的运算 如数组间的数学运算 数组的合并 转置运算等 直接以数组为操作对象 数组元素之间的运算多通过循环语句进行 数组操作 数组的输入输出数组的输入输出多通过do循环语句或隐式do循环语句进行如doi 1 12doj 1 days i write runoff i j enddoenddo又可写成doi 1 12write runoff i j j 1 days i enddo 数组操作 一个Fortran程序中通常不是只由一个主程序组成 而是由几个按某种方式划分的不同程序单元来共同组成 尽管Fortran程序中允许只有主程序而没有子程序 但绝不允许只有子程序而没有主程序 在Fortran中 程序的执行总是从主程序开始的 程序可以有一个或多个子程序 函数子程序 FUNCTION 子例行子程序 SUBRIOUTINE 各子程序间的数据传递 子程序及模块化 子程序及模块化 函数子程序和子例行子程序是子程序的两种常用基本形式 它们的共同特征就是作为数据处理过程的集合 但是这两种子程序也不完全相同 函数子程序会返回一个函数值 且通常不会改变哑元的数值 因此 函数子程序更像是数学上的一个函数 而子例行子程序通常用于完成一项更为复杂的任务 通过哑元或者其他手段返回几个结果 哑元的数值通常会在程序的执行过程中改变 子程序及模块化 函数子程序的一般形式为 prefix FUNCTIONname d arg list RESULT r name END FUNCTIONname 1 prefix说明项prefix说明项是一个可选参数 可以使用如下两种形式来书写 type keyword 或keyword type 2 d arg listd arg list表示函数的哑元列表 如果函数子程序不包含哑元 则哑元列表可以省略 但是函数名后的括号不能省略 3 RESULT关键字RESULT关键字用于声明将函数的返回值保存在其后的变量名中 称为函数结果名 子程序及模块化 函数子程序的调用与内在函数的调用形式一样 在主调程序的任意位置 可以通过下面的语句形式将函数子程序的计算结果赋值给变量 V 函数名 实元表 其中 V表示用于接收函数计算结果的变量 实元表是程序中实际传入函数子程序的变量列表 除非有特殊说明 变量列表中的实元个数以及类型必须与函数子程序定义时的虚参在个数和类型上一致 如果函数不包含哑元 则调用形式是在表达式中直接写上函数名再跟空括号即可 V 函数名 子程序及模块化 子例行子程序同函数子程序非常相似 但是子例行子程序不会有返回值 这种形式的子程序是以SUBROURTINE语句开始 END语句结束的过程 其一般语法形式如下 前缀 SUBROUTINE子程序名 哑元列表 END SUBROUTINE 子程序名 程序调用call子程序名 各子程序间的数据传递 1 虚实结合 2 common语句 3 数据定义模块Common语句 公共区语句 一般形式Common 公共区名称 变量表 子程序及模块化 在前面的说明中 大部分的程序在运行时 总是从键盘上输入数据 程序的输出也几乎总是显示在计算屏幕上 对于一些小程序 输入的数据不多 数据结构也不复杂 采用这种方式是可行的 但是 对于一些大型的应用程序 如WEP模型等 涉及到几百兆甚至上G的数据输入与输出 在这种情况下 如果仍然采用终端输入输出的方式就很难想象了 另一方面 使用终端输入输出方式时 程序在运行中可以通过屏幕查看到输出的结果 一旦退出程序 此时要想再次查看输出的结果就很困难了 除非再次运行程序 使用文件就可以避免上述问题 同时文件还能避免重复处理 保存起来也很方便 文件操作及批处理 文件操作及批处理 在Fortran语言中 OPEN语句将设备描述符和具体的外部或内部文件连接起来 可用于建立一个新文件并使其与一个设备描述符相连 或者改变某一个连接的属性 OPEN语句有着丰富的参数选项 能够对文件的各种性质进行指定 是Fortran语言中最为复杂的一种语句 熟悉和掌握OPEN语句中各个参数项的意义和作用 是进行文件操作的基础 OPEN语句的一般形式如下 OPEN UNIT io unit FILE name ERR label IOSTAT i var slist 语句中括号内的部分就是OPEN语句的参数项 也称为说明项 包括设备号说明符 文件名说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省渭南市韩城市2022-2023学年九年级上学期期中化学试题(含答案)
- 电票相关知识培训内容课件
- 电瓶报警知识培训内容课件
- 高空作业安全知识培训课件教程
- 北京商务楼宇考试题目及答案
- Trimethylamine-N-oxide-Standard-生命科学试剂-MCE
- Tiglyl-Glycine-13C2-15N-生命科学试剂-MCE
- 职业素养考试题及答案
- 幼师舞蹈考试题及答案
- 雅安中考试题及答案
- 工程挂靠免责协议书
- 风电并购协议书
- 企业微信在电脑上使用课件功能
- 2025-2030年中国天然冰片行业市场现状分析及竞争格局与投资发展研究报告
- 成考学位日语试题及答案
- (重庆康德三诊)2025年重庆市高三第三次联合诊断检测生物试卷(含答案解析)
- 2024年重庆机场集团有限公司招聘笔试真题
- 健康体检信息系统软件需求规格说明书
- 微生物组与卵巢癌关联-全面剖析
- 机油商店转让协议书
- 数据结构应用试卷汇编
评论
0/150
提交评论