FORTRAN模块与面向对象.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章内容 13.1 模块的定义 13.2 模块的基本组成 13.3 模块中的USE 13.4 模块中的重载性应用 13.5 模块的继承性应用 本章小结 【例13-10】利用操作符重载,实现乘方运算 这个程序主要是用来展示操作符的重载使用方法,程序的第31行把m和n拿来做乘方运算,由于这两个变量是派生数据类型,本来是没有办法做乘方运算的。但是,由于在MODULE POWERTYPE中定义了一个特别的INTERFACE,它把乘方“**”符号也拿来作为虚拟函数的名称。 因此,在主程序中出现乘方运算时,如果做运算的两个变量都TYPE(POWER)类型,程序会自动转换成调用函数MULTI来执行。 注意:如果要进行操作符的重载,INTERFACE后面必须紧跟着OPERATOR关键字,在其后用括号()把操作符号包起来。 在一般情况下,赋值号“=”只允许两边类型相同才能进行赋值操作,因此没有必要重载“=”符号。但是,在一些特殊情况下,必须要重载赋值符号,所以,FORTRAN 90中允许通过重载赋值符号“=”,来完成这些特殊情况下的操作。 看例13-11,把输入的实数时间转换成相应的小时和分钟,然后输出。例如,输入为1.5,输出为1小时30分钟。 这个程序比较简单,只是根据输入的实数,最终输出小时和分钟。通过这个程序,我们看到,可以根据需要重载赋值符号,以便实现不同数据类型之间的赋值操作。 继承是面向对象的另一个重要特征,在FORTRAN 90/95中,可以通过继承MODULE来增强新的功能。 采取类似C+ + 类的组合方式,将某个派生数据类型的对象作为另一个派生数据类型的一个数据成员,从而将隶属关系转变为包含关系。 NANJING UNIVERSITY OF INFORMATION SICENCE TECHNOLOGY 第十三章 FORTRAN模块与面向对象 * FORTRAN语言程序设计 NANJING UNIVERSITY OF INFORMATION SICENCE TECHNOLOGY 第十三章 FORTRAN模块与面向对象 * FORTRAN语言程序设计 第十三章 FORTRAN模块与面向对象 模块的定义 模块的基本组成 模块的使用 模块的应用(重载性应用、继承性应用) 模块的一般定义格式: MODULE 模块名 模块说明语句 CONTAINS 模块子程序1 模块子程序2 END MODULE 模块名 说明: (1)在模块的说明语句部分,可以声明常量(使用PARAMETER语句)、变量、数组、派生数据类型(TYPE 语句)、模块函数名、模块子程序名。这些被声明的对象可在本模块内使用,对于具有共有属性的对象也可在模块外其他程序单元使用。 (2)在模块中可包含CONTAINS结构,允许定义模块函数和模块子例行程序,这些程序可在模块内调用,对于具有公共属性的模块子程序也可在模块外其他程序单元使用。 (3)在模块中可只有数据声明,或者只有子程序定义,或者两者都有。 举例:MODULE DATA_MODULE REAL, SAVE ::St_RainFall=50 END MODULE DATA_MODULE PROGRAM ex13_01 USE DATA_MODULE IMPLICIT NONE REAL RainFall PRINT *, “输入过去3小时的降水总量(毫米): READ*, RainFall IF(RainFall=St_RainFall) then PRINT*,请立即发出橙色预警信号,注意防涝! ELSE PRINT*,请注意观察! END IF;END 说明: DATA_MODULE为模块的名称,主程序通过引用(USE)模块,来使用模块当中的数据和过程。注意:USE语句须位于IMPLICIT NONE语句之前;模块和主程序可以放在不同的源文件中,若模块和主程序放于同一个文件中,模块应位于主程序的前面。 模

文档评论(0)

sis_lxf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档