Fortran语言基础教程(第12-13章)

合集下载

fortran 语言编程

fortran 语言编程

fortran 语言编程Fortran 语言编程Fortran(Formula Translation)是一种面向科学计算和工程计算的高级编程语言。

它于1957年诞生于IBM,是最早被广泛采用的科学计算语言之一,目前已经发展到第四个版本(Fortran 2018)。

Fortran是一种编译型语言,它通过编写源代码并使用编译器将其转换成机器语言来执行。

本文将详细介绍Fortran语言的基础知识、语法规则和常用的编程技巧,以帮助读者了解和掌握这门强大的科学计算语言。

第一步:安装Fortran编译器要开始编写和运行Fortran程序,首先需要安装Fortran编译器。

有多种Fortran编译器可供选择,其中最常用的是GNU Fortran(gfortran)和Intel Fortran Compiler(ifort)。

可以从官方网站或其他可信的来源获得这些编译器的安装程序,并按照提示进行安装。

第二步:编写并编译Fortran程序在开始编写Fortran程序之前,需要了解Fortran的基本语法规则。

Fortran使用固定格式或自由格式,固定格式的源代码按照列格式排列,每行的前6列被保留用于行号和注释,从第7列开始是可执行代码。

自由格式没有列格式的限制,更加灵活,但在编译阶段需要指定自由格式。

下面是一个简单的Fortran程序示例,用于计算并输出两个数的和:fortranprogram additionimplicit noneinteger :: a, b, sumprint *, "Enter two numbers:"read *, a, bsum = a + bprint *, "The sum is:", sumend program addition将以上代码保存为一个以.f90为后缀名的文件(例如addition.f90),然后使用编译器将其编译成可执行程序。

FORTRAN语言自学基础

FORTRAN语言自学基础

《FORTRAN语言》自学提纲第一章1 FORTRAN基础1. 一个FORTRAN程序由一个主程序或一个主程序与若干个子程序组成。

但一个完整的FORTRAN程序只能有一个主程序,主程序的第一个语句是PROGRAM语句,用以说明主程序的名称。

这个语句也可以省略,省略时默认为主程序的名称为MAIN。

2.FORTRAN的子程序主要有三种:⑴函数子程序,其第一个语句为FUNCTION;⑵子例行子程序,其第一个语句为SUBROUTINE;⑶数据块子程序,其第一个语句为BLOCK DA TA。

主程序与各个子程序可以独立编译,最后再链接成一个可执行程序。

在编写并输入一个FORTRAN程序时,既可以将主程序与各个子程序存放在一个文件中,也可以将它们分别存放在不同的文件中。

但必须注意,主程序与各个子程序都是独立的程序单位,每个程序单位的最后一行必须用END语句作为结束。

在主程序中,虽然END语句还具有使程序停止运行的作用,但由于一个程序单位只能在最后一行有END语句,因此,在程序的其它位置处需要停止运行时,只能用STOP语句,不能用END语句。

同样的道理,在子程序中,虽然END语句还具有使程序流程返回到调用程序的作用,但在子程序的其它位置(不是最后一行)需要返回到调用程序时,只能用RETURN语句,不能用END语句。

3.FOPTRAN源程序的书写格式有严格的规定。

⑴一行中第一列为“C”或“*”时,该行被认为是注释行。

注释行可以写在四个区中的一个区,且注释行可以出现在程序单位的任何位置。

但注释行不能有续行,需要时可以将连续若干行都定义为注释行。

⑵FORTRAN语句部分不能占用标号区及续行标志区,只能从第七列开始。

当语句太长时,可以使用续行。

在继续行的标号区内必须为空白(即继续行不允许有标号),标号只能出现在起始行上。

⑶起始行与继续行或各继续行之间的空格不起作用,因此,对于一般的语句,可以不必到72列才转为继续行,继续行也不必一定要从第7列接着写,但是,包括在引号内的字符串中的空格是有效的,因此,对于字符串要使用继续行时应特别注意,最好写到一行的72列时再转为继续行,且要从继续行的第7列接着写。

Fortran 程序基础

