当前位置:首页 > Fortran语言基础 - 图文
山东建筑大学
a=1 b=2
call ShowCommon() stop end
subroutine ShowCommon() implicit none
integer :: num1, num2
common num1, num2 ! 定义a,b是全局变量中的第1及第2
个变量
write(*,*) num1, num2 return end
程序执行结果:
1 2 注释:
(1) 取用全局变量,是根据他们声明时的相对位置关系,而不是变量名
称对应。
(2) 由于全局变量是使用地址对应的方法在程序中共享数据,在子程序
中若仅使用部分全局变量,也必须声明全部全局变量。这在全局变量很多的情况下是非常麻烦的,解决的方法是,把变量归类放在彼此独立的COMMON中。 (3) 全局变量不能用DATA赋值;
6.3.2 BLOCK DATA命令
全局变量不能直接在子程序或主程序中使用DATA来设值初值。全局变量的赋值采用BLOCK DATA语句。其结构为
BLOCK DATA NAME ! NAME可以省略 IMPLICIT NONE INTEGER …
49
数值分析程序设计——Fortran基础
REAL … COMMON …
COMMON /GROUP1/… DATA VAR1,VAR2, … …. ....
END BLOCK DATA NAME 看一个实例:
program ex0812 implicit none integer :: a,b
common a,b ! a,b放在不具名的全局变量空间中 integer :: c,d
common /group1/ c,d ! c,d放在group1的全局变量空间中 integer :: e,f
common /group2/ e,f ! e,f放在group2的全局变量空间中 write(*,\ stop end block data implicit none integer a,b
common a,b ! a,b放在不具名的全局变量空间中 data a,b /1,2/ ! 设定a,b的初值 integer c,d
common /group1/ c,d ! c,d放在group1的全局变量空间中 data c,d /3,4/ ! 设定c,d的初值 integer e,f
common /group2/ e,f ! e,f放在group2的全局变量空间中 data e,f /5,6/ ! 设定e,f的初值
50
共分享92篇相关文档