fortran第10章

上传人:鲁** 文档编号:584726779 上传时间:2024-08-31 格式:PPT 页数:47 大小:332.02KB
返回 下载 相关 举报
fortran第10章_第1页
第1页 / 共47页
fortran第10章_第2页
第2页 / 共47页
fortran第10章_第3页
第3页 / 共47页
fortran第10章_第4页
第4页 / 共47页
fortran第10章_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《fortran第10章》由会员分享,可在线阅读,更多相关《fortran第10章(47页珍藏版)》请在金锄头文库上搜索。

1、Fortran 90Visual Fortran 90 程序设计第第10章章 模块与接口模块与接口Fortran 90Visual Fortran 90 程序设计10.1模块的定义模块的定义6.5 模块的应用举例模块的应用举例10.2 USE语句语句10.3 接口接口10.4 超载和定义操作符超载和定义操作符Fortran 9010.1 模块的定义模块的定义1功能:提供大量功能:提供大量共享共享符号符号常量、变量、派生类常量、变量、派生类型定义和过程;型定义和过程;即即公用公用的信息可放入模块单位的信息可放入模块单位各单位共享信息的途径:各单位共享信息的途径:虚实结合虚实结合模块单位模块单位F

2、ortran 902模块单位写法:一般形式模块单位写法:一般形式 MODULE 模块名模块名 !模块单位定义语句!模块单位定义语句 类型说明部分类型说明部分 CONTAINS 内部过程子程序内部过程子程序1 内部过程子程序内部过程子程序n END MODULE 模块名模块名注意:注意:1. 模块是独立的程序单位模块是独立的程序单位(个数:个数:0n个个) 即模块名为全局名:不与已有即模块名为全局名:不与已有 的全局名同名的全局名同名 2. 模块名常以模块名常以_MODULE作为后缀作为后缀提供共享符号提供共享符号常量、常量、变量、派生类型定义变量、派生类型定义提供共享提供共享过程过程Fortr

3、an 90例:例:MODULE MY_ MODULE REAL,PARAMETER:PI=3.1415926 CONTAINS SUBROUTINE SWAP(X,Y) REAL:TEMP,X,Y TEMP=X; X=Y; Y=TEMP END SUBROUTINE SWAPEND MODULE MY_ MODULEFortran 90模块和子程序之间的区别:模块和子程序之间的区别:(1)模块)模块应先定义应先定义。(2)模块中)模块中无可执行语句无可执行语句(3)模块不给其它单位调用)模块不给其它单位调用, 而而用用USE语句引用语句引用非执行单位非执行单位编译时完成编译时完成可执行语句只能

4、在内部子程序内可执行语句只能在内部子程序内先输入,不能放在先输入,不能放在其它单位的底部其它单位的底部Fortran 90引用格式引用格式1:引用模块中所有对象:引用模块中所有对象 use 模块名模块名1,模块名,模块名2, 2:模块中对象更名共享模块中对象更名共享 use 模块名,别名模块名,别名=模块内对象名模块内对象名例:例:use exam, x=a,y=b x,y引用单位的局部名引用单位的局部名 a,b模块中的名模块中的名3:引用模块中部分对象引用模块中部分对象 use 模块名模块名,only:变量名表变量名表 例:例:use exam,only:a,b 各单位用各单位用USE语句共

5、享模块中的信息语句共享模块中的信息复制共享复制共享(按名共享存储单元)(按名共享存储单元)10.2 USE语句语句Fortran 90、USE语句位置:语句位置:单位定义语句之后,单位定义语句之后,IMPLICIT NONE语句之前语句之前程序单位的第二句程序单位的第二句只能在模块内使用只能在模块内使用5、可以对模块内说明的变量、派生类型及其成员、可以对模块内说明的变量、派生类型及其成员的使用范围进行限制。的使用范围进行限制。加加PRIVATE(专用)属性,模块以外的程序单专用)属性,模块以外的程序单元不能使用。元不能使用。否则为否则为PUBLIC (公用)属性。公用)属性。Fortran 9

6、0通过虚实结合传递数据:通过虚实结合传递数据:FUNCTION AVER3(A,B,C) RESULT(AVER_VALUE)IMPLCIT NONEREAL :A,B,CREAL :AVER_VALUEAVER_VALUE=(A+B+C)/3.0END FUNCTIONFUNCTION MAX3(A,B,C) RESULT(MAX_VALUE)IMPLCIT NONEREAL :A,B,CREAL :AVER_VALUEMAX_VALUE=AIF(BMAX_VALUE)MAX_VALUE=BIF(CMAX_VALUE)MAX_VALUE=CEND FUNCTION例例6-8读入读入3个数,调

