nullnull第九章
数据共享null数据共享的基本概念 数据共享的作用 节约内存 高效地传递大量数据 数据共享的类型 不同的数据共享同一内存空间 不同的程序模块共享同一程序代码 保持定义的一致性nullFortran语言提供的数据共享机制 子程序(function、subroutine) 包含语句(include) 公用区(common) 数据块子程序(block data) 等价语句(equivalence) 模块(module)null包含语句(include)作用:通知编译器从其它文件中拷贝语句 用module代替exam_9_1 不安全(undesirable in Fortran 90) 保证变量在各个程序模块之间定义的一致性revise, newfinal<包含语句>→include <包含文件>null公用区(common)<无名公用区>→common [/ /]<变量表><有名公用区>→common /<公用区名>/<变量表><变量表>→<变量>{,<变量>}<变量>→<变量名>|<数组名>|<数组说明符>null 使用规则 一个Fortran程序只能有一个无名公用区 公用区中变量的限制 公用区中的变量按存储顺序进行关联 不能是形参、函数名 不能是不确定大小的量(比如可分配数组) 不能有parameter属性exam_9_2公用区(common)null公用区(common)作用:在不同的程序单元中多个变量共用同一存储单元 提供全局变量,高效地传递大量数据 共用临时的工作空间以节约内存reviseback3.fornull 解决办法每一个使用公用区的程序单元必须包含同样的变量说明,否则极易出错 借助include语句 变量名冲突问题back3.forfcommon 用模块(module)代替公用区(common) 不安全(undesirable in Fortran 90)null数据快子程序(block data)<数据块>→block data [<名称>]
[<说明和赋初值部分>]
end [block data [<名称>]]作用:给有名公用区中的非指针变量赋初值 无名公用区中的变量不能赋初值(Visual Fortran可以)null数据快子程序(block data) 使用规则 一个Fortran程序只能有一个无名数据快子程序 不能有可执行语句 可给多个有名公用区赋初值 一个有名公用区不能在多个数据快子程序中赋初值(Visual Fortran可以)exam_9_3null等价语句(equivalence)<等价语句>→equivalence (<变量表>)
{,(<变量表>)} 使用规则 等价变量的首地址相同,具体值由数据类型决定 不能出现矛盾的等价关系 不能分离连续的存储空间exam_9_4null等价语句(equivalence)作用:在同一程序单元中多个变量共用同一存储单元 节约内存(别名) 类型转换 不安全(undesirable in Fortran 90)back3.for指针transferexam_9_5null声明和初始化全局数据模块(module)声明派生类型包含常用的子程序(子程序库)声明外部子程序的接口块数据共享代码共享(encapsulation)数据封装模块的作用null模块(module) <模块定义>→module <模块名>
<模块数据和模块子程序说明>
[ contains
<内部子程序>
{<内部子程序>}]
end module [<模块名>]exam_9_6null模块(module) 模块的使用:use模块中的名称可以改变(别名)模块中的名称可以指定唯一属性(only)例子— imsl和cxml库exam_9_7null 数据抽象(data abstract)— type用Fortran90实现面向对象的功能 数据隐藏(data hiding)— public, private 数据封装(encapsulation)— module + data hiding 继承和扩展(inheritance and extensibility)—
super type, operator overloading, generic procedure 多态(polymorphism)— generic overloading 可重用性(reusability)— module 不支持动态绑定(dynamic binding)exam_9_8exam_9_9, exam_9_10exam_9_11
本文档为【第九章_数据共享】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。