第10章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文档。上传文档
查看更多
第10章 Fortran程序单元 一个Fortran程序中通常不是只由一个主程序组成,而是由几个按某种方式划分的不同程序单元来共同组成。尽管Fortran程序中允许只有主程序而没有子程序,但绝不允许只有子程序而没有主程序。在Fortran中,程序的执行总是从主程序开始的。 Fortran中的程序单元可以大体划分为主程序、子程序两种,其中子程序又可以进一步划分为函数子程序、子例行子程序和数据块子程序。数据块子程序通常用于实现变量的初始化赋值,函数子程序和子例行子程序在用途上基本是一致的,但是也有许多不同之处。本章将详细介绍Fortran中的程序单元和它们的基本用法。 10.1 主程序 顾名思义,主程序是一个实际程序中的主体,其他类型的程序单元都是以某种方式来辅助主程序的执行。在Fortran语言中,一个程序的执行始终是从主程序的第一条可执行语句开始的,所以每个完整的Fortran程序都必须有且只允许有一个主程序。主程序定义的一般语法形式如下: [PROGRAM [程序名]] [说明部分] [可执行部分] [CONTAINS 内部过程] END [PROGRAM[程序名]] 10.2 语句函数 语句函数通过一句代码定义来实现某种特定的处理功能,它是Fortran 77时代的遗留产物。严格来说,语句函数不属于程序单元的范畴。但是在实际应用中,语句函数以其灵活的应用、小巧的结构在程序中发挥着重要的作用。 在实际的编程过程中,程序员往往会遇到这种情况:一些简单的函数会在一个程序单元中的不同地方重复用到,而Fortran系统并不提供这种内部函数;如果采用函数子程序的形式来描述这些简单的函数又会觉得没有这种必要。例如,要求解函数的值,将其编写成函数子程序可以顺利解决。但是,Fortran语言提供了一种更为简单的手段——语句函数。 10.2.1 语句函数的定义 在Fortran中定义一个语句函数的形式如下: fun ([d-arg [, d-arg] ...]) = expr 1.Fun 2.d-arg 3.Expr 4.语句函数示例 5.需要注意的问题:在使用语句函数进行编程时,下面一些问题是需要引起注意的: 语句函数通常在函数比较简单,能够用一条语句(包括换行)就能进行定义时才使用; 语句函数是一种非执行语句,需要放置在所有可执行语句之前和相关的类型说明语句之后; 语句函数的作用范围仅限于定义它的程序单元之内,不允许跨程序单元进行语句函数的调用; 语句函数不能作为子程序调用时的实参,也不允许在EXTERNAL语句中出现; 语句函数中出现的虚参必须是变量名,不能是常量、表达式或是数组元素; 语句函数通过表达式得到的函数值的类型必须与函数名的类型一致。 10.2.2 语句函数的引用 语句函数在完成定义后,就可以在程序单元中进行引用了。实际上,在前一小节的例程中已经演示了语句函数引用的一般方式。本小节将对语句函数的引用方式进行具体的说明。 语句函数的引用方式与Fortran中内部函数的引用方式完全一致,就是用程序中定义的实参替换掉语句函数定义中的虚参。实参必须是与虚参类型相同的常量、变量或表达式。 10.3 函数子程序 函数子程序和子例行子程序是子程序的两种常用基本形式。它们的共同特征就是作为数据处理过程的集合。但是这两种子程序也不完全相同,函数子程序会返回一个函数值,且通常不会改变哑元的数值。因此,函数子程序更像是数学上的一个函数。而子例行子程序通常用于完成一项更为复杂的任务,通过哑元或者其他手段返回几个结果,哑元的数值通常会在程序的执行过程中改变。 10.3.1 定义函数子程序 下面给出函数子程序的一般形式为: [prefix] FUNCTION name ([d-arg-list]) [RESULT (r-name)] ... END [FUNCTION name] 1.prefix说明项 prefix说明项是一个可选参数,可以使用如下两种形式来书写: type [keyword] 或 keyword [type] 2.d-arg-list d-arg-list表示函数的哑元列表。如果函数子程序不包含哑元,则哑元列表可以省略,但是函数名后的括号不能省略。 3.RESULT关键字 RESULT关键字用于声明将函数的返回值保存在其后的变量名中,称为函数结果名。 10.3.2 调用函数子程序 函数子程序的调用与内在函数的调用形式一样。在主调程序的任意位置,可以通过下面的语句形式将函数子程序的计算结果赋值给变量: V = 函数名(实元表) 其中,V表示用于接收函数计算结果的变量;实元表是程序中实际传入函数子程序的变量列表,除非有特殊说明,变量列表中的实元个数以及类型必须与函数子程序定义时的虚参在个数和类型上

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档