接口与模块
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接口与模块
苏州科技大学计算中心 03/04第一学期
第十三章
13.2 模块
接口界面功能类似EXTERNAL语句,为主调程序提供外部子程
概述 格式
序有关接口信息,接口界面可看作是EXTERNAL语句的扩充, 用接口界面块可提高程序可读性。 接口界面块可用在主程序单元、模块单元、外部子程序单元
13.1 接口/概述
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
说明
示例
<接口界面块>→INTERFACE <接口界面体> END INTERFACE <接口界面体>→ {<函数接口界面定义>∣<子例行程序接口界面定义>} <函数接口界面定义>→ [<类型>] FUNCTION <函数名>(<形式参数表>) <函数名形式参数类型说明> END FUNCTION <子例行程序接口界面定义>→ SUBROUTINE <子例行程序名>(<形式参数表>) 13.1 接口/格式 <形式参数类型说明> END SUBROUTINE
从键盘输入数据和向屏幕输出数据,适用于数据量比较小的情况,
程序文件exam1.f90
第十二章
文件与设备
苏州科技大学计算中心
03/04第一学期
12.1 概述
程序离不开数据,有效组织数据输入是设计和编写程序的基本要求。 ! 使用文件形式组织数据 程序文件exam2.f90 PROGRAM exam2 从键盘输入数据和向屏幕输出数据,适用于数据量比较小的情况, PARAMETER(max=100) 不能与其它软件或程序交换数据信息。 REAL ::score(max),n,sum=0.0,ave OPEN(1,FILE='exam2.in') 从文件输入输出数据,适用于数据量比较大的情况,便于同其它软 OPEN(2,FILE='exam2.out') 件或程序交换数据信息。 READ(1,*) n IF (n<=max) THEN 输入数据文件exam2.in 使用键盘屏幕组织数据,程序示例。 READ(1,*) (score(I),I=1,n) 5 DO I=1,n 使用文件形式组织数据,程序示例。 78.5,55.0,85.5,90.0,68.5 sum=sum+score(I)
13.1 接口
接口界面功能类似EXTERNAL语句,为主调程序提供外部子程
概述 格式
序有关接口信息,接口界面可看作是EXTERNAL语句的扩充, 提供的信息比EXTERNAL丰富。
使用接口界面块可提高程序可读性。 接口界面块可用在主程序单元、模块单元、外部子程序单元
说明
示例
中,以指明主调程序与被调用外部子程序之间的接口信息,以 便保证外部子程序的正确使用。
ENDDO ave=sum/n 12.1 概述/示例2 WRITE(2,*) '学生成绩有:' WRITE(2,100) (score(I),I=1,n) WRITE(2,200) ave 100 FORMAT(1X,F5.1,:,','\) 200 FORMAT(1X,'平均分数:',F5.1) ELSE PRINT*,‘ 数据太多 , 超出空间要求。 ’ ENDIF END 第十二章 文件与设备
说明
示例 属性
中,以指明主调程序与被调用外部子程序之间的接口信息,以 便保证外部子程序的正确使用。
使用
13.2 模块/概述
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
12.1 概述
程序离不开数据,有效组织数据输入是设计和编写程序的基本要求。
!使用键盘屏幕组织数据 不能与其它软件或程序交换数据信息。 PROGRAM exam1 从文件输入输出数据,适用于数据量比较大的情况,便于同其它软 PARAMETER(n=5) 件或程序交换数据信息。 REAL ::score(n),sum=0.0,ave 键盘 READ(*,*) (score(I),I=1,n) 使用键盘屏幕组织数据,程序示例。 !score=(/78.5,55.0,85.5,90.0,68.5/) 78.5,55.0,85.5,90.0,68.5 使用文件形式组织数据,程序示例。 DO I=1,n sum=sum+score(I) 屏幕 ENDDO 12.1 概述/示例1 学生成绩有: ave=sum/n 78.5, 55.0, 85.5, 90.0, WRITE(*,*) '学生成绩有:' 68.5 WRITE(*,100) (score(I),I=1,n) 平均分数: 75.5 WRITE(*,200) ave 100 FORMAT(1X,F5.1,:,','\) 200 FORMAT(1X,'平均分数:',F5.1) END
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
对于一些常规函数和子例行程序 ,使用时不需要用INTERFACE 接口声明它们的接口信息,但遇到以下情况必须在主调程序中 使用接口界面块: 外部函数返回结果是一个数组,即外部函数名类型为数组。 外部函数返回结果是一个字符串 ,且长度不是常数 ,也不是假 定长度(*)。 外部函数返回结果是一个指针。 外部子程序形式参数 (哑元)是一个数组片段。 13.1 接口/说明 外部子程序实在参数是关键字变元或是缺省的可选变元。 外部子程序扩展了赋值号的使用范围。 外部子程序参数个数不确定。 外部子程序改变参数传递位置。
说明
示例
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
说明
示例
PROGRAM main !主程序单元,求三个数最大值 IMPLICIT NONE INTERFACE FUNCTION max3(a,b,c) IMPLICIT NONE INTEGER max3,a,b,c END FUNCTION END INTERFACE INTEGER x,y,z READ*,x,y,z WRITE(*, "(1X,'三个数的最大值为:',I4)") max3(x,y,z) 13.1 接口/示例 END FUNCTION max3(a,b,c) !求三个数最大值外部函数子程序 INTEGER max3,a,b,c,max max=a IF (B>max) max=B IF (C>max) max=C max3=max END FUNCTION
苏州科技大学计算中心 03/04第一学期
第十三章
13.2 模块
接口界面功能类似EXTERNAL语句,为主调程序提供外部子程
概述 格式
序有关接口信息,接口界面可看作是EXTERNAL语句的扩充, 用接口界面块可提高程序可读性。 接口界面块可用在主程序单元、模块单元、外部子程序单元
13.1 接口/概述
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
说明
示例
<接口界面块>→INTERFACE <接口界面体> END INTERFACE <接口界面体>→ {<函数接口界面定义>∣<子例行程序接口界面定义>} <函数接口界面定义>→ [<类型>] FUNCTION <函数名>(<形式参数表>) <函数名形式参数类型说明> END FUNCTION <子例行程序接口界面定义>→ SUBROUTINE <子例行程序名>(<形式参数表>) 13.1 接口/格式 <形式参数类型说明> END SUBROUTINE
从键盘输入数据和向屏幕输出数据,适用于数据量比较小的情况,
程序文件exam1.f90
第十二章
文件与设备
苏州科技大学计算中心
03/04第一学期
12.1 概述
程序离不开数据,有效组织数据输入是设计和编写程序的基本要求。 ! 使用文件形式组织数据 程序文件exam2.f90 PROGRAM exam2 从键盘输入数据和向屏幕输出数据,适用于数据量比较小的情况, PARAMETER(max=100) 不能与其它软件或程序交换数据信息。 REAL ::score(max),n,sum=0.0,ave OPEN(1,FILE='exam2.in') 从文件输入输出数据,适用于数据量比较大的情况,便于同其它软 OPEN(2,FILE='exam2.out') 件或程序交换数据信息。 READ(1,*) n IF (n<=max) THEN 输入数据文件exam2.in 使用键盘屏幕组织数据,程序示例。 READ(1,*) (score(I),I=1,n) 5 DO I=1,n 使用文件形式组织数据,程序示例。 78.5,55.0,85.5,90.0,68.5 sum=sum+score(I)
13.1 接口
接口界面功能类似EXTERNAL语句,为主调程序提供外部子程
概述 格式
序有关接口信息,接口界面可看作是EXTERNAL语句的扩充, 提供的信息比EXTERNAL丰富。
使用接口界面块可提高程序可读性。 接口界面块可用在主程序单元、模块单元、外部子程序单元
说明
示例
中,以指明主调程序与被调用外部子程序之间的接口信息,以 便保证外部子程序的正确使用。
ENDDO ave=sum/n 12.1 概述/示例2 WRITE(2,*) '学生成绩有:' WRITE(2,100) (score(I),I=1,n) WRITE(2,200) ave 100 FORMAT(1X,F5.1,:,','\) 200 FORMAT(1X,'平均分数:',F5.1) ELSE PRINT*,‘ 数据太多 , 超出空间要求。 ’ ENDIF END 第十二章 文件与设备
说明
示例 属性
中,以指明主调程序与被调用外部子程序之间的接口信息,以 便保证外部子程序的正确使用。
使用
13.2 模块/概述
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
12.1 概述
程序离不开数据,有效组织数据输入是设计和编写程序的基本要求。
!使用键盘屏幕组织数据 不能与其它软件或程序交换数据信息。 PROGRAM exam1 从文件输入输出数据,适用于数据量比较大的情况,便于同其它软 PARAMETER(n=5) 件或程序交换数据信息。 REAL ::score(n),sum=0.0,ave 键盘 READ(*,*) (score(I),I=1,n) 使用键盘屏幕组织数据,程序示例。 !score=(/78.5,55.0,85.5,90.0,68.5/) 78.5,55.0,85.5,90.0,68.5 使用文件形式组织数据,程序示例。 DO I=1,n sum=sum+score(I) 屏幕 ENDDO 12.1 概述/示例1 学生成绩有: ave=sum/n 78.5, 55.0, 85.5, 90.0, WRITE(*,*) '学生成绩有:' 68.5 WRITE(*,100) (score(I),I=1,n) 平均分数: 75.5 WRITE(*,200) ave 100 FORMAT(1X,F5.1,:,','\) 200 FORMAT(1X,'平均分数:',F5.1) END
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
对于一些常规函数和子例行程序 ,使用时不需要用INTERFACE 接口声明它们的接口信息,但遇到以下情况必须在主调程序中 使用接口界面块: 外部函数返回结果是一个数组,即外部函数名类型为数组。 外部函数返回结果是一个字符串 ,且长度不是常数 ,也不是假 定长度(*)。 外部函数返回结果是一个指针。 外部子程序形式参数 (哑元)是一个数组片段。 13.1 接口/说明 外部子程序实在参数是关键字变元或是缺省的可选变元。 外部子程序扩展了赋值号的使用范围。 外部子程序参数个数不确定。 外部子程序改变参数传递位置。
说明
示例
第十三章
接口与模块
苏州科技大学计算中心
03/04第一学期
13.1 接口
概述 格式
说明
示例
PROGRAM main !主程序单元,求三个数最大值 IMPLICIT NONE INTERFACE FUNCTION max3(a,b,c) IMPLICIT NONE INTEGER max3,a,b,c END FUNCTION END INTERFACE INTEGER x,y,z READ*,x,y,z WRITE(*, "(1X,'三个数的最大值为:',I4)") max3(x,y,z) 13.1 接口/示例 END FUNCTION max3(a,b,c) !求三个数最大值外部函数子程序 INTEGER max3,a,b,c,max max=a IF (B>max) max=B IF (C>max) max=C max3=max END FUNCTION