- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.4.2 超载赋值号: 系统提供的三类内在赋值(固有赋值): 1、数值型变量=数值型表达式 2、逻辑型变量=逻辑型表达式 3、字符型变量=字符型表达式 超载赋值是指把赋值的含义扩展到新的数据类型。 例:数值型变量=逻辑型表达式 1、编写子例行子程序定义赋值号的新功能: 子程序只有两个虚元,第一个虚元具有intent(out)属性,第二个虚元具有intent(in)属性 2、定义超载赋值: 通过接口将定义好的子程序和赋值号进行绑定 在主调程序中编写一个接口,接口语句的形式为: interface assignment(=) 3、新的赋值运算(超载赋值)的执行:调用和赋值号绑定子程序 4、由类型决定是内在赋值还是超载赋值,内在优先 子程序的虚元一定要有INTENT属性 左操作数为第一个实元,右操作数为第二个实元 * Fortran 90 Visual Fortran 90 程序设计 第10章 模块与接口 Visual Fortran 90 程序设计 §10.1模块的定义 §6.5 模块的应用举例 §10.2 USE语句 §10.3 接口 §10.4 超载和定义操作符 10.1 模块的定义 1.功能:提供大量共享符号常量、变量、派生类型定义和过程;即公用的信息可放入模块单位 各单位共享信息的途径: ①虚实结合 ②模块单位 2.模块单位写法:一般形式 MODULE 模块名 !模块单位定义语句 类型说明部分 [CONTAINS 内部过程子程序1 …… 内部过程子程序n] END MODULE [模块名] 注意:1. 模块是独立的程序单位(个数:0—n个) 即模块名为全局名:不与已有 的全局名同名 2. 模块名常以_MODULE作为后缀 提供共享符号常量、变量、派生类型定义 提供共享过程 例: 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 SWAP END MODULE MY_ MODULE 模块和子程序之间的区别: (1)模块应先定义。 (2)模块中无可执行语句 (3)模块不给其它单位调用, 而用USE语句引用 非执行单位 编译时完成 可执行语句只能在内部子程序内 先输入,不能放在其它单位的底部 引用格式 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语句共享模块中的信息 复制共享 (按名共享存储单元) 10.2 USE语句 4、USE语句位置: 单位定义语句之后,IMPLICIT NONE语句之前 程序单位的第二句 只能在模块内使用 5、可以对模块内说明的变量、派生类型及其成员的使用范围进行限制。 加PRIVATE(专用)属性,模块以外的程序单元不能使用。 否则为PUBLIC (公用)属性。 通过虚实结合传递数据: FUNCTION AVER3(A,B,C) RESULT(AVER_VALUE) IMPLCIT NONE REAL ::A,B,C REAL ::AVER_VALUE AVER_VALUE=(A+B+C)/3.0 END FUNCTION FUNCTION MAX3(A,B,C) RESULT(MAX_VALUE) IMPLCIT NONE REAL ::A,B,C REAL ::AVER_VALUE MAX_VALUE=A IF(BMAX_VALUE)MAX_VALUE=B IF(CMAX_VALUE)MAX_VALUE=C END FUNCTION 例6-8读入3个数,调用函数AVER3求平均值,调用函数MAX3求最大值 !主程序 PROGRAM AVER_MAX_1 IMPLICT NONE REAL::A,B,C REAL AVER,MAX3 READ *,A,B,C PRINT *,AVER3(A,B,C),MAX3(A,B,C) END PROGRAM 数据传递:由虚实按顺序共享存储单元 各单位
文档评论(0)