7、用函数个数,调用函数AVER3求平均值,调求平均值,调用函数用函数MAX3求最大值求最大值Fortran 90!主程序PROGRAM AVER_MAX_1IMPLICT NONEREAL:A,B,CREAL AVER,MAX3READ *,A,B,CPRINT *,AVER3(A,B,C),MAX3(A,B,C)END PROGRAM数据传递:由虚实按数据传递:由虚实按顺序共享存储单元顺序共享存储单元各单位共有的信息各单位共有的信息Fortran 90MODULE EXAM_MODULEIMPLICIT NONEREAL:A,B,CEND MODULE EXAM_MIDULEFUNCTION

8、AVER3() RESULT(AVER_VALUE)USE EXAM_MODULEUSE EXAM_MODULEREAL :AVER_VALUEAVER_VALUE=(A+B+C)/3.0END FUNCTIONFUNCTION MAX3() RESULT(MAX_VALUE)USE EXAM_MODULEUSE EXAM_MODULEREAL :AVER_VALUEMAX_VALUE=AIF(BMAX_VALUE)MAX_VALUE=BIF(CMAX_VALUE)MAX_VALUE=CEND FUNCTION利用模块实现数据的共享:利用模块实现数据的共享:共享信息共享信息先定义先定义USE语

9、句引语句引用用USE语句引语句引用用Fortran 90!主程序PROGRAM AVER_MAX_1USE EXAM_MODULEUSE EXAM_MODULEIMPLICIT NONEIMPLICIT NONEREAL AVER,MAX3READ *,A,B,CPRINT *,AVER3(),MAX3()END PROGRAMUSE语句语句引用、引用、位置:第位置:第二句二句数据传递:由模块数据传递:由模块按名共享存储单元按名共享存储单元Fortran 90模块的内部过程也可供引用模块的各程序单元使用。模块的内部过程也可供引用模块的各程序单元使用。MODULE EXAM_MODULEIMPL

10、ICIT NONE;REAL:A,B,CCONTAINSFUNCTION AVER3() RESULT(AVER_VALUE)REAL :AVER_VALUEAVER_VALUE=(A+B+C)/3.0END FUNCTIONFUNCTION MAX3() RESULT(MAX_VALUE)REAL :AVER_VALUEMAX_VALUE=AIF(BMAX_VALUE)MAX_VALUE=BIF(CMAX_VALUE)MAX_VALUE=CEND FUNCTIONEND MODULE EXAM_MIDULEPROGRAM AVER_MAX3USE EXAM_MODULEREAD *,A,B,

11、CPEINT *,AVER(),MAX3()ENDPROGRAM!定义模块!定义模块!定义主程序定义主程序共享的内部过程共享的内部过程共享的变量共享的变量引用模块引用模块内部过程优先,内部过程优先,调用模块过程调用模块过程Fortran 90程序阅读:先读模块单位及各单位的程序阅读:先读模块单位及各单位的USE, 画共享表画共享表(按名结合按名结合),再读主程序再读主程序.MODULE A1COMPLEX:X,YENDMODULESUBROUTINE COMP(A,B)USE A1COMPLEX A,BA=X+YB=X-YEND SUBROUTINEPROGRAM MAINUSE A1X=(3

12、.0,4.0)Y=(4.0,3.0)CALL COMP(X,Y)CALL COMP(X,X)CALL COMP(Y,X)PRINT*,X,YEND (-3.000000,-4.000000) (10.00000,11.00000)编译时完成编译时完成两种数据传两种数据传递方式可混递方式可混合使用合使用Fortran 90使使主调程序编译时能通过接口块了解到主调程序编译时能通过接口块了解到被调被调外部外部过程的名字、虚元名字及它们过程的名字、虚元名字及它们的类型等信息的类型等信息简单接口块的作用简单接口块的作用10.3 接口接口(Interface Block )各独立程序单位分开各独立程序单位

