fortran90第六章子程序.pptVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
fortran90第六章子程序

FORTRAN90程序设计;Visual Fortran 90 程序设计;§6.1 概述;1、一个Fortran90程序主程序单元个数:1个 2、子程序单元:0-n个 子程序单元被主程序单元或被其它子程序单元调用,甚至可以递归调用(调用本身);主程序: 单位定义 说明部分 输入 调用子程序 输出 END;子程序分类;§6.2外部函数子程序;END [FUNCTION [函数名]];函数单位定义语句的写法;4、主调程序与被调程序 两个单位之间的数据传递;FUNCTION F(X,Y,Z)RESULT(F_RESULT) IMPLICIT NONE REAL::X,Y,z,F_RESULT F_RESULT=X+Y Z=X-Y END;5、虚元的含义:编写子程序时没有具体值(调用时或调用结束后才获得数值),因此只是一个符号,表示输入、输出,名字可随便用户取。 6、虚元可以是变量名、数组名、过程名、指针等。 7、虚元的可选属性INTENT: INTENT(IN):作为子程序的输入(不得再改变其值) INTENT(OUT):子程序的输出(对应的实元不能是表达式) INTENT(INOUT):子程序的输入输出 例:REAL,INTENT(IN)::X,Y;子程序程序体的写法;1、调用式是表达式, 调用结束后调用式得到函数值。 2、常见形式: ①Y=函数名(实元表) ②PRINT*,函数名(实元表) ③IF(函数名(实元表))…… 注意:实元与虚元一般必须在个数、次序、类型上保持一致;但实元与虚元名字可以不同。 ;例1:编写子程序求K=M*N,L=M-N,主程序输入2,3,调用子程序,计算2*3及2-3。;例2.计算y=f(x)+g(x)值。 其中 f(x)=x+sin30° x+1,f(x)0 g(x)= 0, f(x)=0 x-1, f(x)0 要求用外部函数求g(x)的值。;PROGRAM MAIN IMPLICIT NONE REAL::X,Y,F,G,GF READ*,X F=X+SIN(30*3.1415926/180) G=GF(X,F) Y=F+G PRINT*,Y END;练习: 计算函数Sinh(x)的值,当ex的通项值小于等于1E-6时停止。计算公式如下:; !主程序如下: Program main1 Real:: MyExp,y,x Write(*,*) ‘Enter x:’ Read(*,*)x Y=(MyExp(x)-MyExp(-x)) /2.0 Write(*,*)Y END PROGRAM ;1、计算实元值(作为输出的可预先无值) 2、虚实按地址结合:虚元按顺序借用实元存储单元 3、运行权至子程序的第一句,直至遇子程序的END语句返回到主调程序: ①运行权返回至调用点 ②函数值返回给调用表达式 ③虚实脱离结合,但子程序运行时造成的实元值的改变将保留。;子程序阅读技巧:画出虚实结合表;开辟临时单元存放常量或表达式的值 REAL::MN,X,S X=3.0 PRINT*,S(X,MN(X)),X END FUNCTION S(A,C)RESULT( S_RESULT ) REAL::A,S,S_RESULT A=A+1;B=A**A S_RESULT=B-C END FUNCTION S FUNCTION MN(X)RESULT(MN_RESULT) MN_RESULT=3.0*X END FUNCTION MN;6.3 外部子例行子程序;与函数子程序的区别;例子程序求K=M+N,L=M-N 主程序输入2,3调用子程序求2+3,2-3的值。 ;1、计算实元值(作为输出的可预先无值) 2、虚实按地址结合:虚元按顺序借用实元存储单元 3、运行至子程序的第一句,直至遇子程序的END语句返回到主调程序: ①运行返回至CALL语句的下一个语句 ②虚实脱离结合,但子程序运行时造成的实元值的改变将保留。 ;INTEGER::X,Y CALL SUB(X,X,Y) CALL SUB(X,Y,Y) END

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档