欢迎来到天天文库
浏览记录
ID:59014451
大小:1.33 MB
页数:43页
时间:2020-09-26
《第二章 Fortran90编程简介ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、结构程序设计与应用教材:《程序结构力学》袁驷主编§2-1Fortran90的新特性§2-2Fortran90的子集语言§2-3常用语言特性介绍§2-4编程风格与约定第二章Fortran90编程简介对这种语言的介绍:1.应用领域2.一般特性3.与低版本Fortran77的区别4.本教材选用的语言§2-1Fortran90的新特性从FORTRAN77到Fortran90具有突破性的发展,极富现代语言特性和功能,从如下几点表示:1.数组运算2.数值精度3.数据种别参数化4.派生类型5.模块6.指针7.语言进化1.数值
2、运算F90中允许对整个数组进行赋值和计算,例如一维数组A=0.0,将对A中每一个元素赋零,顺序可以任意。F90也可以允许数组片断运算,例如A(6:10)=A(1:5)几乎所有与数值计算有关的固有函数都可以使用数组做为变元。数组运算的突出优点:程序代码简单、与公式表达接近、便于代码优化、有利于并行计算。2.数值精度数值精度的设置数值精度的查询便于移植3.数据种别参数化种别参数(kind)解释可包含多国文字以及化学、音乐等特殊符号的可能性4.派生类型F90允许程序员用固有的数据类型派生出用户定义的数据类型,简称为派
3、生类型。5.模块包含数据声明、派生类型的定义、过程定义利于全局数据的定义、建立子程序库及数据和过程的封装等。6.指针可用于创建动态数组、链表、树、图等数据结构比C中的指针安全,不指向内存地址7.语言进化淘汰了过时的特性本书采用了ELF90语言编译器§2-2Fortran90的子集语言1.F90增加了很多语言特性和功能,这就使得F77的特性变得冗余和过时;2.另一方面,为了保持和F77的兼容性,而没有删掉F这些特性,这就导致了F90的语言集合的强大,使用不方便。3.为了克服这种现状,提取出了F90的精致子集语言。
4、举例:ANSYS2-2-1两个子集语言:ELF90和FELF90的编译器是v4.0,而且是Windows环境下的版本,而F是有多个平台的版本。两者的共同之处:确保是F90的真子集语言,用它们写出的代码用任何F90全集语言编译器都可以顺利地编译运行;去除冗余特性和重复功能,保留精华;强迫程序员采用更严格的、更规则的编程风格;不考虑与F77的兼容性两者的部分区别:1.F比ELF90有更多的强迫限制和更严格的语法。2.如:F的关键词都用小写,而ELF90用大小写均可;对于数组的声明,F要求将dimonsion属性放在
5、分隔符左边:integer,dimension(20)::ainteger,dimension(10,50)::binteger::c而ELF90可以采用上面的形式,也可用更简短方便的形式:integer::a(20),b(10,50),c这种形式的优点是允许在一行语句中声明多个不同维数、不同长度的数组,甚至还有简单变量;代码输入也较简单。子集语言提出的好处:为了减少语法条目,使语言集合变小,便于学习和掌握,更是为了倡导一种先进的、优良的编程风格。考察一下自己语言对全集语言的取舍,可以体会到哪些是语言特性是倡导
6、的,哪些是不倡导的,ELF90子集语言也有其取舍。2-2-2ELF90子集语言ELF90要求用户“必须用”的语言特性:F90的自由格式的源代码。必须要用implicitnone。强迫对所有变量显式声明。所有子过程的哑元都要求有intent属性。若为intent(inout),则必须对哑元引用而且赋值,否则只能是intent(in)或intent(out)。函数子程序的哑元必须指定为intent(in)。所有过程都要求有显式的接口块。主程序要求有program语句。若一个语句带有标号,则该语句标号必须被引用。对于
7、recursivefunction(递归函数)语句,必须有result子句。在所有派生类型(type)定义的语句中,必须用双冒号分隔符(::)。在程序单元的end语句中要求后跟程序单元的类型和名称。在endtype语句中要求后跟类型的名称。对于顺序文件,open语句中必须包含position项。casedefault语句必须置于case分支的最后。Endprogram前必须有stop语句以表示停止执行。子过程中必须有return语句,以表示返回。数组哑元要求是假定形状的,或者有固定的维数和大小。字符哑元要求是假
8、定长度的。subroutines()并且calls(),即必须有括号。ELF90要求用户“不得用”的语言特性:allocatable、intent、pointer、save、dimensionparameter和target语句形式。在类型声明语句中用相应的属性形式代替。external语句形式。用显式的接口代替。assign、赋值goto、交错return、continue、entr
此文档下载收益归作者所有