1* g77 0.5.23 and previous had bugs involving too little space 2* allocated for EQUIVALENCE and COMMON areas needing initial 3* padding to meet alignment requirements of the system. 4 5 call subr 6 end 7 8 subroutine subr 9 implicit none 10 11 real r1(5), r2(5), r3(5) 12 real s1(2), s2(2), s3(2) 13 double precision d1, d2, d3 14 integer i1, i2, i3 15 equivalence (d1, r1(2)) 16 equivalence (r1, s1(2)) 17 equivalence (d2, r2(2)) 18 equivalence (r2, s2(2)) 19 equivalence (d3, r3(2)) 20 equivalence (r3, s3(2)) 21 22 s1(1) = 1. 23 r1(1) = 1. 24 d1 = 10. 25 r1(4) = 1. 26 r1(5) = 1. 27 i1 = 1 28 s2(1) = 2. 29 r2(1) = 2. 30 d2 = 20. 31 r2(4) = 2. 32 r2(5) = 2. 33 i2 = 2 34 s3(1) = 3. 35 r3(1) = 3. 36 d3 = 30. 37 r3(4) = 3. 38 r3(5) = 3. 39 i3 = 3 40 41 call x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3) 42 43 end 44 45 subroutine x (s1, r1, d1, i1, s2, r2, d2, i2, s3, r3, d3, i3) 46 implicit none 47 48 real r1(5), r2(5), r3(5) 49 real s1(2), s2(2), s3(2) 50 double precision d1, d2, d3 51 integer i1, i2, i3 52 53 if (s1(1) .ne. 1.) call abort 54 if (r1(1) .ne. 1.) call abort 55 if (d1 .ne. 10.) call abort 56 if (r1(4) .ne. 1.) call abort 57 if (r1(5) .ne. 1.) call abort 58 if (i1 .ne. 1) call abort 59 if (s2(1) .ne. 2.) call abort 60 if (r2(1) .ne. 2.) call abort 61 if (d2 .ne. 20.) call abort 62 if (r2(4) .ne. 2.) call abort 63 if (r2(5) .ne. 2.) call abort 64 if (i2 .ne. 2) call abort 65 if (s3(1) .ne. 3.) call abort 66 if (r3(1) .ne. 3.) call abort 67 if (d3 .ne. 30.) call abort 68 if (r3(4) .ne. 3.) call abort 69 if (r3(5) .ne. 3.) call abort 70 if (i3 .ne. 3) call abort 71 72 end 73