- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Module module 中可以定义若干变量、若干函数 这些变量和函数在module内部可以自由地互相使用。 (但函数内的局部变量不行) 所有 use 了这个 module 的程序单元,可以自由使用 public 的变量和函数、只读的使用 protected 的变量 private 的变量和函数,仅供 module 内部使用 Module module 还可以被继承,即 modA 可以 use modB,从而获得 modB 向外提供的所有公共变量和子程序。 Module monitorsys use smartHome Module monitorsys use smartHome, only : tv , pc Module monitorsys use smartHome, only : screen = tv , b only 可以避免命名冲突,加快编译速度,但并不能节约内存 m_1 m_2 Module 在较大的程序中,module 的继承会形成类似树形的模块树 一个模块可以 use 多个模块 也可以被多个模块 use 但要防止出现 环状依赖 module 会降低 程序编译效率 1 Interface 2 Module 3 特殊用法 目 录 特殊用法 统一接口: 利用统一接口可以把多个子程序捆绑成一个名字,由编译器根据实参的情况,决定到底调用哪一个 Generic name Specific Name 1 Specific Name 2 Specific Name 3 ... 特殊用法 例子: C 语言中有三元操作符: ( ab ? 1 : 0 ) 而 Fortran 中没有~ Allocate( S(Is_Int(db,n,2*n)) ) if ( db ) then Allocate( s(n) ) else Allocate( s(2*n) ) end if 特殊用法 例子: 然而,这只适合于 Integer 类型,对于其他数据类型,就需要重写。 ret = Is_RR( x 3.0d0 , 999.d0 , x ) 特殊用法 例子: 对于此,我们就可以书写一个统一接口 Allocate( S(Is(db,n,2*n)) ) ret = Is( x3.0d0 , 999.d0 , x ) write(*,*) Is( x59.99d0 , 及格 , 挂科 ) Is_Int Is_RR Is_Char 特殊用法 实际上,我们的语法中大多数数学函数,都利用了统一接口: y = sin( x ) sin dsin qsin csin cdsin cqsin 在使用这些函数时候,能用 Generic 就不要用 Specific 他们绝大多数还是逐元函数,即实参可以是认为维度的数组 特殊用法 自定义操作符: 特殊用法 重复的话: 在函数和子例行程序、以及Module的这两个课程中。我们介绍了很多例子 看起来,这些例子似乎书写起来都比较麻烦。完全不如用经典的写法方便。 但是,我希望大家注意到。这些例子的“主程序”都非常的简单!且更符合人类的习惯。 使用子程序和Module的目标是:为调用者服务! Allocate( S(Is(db,n,2*n)) ) ret = Is( x3.0d0 , 999.d0 , x ) write(*,*) Is( x59.99d0 , 及格 , 挂科 ) 感谢收看! Fortran Coder Group 还有疑问?请联系我们 下一讲:语法之文件读写 敬请关注 期待 Fortran 实用编程 Fortran Coder 研讨团队 系列视频教程 关于 Fortran Coder Fortran Coder 始于2006年,是一个以科学计算编程为主题的非盈利性研讨团体。大多数由各行业高等学府学生,研究人员及生产一线的工作人员组成。 研讨内容涉及:Fortran77/90/95/2003/2008语法规范,各平台32位及64位编译器,IMSL,MKL,Lapack 等数学函数库,MPI,OpenMP,Coarray 并行及高性能计算,winteracter / DisLin / Matfor / GTKFortran 等绘图及界面库。 关于本套视频 本套视频以解决实际问题为主要目的,旨在为您解答课本上较少涉及到的实际问题。通过本套视频,您会更容易了解: 如何查找错误?如何解决错误? 如何学习 Fortran2003 和 Fortran2008 语法? 如何用最通俗易懂的写法解决实际问题? 如何看懂别人的优秀代码并为自己所用?如何让自己的代码更优美、更普适? 本套视频由 Fortran Coder
文档评论(0)