MOVE_ALLOC (The GNU Fortran Compiler)

### 8.211 `MOVE_ALLOC` — Move allocation from one object to another ¶

Synopsis:

  `CALL MOVE_ALLOC(FROM, TO)`

Description:

  `MOVE_ALLOC(FROM, TO)` moves the allocation from FROM to TO. FROM becomes deallocated in the process.

Class:

  Pure subroutine

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

Standard:

  Fortran 2003 and later