1 subroutine test1 2 character*8 c 3 character*2 d, f 4 dimension d(2), f(2) 5 character*4 e 6 equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4)) 7 equivalence (c(6:6), f(2)(:)) 8 d(1)='AB' 9 c='abcdefgh' 10 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort 11 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort 12 end subroutine test1 13 subroutine test2 14 equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4)) 15 equivalence (c(6:6), f(2)(1:)) 16 character*8 c 17 character*2 d, f 18 dimension d(2), f(2) 19 character*4 e 20 d(1)='AB' 21 c='abcdefgh' 22 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort 23 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort 24 end subroutine test2 25 subroutine test3 26 character*8 c 27 character*2 d, f 28 character*4 e 29 equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4)) 30 equivalence (c(6:6), f(2)(:1)) 31 dimension d(2), f(2) 32 d(1)='AB' 33 c='abcdefgh' 34 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort 35 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort 36 end subroutine test3 37 subroutine test4 38 dimension d(2), f(2) 39 equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4)) 40 equivalence (c(6:6), f(2)(1:2)) 41 character*8 c 42 character*2 d, f 43 character*4 e 44 d(1)='AB' 45 c='abcdefgh' 46 if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort 47 if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort 48 end subroutine test4 49 program main 50 call test1 51 call test2 52 call test3 53 call test4 54 end program main 55