fortran课件 第7章_2_11.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fortran课件 第7章_2_11

第七章 函 数 §7 函数 程序代码中需要重复的某个功能和重复使用某一段程序代码时,可用函数。 “函数”包括:自定义函数(function) 和子程序(subroutine) 自定义函数扩充库函数的功能 §7-1 子程序(SUBROUTINE) 以subroutine 开头,要取名。以return 返回;end或end subroutine 或end subroutine name结束 用call 来调用 主程序不一定要放在最开头,书写顺序可任意 子程序独立地拥有属于自己的变量声明;主程序和子程序中声明的变量各不相干 子程序拥有独立的行代码(format 等用) 互相之间传递参数 §7-2 自定义函数(FUNCTION) 与子程序的不同: 1)会返回一个数值,并对储存返回值的函数名要有类型声明; 2)调用时不用call,但调用前要对自定义函数名声明; §7-3 全局变量(COMMON) 定义一块共享的内存空间,不同的程序单元之间(函数之间,函数与主程序之间),声明的变量使用相同的内存位置,以传递数据。 FORTRAN 77使用 两种:1)无名公用区;2)有名公用区 各程序单元COMMON中的变量类型必须按位置一一对应 用Block data 模块赋初值 §7-4函数中的变量 函数中的变量(不含所输入的参数)是独立的(局部变量),其生存时间,仅在子程序被调用期间。 声明中用SAVE,可保证程序整个执行过程中,始终保留其内存空间,上一设置的内容有记忆。 传递参数的注意事项: 函数或子程序的虚参数,在调用前不配置内存,只是形式。调用时,与实参按地址结合。退出子程序时,虚参又变得无定义。 一) 类型匹配 传递的参量要求类型匹配,可以直接传递常数,常量的类型也要匹配 二) 数组参数 1)传递数组参数实际上传递的是数组元素的内存地址 函数所接受到的数组参数,都在函数执行前已经配置好一块连续的内存空间,函数中的声明只是定义如何去使用它们,可以使用其中一部分;把一维变成二维;改变坐标范围等。 2)函数数组参数传递时,虚参数组不要超过实参数组的范围。编译器不会辨别,但执行会出错. 3) 数组在声明时,要使用常数来确定数组的尺寸,当作为函数的虚参,可用虚参变量来声明数组的尺寸。 4)作为函数虚参的多维数组,最高一维的大小可以不声明,其他维必须声明尺寸。 三)传递函数 传递的参数可以是函数名(function,subroutine) 作实参的函数名要先声明。 函数声明时,intrinsic 表示库函数;external表示自定义的函数。 字符串数组的传递:传递字符串变量时可以不声明长度 多维数组的传递:最高一维的大小可以不声明,其他维必须声明尺寸 字符串数组的传递 §7-4-3 变量的生存周期 函数中的变量(不含所输入的参数)的生存时间,仅在子程序被调用期间。 声明中用SAVE,可保证程序整个执行过程中,始终保留其内存空间,上一设置的内容有记忆。 §7-4-4 传递函数 传递的参数可以是函数名(function,subroutine) 作实参的函数名要先声明。 函数声明时,intrinsic 表示库函数;external表示自定义的函数。 §8-4-4 传递函数 子程序可作参数 § 7-5特殊参数的使用方法 Fortran 90 中:可设置某些参数的属性:为只读或可写等 参数个数可以不定 传递参数的顺序可变 §7-5-1 参数的属性 FORTRAN 90用INTENT设置虚参的属性: 类型,INTENT(IN):: 参数变量名 !参数为只读,不能改变数值,否则编译会出现错误信息 类型,INTENT(OUT):: 参数变量名 !参数在程序中重新设置数值,否则编译会出现警告 类型,INTENT(INOUT):: 参数变量名 !参数可读可写,和没指定一样 Fortran 中,变量作为实参传递出去之后,在调用函数后有可能被改变,以此来限制或提醒。 §7-5-2 函数的使用接口(INTERFACE) INTERFACE是一段程序模块,说明所要调用的函数的参数类型及返回值的类型等。 例: 结构: §7-5-2 函数的使用接口(INTERFACE) 调用必须要使用interface的情况: 函数返回值为数组 指定参数位置来传递参数时 所调用的函数的参数数目不固定 输入指针参数时 函数返回值为指针时 §7-5-3 不定个数的参数的传递 Fortran 90 中采用optional 命令来声明可省略参数,要用inter

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档