program A_M implicit none real, parameter :: C(5:10) = 5.0 real, dimension (:), allocatable :: A, B allocate (A(6)) call Init (A) contains subroutine Init ( A ) real, dimension ( -1 : ), intent ( in ) :: A integer, dimension ( 1 ) :: lb_B allocate (B, mold = A) if (any (lbound (B) /= lbound (A))) stop 1 if (any (ubound (B) /= ubound (A))) stop 2 if (any (shape (B) /= shape (A))) stop 3 if (size (B) /= size (A)) stop 4 deallocate (B) allocate (B, mold = C) if (any (lbound (B) /= lbound (C))) stop 5 if (any (ubound (B) /= ubound (C))) stop 6 if (any (shape (B) /= shape (C))) stop 7 if (size (B) /= size (C)) stop 8 end end