13、分开编译编译内部子程序无接口内部子程序无接口Fortran 90最简接口块结构形式最简接口块结构形式INTERFACEINTERFACE 被调程序的单位定义语句被调程序的单位定义语句 说明语句说明语句 单位结束语句单位结束语句END INTERFACEEND INTERFACE写在主调程序的类型说明语句之前,写在主调程序的类型说明语句之前,IMPLICIT语句语句之后之后接口块的位置接口块的位置Fortran 901 1、功能简单的程序,不必写接口块。功能简单的程序,不必写接口块。2、如有接口,主调程序不必再说明外部、如有接口,主调程序不必再说明外部函数名的类型。函数名的类型。有关接口块的说明

14、有关接口块的说明Fortran 90例如:利用外部函数完成例如:利用外部函数完成X3的计算。的计算。FUNCTION Func(X)Result(F)REAL: X,FF=X*3END FUNCTIONPROGRAM TESTIMPLICIT NONEREAL:X,FuncPRINT *,ENTER x:READ *,xWRITE(*,*) Func(x)END PROGRAM TEST可不写接口块,可不写接口块,但主调程序需说明但主调程序需说明函数名类型函数名类型Fortran 90例如:利用外部函数完成例如:利用外部函数完成X3的计算的计算FUNCTION Func(X)Result(F)

15、REAL: X,FF=X*3END FUNCTIONPROGRAM TESTIMPLICIT NONEINTERFACEFUNCTION Func(X)Result(F)REAL:X,FEND FUNCTION END INTERFACEREAL:XPRINT *,ENTER x:READ *,xWRITE(*,*) Func(x)END PROGRAM TEST有接口块无需说明函有接口块无需说明函数名类型,否则错误数名类型,否则错误1 1、接口块的位置、接口块的位置2 2、接口块的组成、接口块的组成Fortran 90补充:下例情形必须使用接口块补充:下例情形必须使用接口块1、实元用关键字变

16、元实元用关键字变元2 2、实元对应缺省的可选变元。、实元对应缺省的可选变元。3 3、用一个类属名调用过程。、用一个类属名调用过程。4 4、外部过程扩展了赋值号的使用范围(超载赋值)。、外部过程扩展了赋值号的使用范围(超载赋值)。5 5、一个外部函数使系统中的内在操作符扩展了原有的、一个外部函数使系统中的内在操作符扩展了原有的功能(超载运算)。功能(超载运算)。6 6、一个外部函数使系统中的内在函数扩展了原有的功、一个外部函数使系统中的内在函数扩展了原有的功能(超载函数)。能(超载函数)。7 7、调用的外部过程是一个函数,且函数结果是一个数、调用的外部过程是一个函数,且函数结果是一个数组;或被调

17、用过程中的虚元是一个假定形状数组、一组;或被调用过程中的虚元是一个假定形状数组、一个指针变量、一个目标变量。个指针变量、一个目标变量。Fortran 90补充: 实元用关键字变元INTERFACE FUNCTION F(X,Y,Z)RESULT(F_RESULT)INTEGER:F_RESULT,X,Y,Z ENDENDINTERFACE READ*,M,NK=F(X=M,Z=L,Y=N)PRINT*,K,LEND FUNCTION F(X,Y,Z) RESULT(F_RESULT)INTEGER:F_RESULT,X,Y,ZF_RESULT=X+Y;Z=X-YEND 调用形式为关键字变元调用

18、形式为关键字变元 虚元名虚元名=实元表达式实元表达式优点:优点:不需考虑虚元的次序不需考虑虚元的次序 Fortran 90INTERFACE FUNCTION F(X,Y,Z)RESULT(F_RESULT)INTEGER:F_RESULT,X,Y,Z ENDENDINTERFACE READ*,M,NK=F(M, N, Z=L)K=F(M, Z=L,Y=N)PRINT*,K,LEND FUNCTION F(X,Y,Z) RESULT(F_RESULT)INTEGER:F_RESULT,X,Y,ZF_RESULT=X+Y;Z=X-YEND 混合使用:关键字变元混合使用:关键字变元前面的所有实元

19、都必须前面的所有实元都必须与相应的虚元一一对应与相应的虚元一一对应一旦使用一个关键字变一旦使用一个关键字变元,其后面的变元也必元,其后面的变元也必须使用关键字变元须使用关键字变元Fortran 90补充: 通过接口块更改虚元名称PROGRAN MAININTERFACESUBROUTINT S(XX,YY,ZZ)INTEGER:XX,YY,ZZENDENDINTERFACEREAD*,M,NPRINT*,S(XX=M,YY=N,ZZ=L)ENDSUBROUTINR S(X,Y,Z)INTEGER:X,Y,ZZ=X+YEND用用接口块改变虚元的名接口块改变虚元的名称。必须保持新、旧虚称。必须保持

