- 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第六章子程序
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)