Pack/Unpack (PUP) Routine
SUBROUTINE pup_my_block(p,m)
       USE my_block_mod
       USE pupmod
       INTEGER :: p
       TYPE(my_block) :: m
       call fpup_int(p,m%n1)
       call fpup_int(p,m%n2x)
       call fpup_int(p,m%n2y)
       IF (fpup_isUnpacking(p)) THEN
         ALLOCATE(m%arr(m%n2x,m%n2y))
       END IF
       call fpup_doubles(p,m%arr,m%n2x*m%n2y)
       IF (fpup_isDeleting(p)) THEN
         DEALLOCATE(m%arr)
       END IF
END SUBROUTINE