语法之Module - Fortran实用编程.PPTVIP

  • 531
  • 0
  • 约3.92千字
  • 约 32页
  • 2017-06-30 发布于天津
  • 举报
语法之Module - Fortran实用编程

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 研讨团队录制,供所有 Fortran 程序员和学习者免费自由的观看,您可随意的传播它。但请保证视频完整性。 我们将会不定期的更新本套视频,请持续关注我们的网站、QQ群! 同时,如果您对 Fortran 相关有自己的见解,并愿意通过录制视频的方式与其他人分享,请联系我们! 上节要点回顾 编程中的函数是数学中函数概念的扩展和引申 函数和子例行程序仅仅是有无返回值的区别 函数具有“隔离性”,局部变量具有“临时性” 虚参和实参通过结合,在程序单元间传递数据 传递数组时,除了地址,Fortran传递了更多的信息。 推荐的方式是假定形状 a( : , : ) Fortran的函数有很多特殊的用法,大多数需要 interface 第九讲 基础篇 第九讲 语法之 Module 讲解人:雪球 gao@ 讨论QQ群:2338021 1 Interface 2 Module 3 特殊用法 目 录 Interface 子程序把整个程序划分为一个一个的小段落并隔离起来。 它们之间通过虚参实参结合、common、module 等交换数据 通过相互调用实现程序流程的控制。 接口是控制他们相互调用或传递参数的“指导”! Interface 其他语言或 FORTRAN77 以前,没有显式的 interface 语法。 因此,他们的函数间调用,是粗暴的,不安全的! 编译器检查时,只检查个数,类型。 在 Fortran90 以后,出现了显式 Interface 语法。 它规范了函数间的调用,指定了函数的调用方式、各参数的传递方式、详细信息、各种上下限、变量的限定、是否可以忽略等等。 Interface 使用以下用法时,必须使用 interface: 函数返回值是数组、指针 参数为假定形状数组 参数具有 intent、value 属性 参数有可选参数、改变参数顺序 以下用法时,虽然不强制要求,但也推荐使用 interface 函数名作为虚参和虚参 实际上,我们建议在任何函数调用时,都使用接口! Interface Interface Interface 用于告知调用者,被调用者的各种信息。 它书写时,只需要包含在 Interface 中间 End Interface 内容为,把被调用者的执行语句,局部变量定义去掉! Interface 需要包含在每一个调用者函数中! 这似乎很麻烦? 1 Interface 2 Module 3 特殊用法 目 录 Module Module 用于把一部分(有关联的)数据和函数聚合起来 避免手动书写 interface 数据共享 数据与过程封装、保护、继承 Module 是 Fortran90 的重大进步,是区别于 FORTRAN77的重要特征! 在 Fortran2003 以后的语法里,Module 与 type 结合使得 Fortran 的面向对象编程成为可能。 Module 函数是有输入、输出的过程。 在内部实现一个特定的功能。 而 Module 则是把一系列相关的函数、及数据再封装起来 实现一系列的功能组合! Module 前面我们说过,函数具有“隔离性” 而虚实结合,是共享数据的一种方式 common、module 也是 而 common 是按字节数结合,而不是按变量名结合。我们强烈建议弃用! module 中的变量,module内部可以自由使用,任何 use 该 module 的程序单元也可自由使用。其值是保持一致的。 请注意,一旦用了module 就不要再用 common 了 Module Fortran 中没有全局变量! co

文档评论(0)

1亿VIP精品文档

相关文档