- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第二章 Fortran90编程简介
结构程序设计与应用 教材:《程序结构力学》袁驷主编 第二章 Fortran90 编程简介 §2-1 Fortran90的新特性 §2-2 Fortran90的子集语言 §2-3 常用语言特性介绍 §2-4 编程风格与约定 §2-1 Fortran 90的新特性 从FORTRAN77到Fortran90具有突破性的发展, 极富现代语言特性和功能,从如下几点表示: 1.数组运算 2.数值精度 3.数据种别参数化 4.派生类型 5.模块 6.指针 7.语言进化 1.数值运算 F90中允许对整个数组进行赋值和计算,例如一 维数组A=0.0,将对A中每一个元素赋零,顺序可以任 意。 F90也可以允许数组片断运算,例如 A(6:10)=A(1:5) 几乎所有与数值计算有关的固有函数都可以使 用数组做为变元。 数组运算的突出优点: 程序代码简单、与公式表达接近、便于代码优 化、有利于并行计算。 2.数值精度 数值精度的设置 数值精度的查询 便于移植 3.数据种别参数化 种别参数(kind) 解释 可包含多国文字以及化学、音乐等特殊符号的可能性 4.派生类型 F90允许程序员用固有的数据类型派生出用户 定义的数据类型,简称为派生类型。 5.模块 包含数据声明、派生类型的定义、过程定义 利于全局数据的定义、建立子程序库及数据和 过程的封装等。 6.指针 可用于创建动态数组、链表、树、图等数据 结构 比C中的指针安全,不指向内存地址 7.语言进化 淘汰了过时的特性 本书采用了ELF90语言编译器 §2-2 Fortran90的子集语言 2-2-1两个子集语言:ELF90和F ELF90的编译器是v4.0,而且是Windows环境下 的版本,而F是有多个平台的版本。 两者的部分区别: 1.F比ELF90有更多的强迫限制和更严格的语法。 2.如:F的关键词都用小写,而ELF90用大小写均可; 对于数组的声明,F要求将dimonsion属性放在分隔符 左边: integer,dimension(20) ::a integer,dimension(10,50) ::b integer ::c 而ELF90可以采用上面的形式,也可用更简短方便的形式: integer :: a(20),b(10,50),c 这种形式的优点是允许在一行语句中声明多个不同维数、不 同长度的数组,甚至还有简单变量;代码输入也较简单。 2-2-2 ELF90子集语言 子集语言提出的好处:为了减少语法条目,使 语言集合变小,便于学习和掌握,更是为了倡导一 种先进的、优良的编程风格。 考察一下自己语言对全集语言的取舍,可以体 会到哪些是语言特性是倡导的,哪些是不倡导的, ELF90子集语言也有其取舍。 ELF90要求用户“必须用”的语言特性: F90的自由格式的源代码。 必须要用implicit none。 强迫对所有变量显式声明。 所有子过程的哑元都要求有intent属性。 若为intent(in out),则必须对哑元引用而且赋 值,否则只能是intent(in)或intent(out)。 函数子程序的哑元必须指定为intent(in)。 所有过程都要求有显式的接口块。 主程序要求有program语句。 若一个语句带有标号,则该语句标号必须被引用。 对于recursive function(递归函数)语句,必须有 result子句。 在所有派生类型(type)定义的语句中,必须用双冒号分隔符(::)。 在程序单元的end语句中要求后跟程序单元的类型和名称。 在end type 语句中要求后跟类型的名称。 对于顺序文件,open语句中必须包含position项。 case default语句必须置于case分支的最后。 End program前必须有stop语句以表示停止执行。 子过程中必须有return语句,以表示返回。 数组哑元要求是假定形状的,或者有固定的维数和大小。字符哑元要求是假定长度的。 subroutine s( )并且call s(),即必须有括号。 ELF90要求用户“不得用”的语言特性: allocatable、intent、pointer、save、dimension parameter和target语句形式。 在类型声明语句中用相应的属性形式代替
文档评论(0)