Fortran 程序基础
(3)引用数组片段 数组名(下标范围)
2021/7/1
26
数组操作
PROGRAM TEST IMPLICIT NONE ! 变量定义 REAL :: A1, A2,A3,A4,A5,B(5,5) READ(*, *)A1,A2,A3,A4,A5 ! 数组片断的引用 B(1,1:5) = A1 B(2,1:5) = A2 B(3,1:5) = A3 B(4,1:5) = A4 B(5,1:5) = A5
数组可用DIMENSION语句定义 DIMENSION runoff(365) Real runoff ※使用数组必须先定义
2021/7/1
25
数组操作
数组引用
(1)引用数组元素 数组名(下标),如 runoff(15),rain(3,5)
(2)引用全部数组 数组名,如: real B(10),A(10) B=A
2021/7/1
8
数据类型及I/0格式
变量的定义及类型说明:
(1)类型说明语句
integer year, month, day
real runoff
character*10 station
(2)隐含约定
I~N 规则
2021/7/1
9
数据类型及I/0格式
输入、输出语句
READ(设备号, 格式说明或格式说明语句标号) [变量列表] WRITE (设备号, 格式说明或格式说明语句标号) [变量列表]
其他程序控制语句 End Pause stop
2021/7/1
22
Fortran程序流程控制
实例分析
(1)1~100求和 (2)输入5个数,按大小排序
2021/7/1
23
数组操作

Fortran语言基本语法

Fortran语言基本语法

Fortran语⾔基本语法a、Fortran 之基本规定:在Fortran的规定中,程序的开始需先宣告变量形式,接着才能⽤这些变量来写程序内容,再整个程序中的第⼀⾏必须空⽩,除⾮键⼊英⽂字母c或*⽤以表⽰那⼀列为说明项⽽⾮实际之计算式⼦。

第⼆⾏⾄第五⾏为地址⾏,可⽤数字标⽰其地址,⽤以执⾏程序时控制之⽤。

第六⾏⽤以填⼊⼀个⾮零的数字或字母表⽰连结上⼀列的式⼦。

第7⾏⾄72⾏则为程序主体之所在,若不⼩⼼在72⾏之后键⼊程序Fortran将不于理会。

再程序的最后⼀列⽤ end命令告知程序终了。

b、变量(Variable)Fortran语法中的变量相当于函数上变量,但其种类则更多,举凡复数(complex)、整数(integer)、实数(real)、逻辑(logical)和字符串(character)等等。

对于变量的规定是变量的第⼀个字母为英⽂字母,其长度最长为6个字,除刚刚说的第⼀个字之外,其余的可为数字或字母,以下为⼏个简单范例: Integer count,pg1real time,po2pc、运算符号与内定函数:Fortran 基本的运算符号如下:+加法;-减法;*乘法;/ 除法**平⽅;**(n) n次⽅除了上列之基本运算符号之外,数值计算上常⽤之函数如三⾓等等亦以写成内定含式,常⽤的以下⼏项:log 对数函数;exp 指数函数;sin、cos、tan、cot、sec和csc等三⾓函数;abs 绝对值;asin、acos、atan、acot、asec和acsc等反三⾓函数。

D、控制结构:结构化Fortran有⼀些控制的结构,关系控制即是其中之⼀种,⽤以⽐较两变量之间关系,包含有:.lt. 表⽰⼩于.gt. 表⽰⼤于.eq. 表⽰等于.le. 表⽰⼩于或等于.ge. 表⽰⼤于或等于.ne. 表⽰不等于另⼀种重要的控制为逻辑控制,包含有:.not. .not. p => 若p为⾮真则为真.and. p .and. q => p和q为真则为真.or. p .or. q => p或q其⼀为真则为真.eqv. p .eqv. q => p和q同为真或同为⾮真则为真.neqv. p .neqv. q => p或q之中⼀为真⼀为⾮真则为真e、输⼊与输出结构:> Fortran 经常会有⼀些数值需要输⼊或计算的值需要输出,这时 Fortran 便提供了⼀些格式码好让使⽤者将欲输⼊或输出的数值针对其变量的特性作较佳的安排设计,兹举例如下,其中输出之资料格式完全相同:a、write(*,10) i,j,k10 format (1x,2I5,I3)b、assign 10 to ifmt10 format (1x,2I5,I3)write (*,ifmt) i,j,kc、write (*,'(1x,2I5,I3)') i,j,kd、character*11 fmtchfmtch='(1x,2I5,I3)'write (*,fmtch) i,j,k其中X表⽰空格之意,1x即是空⼀格, write为输出的指令,若改为 read 则为输⼊指令,I为整数的格式码, 2I5 表⽰输出的总位数为五,⽽这样的格式重复两次,其余尚有不同之各种格式码,常⽤的有:1. F 格式码,⽤于实数变量,其⼀般型态为 rFw.d ,其中F表实数,r为重复次数,w为总位数,⽽d为⼩数字数。

