- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FORTRAN90程序设计 计算机中心 2006.3 * Fortran 90 * Visual Fortran 90 程序设计 §6.1概述 §6.5 子程序的嵌套调用 §6.2 函数子程序 §6.6 模块 §6.3 子例子程序 §6.7 递归过程 §6.4 虚实结合 §6.8 其他部分 §6.9 程序举例 §6.1 概述 主程序的结构: 单位定义 说明部分 输入 计算或处理 输出 END 用子程序完成 用子程序完成 用子程序完成 子程序 子程序 引入子程序的目的:模块化设计 所有功能都在主程序单位内完成 1、一个Fortran90程序主程序单元个数:1个 2、子程序单元:0-n个 子程序单元被主程序单元或被其它子程序单元调用,甚至可以递归调用(调用本身) 源程序的结构 主程序: 单位定义 说明部分 输入 调用子程序 输出 END 计算或处理 子程序: 最简单的源程序的结构 子程序分类 1、函数子程序 分为内部函数子程序 外部函数子程序 2、子例行子程序 分为内部子例行子程序 外部子例行子程序 用于完成复杂的计算 返回 一个或多个值 用于完成复杂计算,返回一个或多个值,或用于其它数据处理 §6.2外部函数子程序 单位定义语句 说明部分 程序体:具体计算 END语句 外部函数子程序的结构 FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL::X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END PROGRAM NAIN …… READ*,A,B D=F(A,B,c) PRINT*,C,D END 两单位相互独立编译 必须进行数据的传递 END [FUNCTION [函数名]] 子程序END语句写法 1、函数单位的结束标志 2、将控制返回到主调程序。 子程序END语句功能 函数单位定义语句的写法 [RECURSIVE]FUNCTION 函数名(虚元表)RESULT(结果名) 1、函数子程序的第一行(注释行除外)。 2、如果函数是递归的,则应以RECURSIVE开头。 3、函数名为全局名:作用域为整个程序,不与已有的全局名同名。 各独立程序单位的名字为全局名 4、主调程序与被调程序 两个单位之间的数据传递 ①结果名:子程序的一个输出 一般写法:函数名_RESULT,用于保存一个计算结果,称为函数值。且结果名有类型,必须在子程序说明部分说明类型。 ②虚元表:子程序的所有输入,及除函数值之外的其他计算结果的输出。 函数值返回给调用式 由实元传递给对应的虚元 虚元数据返回给对应的实元 FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL::X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END PROGRAM NAIN …… READ*,A,B D=F(A,B,c) PRINT*,C,D END 主 子 5、虚元的含义:编写子程序时没有具体值(调用时或调用结束后才获得数值),因此只是一个符号,表示输入、输出,名字可随便用户取。 6、虚元可以是变量名、数组名、过程名、指针等。 7、虚元的可选属性INTENT: INTENT(IN):作为子程序的输入(不得再改变其值) INTENT(OUT):子程序的输出(对应的实元不能是表达式) INTENT(INOUT):子程序的输入输出 例:REAL,INTENT(IN)::X,Y 子程序程序体的写法 分为说明部分和执行部分。 1、说明部分应对程序体内一切变量、数组等实体(包括虚元)作出说明,同时还要说明函数结果变量名,但不可说明函数名。 2、执行部分中必须对函数结果名至少赋值一次。 FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL::X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END 两单位独立编译 1、调用式是表达式, 调用结束后调用式得到函数值。 2、常见形式: ①Y=函数名(实元表) ②PRINT*,函数名(实元表) ③IF(函数名(实元表))…… 注意:实元与虚元一般必须在个数、次序、类型上保持一致;但实元与虚元名字可以不同。 函数子程序的调用 例1:编写子程序求K=M*N,L=M-N,主程序输入2,3,调用子程序,计算2*3及2-3。 Program main Implicit none Integer::M,N,K,L,F Read*,M,N K=F(M,N,L) PRINT*,K,L END FUNCTION F(M,N,L)RESULT(F_RESULT
您可能关注的文档
- 爱因斯坦谜题图表分析法.doc
- 第九章 福州大学汇编语言课程作业1~5.doc
- 消费者权益保护类试题和答案.doc
- 中国现当代文学名著导读2期末考试重点提示(考试时间放摘要.doc
- 第三章 MMA7361自己总结.doc
- 13 FMTP工艺和工程技术开发.pdf
- 有机肥加工技术及工艺路线调研2012.docx
- 数据结构第二期练习题解答概论.doc
- 第十三章 计算机图形学复习资料1.doc
- 简易信号测量仪(C1题)要领.pdf
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
最近下载
- 福建省厦门市2024-2025学年高二下学期期末质量检测生物试卷.docx
- 西南18J515室内装修.docx VIP
- 2024年湖北省恩施州宣恩县晓关乡招聘社区工作者真题参考答案详解.docx VIP
- 2024年湖北省恩施州鹤峰县太平乡招聘社区工作者真题含答案详解.docx VIP
- 永州冷水滩区招聘城市社区专职工作人员笔试真题2024.docx VIP
- 危险化学品安全有关法律法规解读.pptx VIP
- 2024年湖北省恩施州恩施市三岔乡招聘社区工作者真题含答案详解.docx VIP
- 货物运输突发事件处理预案.docx VIP
- 2025年_永州冷水滩区招聘城市社区专职工作人员考试试卷[附答案].docx VIP
- 妊娠合并系统性红斑狼疮护理查房.pptx VIP
文档评论(0)