20、新、旧虚元名的对应位置不变。元名的对应位置不变。Fortran 90补充: 可选择变元可选择变元:可选择变元:虚元有虚元有OPTIONAL属性,便是可选属性,便是可选变元变元,虚元没有虚元没有OPTIONAL属性,是必选变元。属性,是必选变元。可选可选变元作用:调用时可选变元变元作用:调用时可选变元可以有可以有对应的实元,对应的实元, 也也可以无可以无对应的实元。对应的实元。PRESENT(虚元名):用来检查虚元是否结合到虚元名):用来检查虚元是否结合到对应的实元,对应的实元,结合到结合到则返回则返回为为“真真”。Fortran 90PROGRAM MAININTERFACESUBROUTIN

21、E S(Y,X)INTEGER :XINTEGER,OPTIONAL:YENDENDINTERFACEINTEGER:A,BA=2;B=3CALL S(X=B)CALL S(X=B,Y=A)ENDSUBROUTINE S(Y,X)INTEGER:C,XINTEGER,OPTIONAL:YIF(PRESENT(Y)THENC=X+YELSEC=XENDIFPRINT*,CEND虚元虚元y有有OPTIONAL可选属性可选属性,调用时可无对调用时可无对应的实元应的实元用来检查虚元用来检查虚元y是是否在程序执行时结否在程序执行时结合到实元。合到实元。35Fortran 90例:例:编写一个函数子程序。

22、根据需要,编写一个函数子程序。根据需要,既能求出圆柱的底面积值,也能求既能求出圆柱的底面积值,也能求出圆柱的体积值。出圆柱的体积值。高高H为可选择的变元为可选择的变元提高提高子程序的重用子程序的重用性性Fortran 90!子程序子程序FUNCTION SS(R,H) RESULT(SS_RESULT) IMPLICIT NONEREAL,INTENT(IN):RREAL,OPTIONAL,INTENT(IN):HREAL:SS_RESULT,TEMP_HIF(PRESENT(H)THEN TEMP_H=HELSE TEMP_H=1.0ENDIFSS_RESULT=3.141592*R*2*T

23、EMP_HEND FUNCTION SSFortran 90!主程序主程序PROGRAM MAINIMPLICIT NONEINTERFACE FUNCTION SS(R,H) RESULT(SS_RESULT) REAL,INTENT(IN):R REAL,OPTIONAL,INTENT(IN):H REAL:SS_RESULT,TEMP_H END FUNCTION SSENDINTERFACEREAL:R,H,S,VREAD*,R,HS=SS(R) !计算面积计算面积V=SS(R,H) !计算体积计算体积PRINT*,S,VENDFortran 9010.4.1 类属子程序1、类属子程序

24、、类属子程序: 若干个若干个功能相同功能相同的子程序,但分别的子程序,但分别有有不同的类型的虚元。不同的类型的虚元。2、类属子程序名:在主调程序中编写接口,为接口、类属子程序名:在主调程序中编写接口,为接口取一取一个统一的名字个统一的名字,接口名就是类属子程序名,接口名就是类属子程序名(各子(各子程序统一的名字程序统一的名字)。接口内分别列出虚元类型不同的)。接口内分别列出虚元类型不同的子程序说明部分的语句。子程序说明部分的语句。3、类属子程序名的作用:主调程序可使用类属名调、类属子程序名的作用:主调程序可使用类属名调用子程序,用子程序,由类型决定调用的子程序。由类型决定调用的子程序。优点:优

25、点:它允许实元与对应的虚元类型不同,放宽了虚它允许实元与对应的虚元类型不同,放宽了虚实结合时类型必须一致的条件。实结合时类型必须一致的条件。Fortran 90subroutine swap_ real(a,b)implicit nonereal,intent(inout):a,breal:temptemp=a;a=b;b=tempendsubroutinesubroutine swap_ int (a,b)implicit noneinteger,intent(inout):a,binteger:temptemp=a;a=b;b=tempendsubroutine功能相同,功能相同,类型不同

26、类型不同起两个名字,起两个名字,不方便记忆不方便记忆Fortran 90program swap_dataimplicit noneinterface swap subroutine swap_ real(a,b)implicit nonereal,intent(inout):a,breal:tempendsubroutinesubroutine swap_ int(a,b)implicit noneinteger,intent(inout):a,binteger:tempendsubroutineendinterfacereal:x1,x2integer:y1,y2read*,x1,x2re

27、ad*,y1,y2call swap(x1,x2) print *,x1,x2call swap(y1,y2)print *,y1,y2endprogram类属名类属名可用类属名调用可用类属名调用由实元类型决定调用由实元类型决定调用的子程序的子程序Fortran 9010.4.2 超载赋值号:超载赋值号:系统提供的三类系统提供的三类内在赋值(固有赋值)内在赋值(固有赋值):1 1、数值型变量、数值型变量= =数值型表达式数值型表达式2 2、逻辑型变量、逻辑型变量= =逻辑型表达式逻辑型表达式3 3、字符型变量、字符型变量= =字符型表达式字符型表达式超载赋值超载赋值是指把是指把赋值的含义扩展赋

28、值的含义扩展到新的数据类型。到新的数据类型。例:例:数值型变量数值型变量= =逻辑型表达式逻辑型表达式Fortran 901、编写、编写子例行子程序子例行子程序定义定义赋值号的新功能赋值号的新功能:子程序只有两个虚元,第一个虚元具有子程序只有两个虚元,第一个虚元具有intent(out)属性,第二个虚元具有)属性,第二个虚元具有intent(in)属)属性性2、定义超载赋值、定义超载赋值: 通过接口通过接口将定义好的子程序和赋值将定义好的子程序和赋值号号进行绑定进行绑定在主调程序中编写一个接口,接口语句的形式为:在主调程序中编写一个接口,接口语句的形式为: interface assignme

