### 8.178 `MOVE_ALLOC` — Move allocation from one object to another

Description:
  `MOVE_ALLOC(FROM, TO)` moves the allocation from FROM to TO. FROM will become deallocated in the process.
Standard:
  Fortran 2003 and later
Class:
  Pure subroutine
Syntax:
  `CALL MOVE_ALLOC(FROM, TO)`
Arguments:

  FROM | `ALLOCATABLE`, `INTENT(INOUT)`, may be of any type and kind.
  TO | `ALLOCATABLE`, `INTENT(OUT)`, shall be of the same type, kind and rank as FROM.

Return value:
  None
Example:

                program test_move_alloc
                    integer, allocatable :: a(:), b(:)

                    allocate(a(3))
                    a = [ 1, 2, 3 ]
                    call move_alloc(a, b)
                    print *, allocated(a), allocated(b)
                    print *, b
                end program test_move_alloc