subroutine test1 character*8 c character*2 d, f dimension d(2), f(2) character*4 e equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4)) equivalence (c(6:6), f(2)(:)) d(1)='AB' c='abcdefgh' if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort end subroutine test1 subroutine test2 equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4)) equivalence (c(6:6), f(2)(1:)) character*8 c character*2 d, f dimension d(2), f(2) character*4 e d(1)='AB' c='abcdefgh' if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort end subroutine test2 subroutine test3 character*8 c character*2 d, f character*4 e equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4)) equivalence (c(6:6), f(2)(:1)) dimension d(2), f(2) d(1)='AB' c='abcdefgh' if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort end subroutine test3 subroutine test4 dimension d(2), f(2) equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4)) equivalence (c(6:6), f(2)(1:2)) character*8 c character*2 d, f character*4 e d(1)='AB' c='abcdefgh' if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort end subroutine test4 program main call test1 call test2 call test3 call test4 end program main