29、nt(=)3、新的赋值运算(超载赋值)的执行:、新的赋值运算(超载赋值)的执行:调用调用和赋值号和赋值号绑定绑定子程序子程序4、由类型决定是内在赋值还是超载赋值由类型决定是内在赋值还是超载赋值,内在优先内在优先子程序的虚子程序的虚元一定要有元一定要有INTENT属性属性左操作数为第左操作数为第一个实元,右一个实元,右操作数为第二操作数为第二个实元个实元Fortran 90Subroutine log_int(I,L)Integer,intent(out):ILogical,intent(in):LIf(L)then I=1Else I=0EndifendsubroutineInterface

30、assignment(=)Subroutine log_int(I,L)Integer,intent(out):ILogical,intent(in):LendsubtineEndinterfaceInteger:k1,k2K1=.true.K2=.false.Print*,k1,k2end例:例: 编写一个子例子程序,把逻辑表达式的值赋值编写一个子例子程序,把逻辑表达式的值赋值给整型变量,当逻辑表达式的值为真时整型变量取给整型变量,当逻辑表达式的值为真时整型变量取1,否则整型变量取否则整型变量取0。编写主程序完成超载赋值。编写主程序完成超载赋值定义超载定义超载赋值:赋值:子程序和子程序和赋值

31、号进赋值号进行绑定行绑定虚元须有虚元须有intent属性属性超载赋值运算:超载赋值运算:Call log_int(k1 , . true.)子例子例子程子程序定序定义赋义赋值号值号新新功功能能Fortran 9010.4.3 10.4.4 超载运算符:超载运算符: 通过调用通过调用函数子程序函数子程序扩展普通运算符的功能,扩展普通运算符的功能, 或定义一个新运算符或定义一个新运算符1、超载运算符有两类:内在运算符(、超载运算符有两类:内在运算符(+-*/等)等) 自定义:自定义:.一串字符一串字符.2、超载、超载运算符的新功能运算符的新功能由由函数子程序函数子程序定义定义3、超载运算符必须先由

32、接口定义、超载运算符必须先由接口定义,再使用再使用 将函数子程序与运算符绑定将函数子程序与运算符绑定 INTERFACE OPERATOR(运算符)运算符)4、超载运算(新运算)的执行:调用函数子程序、超载运算(新运算)的执行:调用函数子程序由类型决定由类型决定是内在运算是内在运算还是超载运还是超载运算算,内在优先内在优先子程序的虚子程序的虚元一定要有元一定要有INTENT(IN)属性属性第一操作数为第一操作数为第一个实元,第一个实元,第二操作数为第二操作数为第二个实元第二个实元Fortran 90例:编写主程序,假设定义一个字符串运算例:编写主程序,假设定义一个字符串运算“+”,让它删除两个

