《Fortran实用编程》系列视频教程-FortranCoder.pptVIP

  • 33
  • 0
  • 约6.63千字
  • 约 34页
  • 2018-06-26 发布于天津
  • 举报

《Fortran实用编程》系列视频教程-FortranCoder.ppt

《Fortran实用编程》系列视频教程-FortranCoder.ppt

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 相关有自己的见解,并愿意通过录制视频的方式与其他人分享,请联系我们! 上节要点回顾 文件只有两种:文本文件和二进制文件,这是文件的本质 读取二进制文件三种方式:顺序、直接、流文件读取 顺序读取每笔记录可以不同长度,前后各4字节表示长度。是fortran特殊的文件格式。 直接读取每笔记录必须一样长,适合规则的数据格式。 流文件集各种优势于一身。简单,方便,快捷,完全可以替代前两种读写方式。 第十二讲 基础篇 第十二讲 语法之标准函数 讲解人:雪球 gao@ 讨论QQ群:2338021 1 标准函数的一般问题 2 数学数值函数 3 字符串和数组函数 目 录 4 其他函数 标准函数的一般问题 Fortran是一门编译型语言,虽然设计初衷是用于科学数值计算。 但它是较底层的,因此仅提供了非常底层的数学函数。绝大多数高层的数学问题,我们需要独立书写代码来实现。 语法内的函数虽然不多,但各有各的用法,与Excel / C / Matlab等也有差异。 因此,手边尽量备一个文档待查。(例如编译器的帮助文档) 下面简单介绍一下 IVF 帮助文档的查阅。 标准函数的一般问题 Fortran的函数,有严格的参数类型和返回值类型! 虽然很多语法内的函数提供了不同数据类型的版本,但并不是每一种都有! 比如 exp 函数,他提供了 real(4) / real(8) / real(16) complex(4) / complex(8) / complex(16) 但并没有提供 integer 的版本,因此: y = exp( 2 ) 是错误的写法 应该写为: y = exp( 2.0 ) 在IVF帮助文档中,绿色通常表示不规范写法 标准函数的一般问题 Fortran多数内部的数值函数有 Generic Name ,也有 Specific Name 绝大多数情况下,用 Generic Name 就足够了。 比如 sqrt 函数,他提供了 real 4/8/16 complex4/8/16 分别的名字叫 DSQRT/CSQRT 等 但实际上,只要对应的实参是real8 编译器就会选择用DSQRT来计算: y = SQRT( 4.0d0 ) 只有极少数情况下,才必须使用 Specific Name 例如,输入和输出的类型不一致,或者多个参数类型不一致。 标准函数的一般问题 Fortran的大多数内部函数,还是逐元函数(Elemental)。 所谓逐元,简单理解,就是但凡参数是单变量的,都可以是任意维度的数组 y = sin( x ) Do i = 1 , N y(i) = sin( x(i) ) End Do Real :: x(3,5) , y(3,5) y = sin( x ) y(1:2,:) = sin( x(1:2,:) ) 标准函数的一般问题 举例: a = a * 25 关于优化: 优秀的编译器提供优秀的优化方案,优化的作用是,使得计算方法通过一定的变换实现更快的执行。 b = a * 4 + a a = b * 4 + b 优化水平的高低是不同编译器的主要差别体现! 对于同一个数学问题,我们自己写代码实现,往往不如编译器厂家优化效果好。因此,绝大多数问题,如果能用语法内的函数,就不要自己写代码。 1 标准函数的一般问题 2 数学数值函数 3 字符串和数组函数

文档评论(0)

1亿VIP精品文档

相关文档