fortran90程序设计chapter14

fortran90程序设计chapter14

ID:13169225

大小:254.50 KB

页数:13页

时间:2018-07-21

fortran90程序设计chapter14_第1页
fortran90程序设计chapter14_第2页
fortran90程序设计chapter14_第3页
fortran90程序设计chapter14_第4页
fortran90程序设计chapter14_第5页
资源描述:

《fortran90程序设计chapter14》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、14.1公用区第十四章公用区和存储关联14.1公用区一个FORTRAN90程序,常常由多个程序单位(主程序、内部子程序、外部子程序、模块子程序等)组成,这些程序单位并不是一段孤立的程序代码,它们之间需要通过数据交换建立联系,相互影响,相互配合,共同完成一个特定任务。到目前,我们可通过主程序的全局变量或子程序的形实参结合方式实现程序单位之间的数据交换。对于大批量数据,这种数据交换方式的交换速度比较慢,一般只实用于所交换数据量比较少的情形。在求解某些实际问题时,程序单位之间需要进行大量的数据交换,这种情况下使用全程变量或形实参结合方式交换数据的效率

2、较低。FORTRAN语言提供公用区数据交换方式,可高效完成大批量数据的交换任务。使用公用区可快速、方便、灵活地实现程序单位之间的数据交换。使用公用区交换数据的方法是:如果程序单位A要将数据传递给程序单位B,必须先将数据传递给公用区,然后程序单位B在从公用区获得所需数据。公用区是程序单位之间交换数据的桥梁和中转站,通过公用区将程序单位紧密地联系在一起,如图14-1所示。公用区交换数据交换数据程序单位A程序单位B图14-1公用区与程序单位的关系FORTRAN90提供两种公用区:无名公用区和有名公用区。无名公用区指没有名称的公用区,一个程序只能有一个

3、无名公用区。有名公用区指有名称的公用区,一个程序可有多个有名公用区。在程序的说明部分使用COMMON语句来设置无名或有名公用区。COMMON语句是一个非执行语句。各程序单位内的数据对象名称(变量名、数组名、数组说明符)是相互独立的,它们有各自的存储单元,即使同名也没有任何关系。如果我们在程序单位内使用COMMON语句,则使不同程序单位内的有关数据对象共同占用公用区中的存储单元,达到共享数据的目的。使用公用区求某班学生(人数不定)平均成绩的示例程序如下:PROGRAMmainINTEGER,PARAMETER::max=50!定义对多学生人数常量

4、maxCOMMONscore(max),n!在无名公用区设置成绩数组score和实际人数n!调用input子例行程序输入学生成绩数据至数组scoreCALLinput!无参子例行程序调用可取消括号!调用average函数统计平均成绩,使用公用区score数组数据和人数n39114.1公用区av=average()!无参函数调用不能取消括号PRINT*,'平均成绩为:',avCONTAINS!定义输入成绩数据的无参子例行程序input,使用公用区数据SUBROUTINEinput()!在无名公用区设置成绩数组sc和实际人数m,依次与score和n

5、对应COMMONsc(max),mINTEGERi,xm=0READ*,xDOWHILE(x/=-1)m=m+1sc(m)=xREAD*,xENDDOENDSUBROUTINE!定义统计平均成绩的函数average,使用公用区数据FUNCTIONaverage()!在无名公用区设置成绩数组sc和实际人数n,依次与score和n对应COMMONsc(max),nINTEGERi,sumsum=0DOi=1,nsum=sum+sc(i)ENDDOaverage=sum/nENDFUNCTIONEND14.1.1COMMON语句COMMON语句的一般

6、格式是:→COMMON[/[<公用区名>]/]<变量表>{[/[<公用区名>]/]<变量表>}<变量表>→<变量>{,<变量>}<变量>→<变量名>∣<数组名>∣<数组说明符>说明:①一个COMMON语句可设置一个或多个公用区,公用区用符号//命名,每个公用区可设置一个或多个变量,变量之间用逗号“,”间隔,公用区变量声明只允许普通变量、数组、数组说明符。无名公用区可以仅写两个连续斜杠//,如果第一个公用区是无名公用区,则两个斜杠//可取消。39114.1公用区下列COMMON语句是合法的:COMMONm,n,x,y,arr(

7、30)!设置一个无名公用区COMMON//m,n,x,y,arr(30)!设置一个无名公用区COMMON/data/a,b(10),n!设置1个有名公用区data!设置1个无名公用区和2个有名公用区data1、data2COMMONn,p/data1/a,x(10)/data2/r,s!第一个公用区为无名公用区COMMON//num,p/data1/a,x(10)/data2/r,s!第一个公用区为无名公用区COMMON/data1/a,x(10)//num,p/data2/r,s!第二个公用区为无名公用区COMMON/data1/a,x(10

8、)/data2/r,s//num,p!第三个公用区为无名公用区!公用区变量类型遵循I-N隐含规则②一般情况下,COMMON语句中变量的类型遵循I-N隐

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。