33、字符串的尾部空格后将两个字符串,让它删除两个字符串的尾部空格后将两个字符串连接起来。连接起来。JOHN +DOT =JOHNDOT扩展内在运算符的功能扩展内在运算符的功能Fortran 90program conectimplicit noneinterface operator(+)function concat(str1,str2) result(concat_result)implicit nonecharacter(len=200):concat_resultcharacter(len=100),intent(in):str1,str2end functionend interface

34、character(len=15):ch1,ch2character(len=200):yread *,ch1,ch2y=ch1+ch2print *,yend program由接口定义超由接口定义超载运算符(载运算符(将将函数子程序与函数子程序与“+”号绑定)号绑定)超载运算的执行超载运算的执行:调用子程序调用子程序y=concat(ch1,ch2)虚元须有虚元须有intent属性属性Fortran 90function concat(str1,str2) result(concat_result)implicit nonecharacter(len=200):concat_resultch

35、aracter(len=100),intent(in):str1,str2concat_result(1:len_trim(str1)=str1concat_result(len_trim(str1)+1:len_trim(str1)+& len_trim(str2)=str2endfunction函数子程序定义函数子程序定义“”号新的运算规则号新的运算规则Fortran 90 自定义的运算符可由字母组成。两边用小数点作自定义的运算符可由字母组成。两边用小数点作定界符。定界符。例例6-16:编写主程序,定义一个新运算符:编写主程序,定义一个新运算符.upper. ,能将一个字符串中小写字母改成

36、大写。能将一个字符串中小写字母改成大写。自定义运算符自定义运算符Fortran 90program main_upperimplicit noneinterface operator(.upper.)FUNCTION upper_str(str) result(upper_string)implicit nonecharacter(len=*),intent(in):strcharacter(len=255):upper_stringinteger:icharacter:chendfunctionendinterfacecharacter(len=5):ch1,ch2read(*,(a)ch1

37、ch2=.upper.ch1 print (a,/a),ch1,ch2endprogram由接口定义由接口定义超载运算符超载运算符虚元须有虚元须有intent属性属性超载运算的执行超载运算的执行:调用子程序调用子程序ch2=upper_str(ch1)Fortran 90FUNCTION upper_str(str) result(upper_string)implicit nonecharacter(len=*),intent(in):strcharacter(len=255):upper_stringinteger:icharacter:chdo i=1,len_trim(str) ch=

38、str(i:i) if(ch=a .and. ch=a .and. ch=z)then upper_string(i:i)=char(ichar(ch)-32) else upper_string(i:i)=ch endifenddoendfunctionend module Fortran 90program main_upperuse myimplicit noneinterface operator(.upper.) module procedure upper_strendinterfacecharacter(len=5):ch1,ch2read(*,(a)ch1ch2=.upper.

39、ch1 print (a,/a),ch1,ch2endprogramFortran 9010.4.5 超载固有函数超载固有函数1、固有函数的新功能、固有函数的新功能由由函数子程序函数子程序定义定义 子程序的虚元一定要有子程序的虚元一定要有INTENT(IN)属性属性3、超载固有函数必须、超载固有函数必须先先由接口定义由接口定义,再再使用使用 将函数子程序与将函数子程序与固有函数固有函数绑定绑定 INTERFACE 固有函数名固有函数名4、超载固有函数的执行:调用函数子程序、超载固有函数的执行:调用函数子程序Fortran 90例:例:SQRT函数对整型数据开方函数对整型数据开方MODULE I

40、NTEGER_SQRT_MODULE!定义超载函数定义超载函数SQRT(绑定)(绑定) INTERFACE SQRT MODULE PROCEDURE SQRT_INT END INTERFACECONTAINS !SQRT的新功能由函数子程序定义的新功能由函数子程序定义 FUNCTION SQRT_INT(I)RESULT(SQRT_INT_RESULT) REAL:SQRT_INT_RESULT INTEGER,INTENT(IN):I SQRT_INT_RESULT=SQRT(REAL(I) END FUNCTIONEND MODULE INTEGER_SQRT_MODULE Fortran 90PROGRAM MAINUSE INTEGER_SQRT_MODULE !先定义先定义超载固有函数超载固有函数IMPLICIT NONEINTEGER:II=5PRINT*,SQRT(I) !再使用再使用超载固有函数超载固有函数END

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号