Fortran基础

Fortran基础

P2 例1.3 求两个正整数 m,n (m>n)最大公约数 最大公约数
m=n*q+r (q>=0,r>=0,r<n) r=0, 若r=0,则n为最大公约数
输入m,n 第1步 输入m,n
除以n的余数r 第2步 求m除以n的余数r 第3步 若 r=0,转向第6步 否则执行第4步 r=0,转向第6 否则执行第4 转向第 送给m, m,将 送给n 第4步 将n送给m,将r送给n 返回第2 第5步 返回第2步 输出n 第6步 输出n
Fortran90 语言程序设计
第一章 Fortran 程序设计基础
• Fortran语言出现的历史背景 语言出现的历史背景
• Fortran语言是在世界上广泛应用的、出现最 语言是在世界上广泛应用的、 语言是在世界上广泛应用的
早的计算机语言之一。Fortran 是formula 早的计算机语言之一。 translator (公式翻译器)的缩写,最适于数 公式翻译器)的缩写, 值计算 。 • 20世纪 年代第一个 世纪50年代第一个 语言版本问世, 世纪 年代第一个Fortran 语言版本问世, 多种版本的Fortran ,互不兼容, 互不兼容, 相继出现了 多种版本的 从而标准化便显得十分迫切 ,其中 比较流行 的是Fortran 66(1966年)和Fortran 77。 的是 ( 年和 。 • 1991年推出了 Fortran90版本 吸收其他高级 版本, 年推出了 版本 语言的优点 ,使古老的语言焕发了新的活力。 使古老的语言焕发了新的活力。
P6 例 1.6 输入 个数,找出其中最大者。 输入10个数,找出其中最大者。 个数
输入max 输入 1→i 当i≤9时 时 输入x 输入 x>max? Y N x→max i+1→i 输出max 输出

fortran教程.ppt

fortran教程.ppt

N-S 图——结构化流程图 S=0
例2 用N-S图表示
N=1
S+1/N= S
N+1= N
直到N>100为止
打印 S 值
例1 用N-S图表示
N=0 T=0
输入 A A+T →T N+1 →N 直到N≥100 为止 打印 T
例3
L=1
N=1
S=1
SUM = 1
L+2 → L
-S → S
N+1 → N
SUM+S/L →SUM
(3)输入一个数给“收入变量”A
(4)将A和T的值相加,其和值放在变量T中 A+TT;
(5)使N的值加1,即N+1 N(N的值表示已累加数据的个数)
(6)若N﹤100,则返回(3)继续执行以后各步,否 则转到执行(7)
(7)打印出总和T的值
以上算法体现“迭代”的思想—计算机算法的最大特 点
例2 求 1
将高级语言程序(源程序)转换为机器语言程序(目标程序)
的工作由“编译程序”来完成。 编译
执行
高级语言程序
机器指令目标程序
计算结果
编译程序 (预先存如电脑)
裸机
用户源程序
操作系统
高级语言编译系统
计算机系统与操作系统关系示意图
§ 1-2 算法(Algorithm)与程序设计(Programming)
1. 近50年的丰富积累,资源不浪费,对原有程 序向下兼容。而C语言与Matlab才20多年
2. FORTRAN书写和语法要求严格,更适合于 严谨的科学计算。而C对数组不提供越界检查, 容易出错,而且不容易查出
3. FORTRAN 90~95可以直接对矩阵和复数进行 运算。而C语言则要用多重循环

Fortran第12章

Fortran第12章

4、打开文件时的状态分类:老文件、新文件 老文件:打开文件时,文件已存在 新文件:打开文件时,文件不存在
注意:文件应先连接(即打开)或预连接 ,再读写
12.1.3 逻辑设备
1.特殊设备号:由系统预先定义 用设备号5定义键盘,设备号6定义显示器 *即可定义键盘又可定义显示器 注意:这些设备是预连接的,不需要打开就可以直接使用 2. 内部文件的设备号:不需要打开就可以直接使用
OPEN(2,FILE=‘A.DAT’,ACCESS=‘DIRECT’, FORM=FORMATTED’,RECL=12)
RECL:规定记录的统一长度 例:无格式顺序文件OPEN语句的最简形式 OPEN(2,FILE=‘A.DAT’, ‘FORM=UNFORMATTED’) 例:无格式直接文件OPEN语句的最简形式
=‘NO’:遇下一个输入语句不换行读取
WRITE的选项 IOSTST=IT IT为整型变量执,执行此语句时获得数 值,<0表遇到文件结束信息 >0 此操作发生错误 =0 执行成功 无此项,读写发生错误将报错,并停止运行 ADVANCE=‘YES’(默认值):遇下一个输出语句换行 输出 =‘NO’:遇下一个输出语句不换行输出
例:无格式顺序文件OPEN语句的最简形式 OPEN(2,FILE=‘A.DAT’, FORM=‘UNFORMATTED’) 例:无格式直接文件OPEN语句的最简形式 OPEN(2, FILE=‘A.DAT’, ACCESS=‘DIRECT’, RECL=16)
2、 READ语句最简写法:
无格式顺序文件、直接文件的READ语句:与有格式的区别是 去掉格式说明这一项 顺序文件READ (设备号)输入表 直接文件READ (设备号,REC=记录号)输入表 例:READ(10)I,J READ(10,REC=3)I,J 3、 WRITE语句最简写法: 例:WRITE(10)I,J WRITE(10,REC=3)I,J

Fortran核心内容教程

Fortran核心内容教程
2015/11/24 18
3.5 常 量
3.5.2 实型常量 (有二种表示形式) ⒈小数形式 例:15.8,-21.05,14.0 ,14.,.17, 0.0 ,… ⒉指数形式(通常表示较大或较小的数) 例:100000000→1.0E+8 0.0000125→1.25E-05 数字部分 指数部分
2015/11/24 16
3.5 常 量
常量——在程序执行期间其值固定不变的量。 Fortran处理六种类型的常量: ⑴整型常量(Integer) ⑵实型常量(Real) ⑶双精度常量(Double precision) ⑷复型常量(Complex) ⑸逻辑型常量(Logical) ⑹字符型常量(Character)
2015/11/24 5
Fortran语言的特征
Fortran语言的最大特性是接近数学公式的自然描 述,在计算机里具有很高的执行效率。 易学,语法严谨。 可以直接对矩阵和复数进行运算。 自诞生以来广泛地应用于数值计算领域,积累了大 量高效而可靠的源程序。 很多专用的大型数值运算计算机针对Fortran做了 优化。 广泛地应用于并行计算和高性能计算领域。 Fortran 90,Fortran 95,Fortran 2003的相继推 出使Fortran语言具备了现代高级编程语言的一些 特性。
2015/11/24 26
3.6 变

⒉显式说明 即用类型说明语句指定变量的类型。 如: Integer——说明变量为整型变量 Real——说明变量为实型变量 Double precision——说明变量为双精度变量 Complex——说明变量为复型变量 Logical——说明变量为逻辑型变量 Character——说明变量为字符型变量
2015/11/24 15
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016/1/7 10
12.2 公用语句
通过上一章的学习,我们知道程序中不同程 序单位之间的数据交换是通过虚实结合来完 成。 另外FORTRAN还可以通过建立公用区的方 法来实现各程序单位之间的数据交换。
公用区和虚实结合比较起来有其缺点——程 序阅读性下降;有其优点——运行速度快 (特别当有大量数据需要传送时)。
2016/1/7 20
12.2.1 无名公用区
6. 在一个程序单位中,分配在公用区中的名字 只能在COMMON语句中出现一次。 例: COMMON A,B,C COMMON A1,B1,C 错误:C在COMMON语句中出现了两次 7. 在不同的程序单位中,无名公用区中的变量 个数可以不一样。但必须保证对应的变量类 型要一致。如: 主程序中有:COMMON X(9), A, B, C, D 子程序中有:COMMON A(4), X(2)
2016/1/7 24
12.2.2 有名公用区
解决方法二:利用有名公用区 主程序: COMMON A, B, C /C2/ J, K, L 子程序1:COMMON A1, B1, C1 子程序2:COMMON /C2/ J2, K2, L2 此时A,B,C仍放在无名公用区中;而J,K,L放 在名为C2的公用区中。 利用有名公用区就避免了无名公用区的弊病, 使之做到公用之中有“专用”,只需在各个 程序单位中做到同名共用区中数据顺序一一 对应即可。
2016/1/7 2
12.1 等价语句 (EQUIVALENCE语句)
例 2: EQUIVALENCE (W, ST), (x, y, z) 例 3: EQUIVALENCE (R, K) R = 1.2 X=K 此时 X = ?
2016/1/7 3
12.1 等价语句 (EQUIVALENCE语句)
15
程序举例:解一元二次方程的根
例12.2 通过虚实结合和公用区两种方式交换数据
主程序: COMMON Z1, Z2 READ*, A1, A2, A3 CALL QUAD(A1, A2, A3) WRITE(*,*) Z1, Z2 END SUBROUTINE QUAD(A,B,C) COMMON X1, X2 P = -B/(2.0*A) Q = SQRT(B*B - 4.0*A*C)/(2.0*A) X1 = P + Q X2 = P - Q END
EQUIVALENCE (W, ST), (x, y, z)
2016/1/7 5
12.1 等价语句 (EQUIVALENCE语句)
等价语句的使用规则:
4. 数组的等价。 例1:DIMENSION a(8), b(4, 2), c(2, 2, 2) EQUIVALENCE(a, b, c) 以上等价语句表明a、b、c三个数组都从第一个 元素起共享八个存储单元。这个等价语句相当 于: EQUIVALENCE(a(1), b(1,1), c(1,1,1)) a,b,c三数组在内存中的存储分配如下:
B(1) B(2) B(3) B(4)
L(1)L(2)L(3)L(4)L(5)L(6)L(7)L(8)
2016/1/7 9
12.1 等价语句 (EQUIVALENCE语句)
等价语句的使用规则:
5. 不能利用等价语句建立矛盾的等价关系。例如: DIMENSION A(10) EQUIVALENCE(X, A(1)), (X, A(3)) × 此处A(1)和A(3)是同一个数组中的元素,A(1)和 A(3)不可能分配同一个存储单元,所以X既要和 A(1)分配的单元相同,又要和A(3)分配的单元 相同,明显不可能。 以下的等价关系也是错误的: DIMENSION A(5), B(10) EQUIVALENCE(A(1), B(2)), (A(3), B(3)) ×
2016/1/7 19
12.2.1 无名公用区
5. 各程序单位COMMON语句中的变量类型必 须按位置一一对应一致才能正确传送数据。 例:以下COMMON语句使用错误 主程序: COMMON A(5), I 子程序: COMMON B(4), J, P 其中数组元素A(5)(实型)和子程序中 的变量J(整型)共用存储单元,还有主程 序中的I(整型)和子程序中的P(实型)共 用存储单元都是错误的。
2016/1/7 14
程序举例:解一元二次方程的根
例12.1 完全通过虚实结合交换数据
主程序: READ*, A1, A2, A3 CALL QUAD(A1, A2, A3, Z1, Z2) WRITE(*, *) Z1, Z2 END 子程序: SUBROUTINE QUAD(A, B, C, X1, X2) P = -B/(2.0*A) Q = SQRT(B*B - 4.0*A*C)/(2.0*A) X1 = P + Q X2 = P - Q END 2016/1/7
2016/1/7 18
12.2.1 无名公用区
3. 用于COMMON语句中的变量在编译时已经 被分配在实在的存储单元中,因此在 COMMON语句中不能出现虚拟参数和可调 数组。 4. 一个程序在运行过程中只有一个无名公用区。 同一个程序单位中可以出现几个COMMON 语句,它们的作用相当于一个。 例: COMMON A, B, C, D COMMON A1, B1, C1, D1 相当于: COMMON A, B, C, D, A1, B1, C1, D1
2016/1/7
23
12.2.2 有名公用区
根据一一对应的原则 解决方法一: 主程序: COMMON A, B, C, J, K, L 子程序1:COMMON A1, B1, C1 子程序2:COMMON A2, B2, C2, J2, K2, L2 此时子程序2中的A2,B2,C2,从语法角度是 必需的,但它们从使用角度却是冗余的。当一 个主程序和若干个子程序间进行大量的数据 传送时,书写COMMON语句就显得很烦琐, 而且也容易出错。
2016/1/7
7
12.1 等价语句 (EQUIVALENCE语句)
例 3: DIMENSION A(2,3), B(4) EQUIVALENCE (A(1, 2), C), (B(1), C) 数组A、B和变量C在内存中的存储分配如下:
A(1,2) A(1,1) A(2,1) C B(1) A(2,2) A(1,3) A(2,3)
第十二章 数据共用存储单元和数据块子程序
2016/1/7
1
12.1 等价语句 (EQUIVALENCE语句)
EQUIVALENCE语句又称等价语句,形式 如下: EQUIVALENCE (变量表1), (变量表2), … 每一对括号内的变量表中,可以是变量 名、数组名或数组元素 例 1: EQUIVALENCE(W,ST) 这条语句指定本程序单位中的变量W和ST 同占一个存储单元,通常称W和ST等价。
2016/1/7 6
12.1 等价语句 (EQUIVALENCE语句)
例 2: DIMENSION A(2,3), B(4) EQUIVALENCE ( A(1, 2), B(1) ) 数组A、B在内存中的存储分配如下:
A(1,2) A(1,1) A(2,1) B(1) A(2,2) A(1,3) A(2,3) B(2) B(3) B(4)
2016/1/7 13
12.2.1 无名公用区
说明: 编译程序在编译时为以上COMMON语句开 辟一个无名公用区; 当把不同的程序单位连接(link)在一起的 时候,不同程序单位在COMMON语句中的 变量按其在语句中出现的先后顺序,依次连 续的占用无名公用区的存储单元。 COMMON语句开辟公用区的主要用途: – 使不同程序单位的变量之间进行数据传送 – 节省存储空间
2016/1/量是相互独 立的,尽管它们的变量名有时相同。但如果 我们在主程序和子程序中都加上一条 COMMON语句的话,如: COMMON X
–此时编译程序在存储区中开辟了一个公用数据 区。这时主程序和子程序中的两个变量X就共用 一个存储单元,而不是相互独立了。
2016/1/7 22
12.2.2 有名公用区
我们已经知道,无名公用区中各程序单位之 间数据传送按公用区中变量名的排列顺序一 一对应进行。但我们在实际使用中常常会遇 到下面的问题。 例:主程序要和两个子程序进行数据传送。 主程序: COMMON A, B, C, J, K, L 子程序1需要与主程序传送A,B,C三个数据; 子程序2需要与主程序传送J,K,L三个数据;
子程序:
2016/1/7
17
12.2.1 无名公用区
二、无名公用区的COMMON语句使用规则 1. COMMON语句是说明语句,必须出现在所 有可执行语句之前。 2. COMMON语句中只允许出现变量名、数组 名或数组说明符(即可用COMMON语句说 明数组)。 例: COMMON A, B, NP(15), LOC(2, 4) 等价于: DIMENSION NP(15), LOC(2, 4) COMMON A, B, NP, LOC
子程序:
2016/1/7
16
程序举例:解一元二次方程的根
例12.3 完全通过公共区交换数据
主程序: COMMON Z1, Z2, A1, A2, A3 READ*, A1, A2, A3 CALL QUAD WRITE(*,*)Z1,Z2 END SUBROUTINE QUAD COMMON X1, X2, A, B, C P = -B/(2.0*A) Q = SQRT(B*B - 4.0*A*C)/(2.0*A) X1 = P + Q X2 = P - Q END
2016/1/7 21
12.2.1 无名公用区
8. 不要混淆EQUIVALENCE和COMMON语句
EQUIVALENCE语句是给同一程序单位中的不 同变量分配同一个存储单元 COMMON语句则用于给不同程序单位的变量分 配同一存储单元 因此不允许在同一程序单位中写: COMMON A, B, C EQUIVALENCE(A, B) 因为COMMON语句把变量A, B, C分配在公用区 的相邻的三个存储单元中,而EQUIVALENCE 语句却又把A, B分配在同一个存储单元中,这是 矛盾的,因此禁止以上写法。
相关文档
最新文档