1 ! Program to test COMMON and EQUIVALENCE.
4 real (kind
=8) b(5), c(5)
6 equivalence (a(1), b(2))
10 call common_par (a
, b
,c
)
15 ! Use common block to pass values
16 subroutine common_pass
18 real (kind
=8) b(5), c(5)
20 equivalence (a(1), b(2))
21 if (any (a
.ne
. (/100,100,100,100,200,200,200,200/))) call abort
24 ! Common variables as argument
25 subroutine common_par (a
, b
, c
)
26 real (kind
=8) a(8), b(5), c(5)
27 if (any (a
.ne
. (/100,100,100,100,200,200,200,200/))) call abort
28 if (any (b
.ne
. (/100,100,100,100,100/))) call abort
29 if (any (c
.ne
. (/200,200,200,200,200/))) call abort
33 subroutine global_equiv
34 real (kind
=8) a(8), b(5), c(5), x(8), y(4), z(4)
35 common /com2
/b
, c
, y
, z
36 equivalence (a(1), b(2))
37 equivalence (x(4), y(1))
42 if (any (a
.ne
. (/100,100,100,100,200,200,200,200/))) call abort
43 if (any (x
.ne
. (/200,200,200,300,300,300,300,400/))) call abort
47 subroutine local_equiv
48 real (kind
=8) a(8), b(10)
49 equivalence (a(1), b(3))
52 if (any (a
.ne
. (/100,100,100,200,200,200,200,200/))) call abort