# NULLIFY

Statement: Disassociates a pointer from a target.

NULLIFY (pointer-object[,pointer-object]...)

pointer-object | Is a structure component or the name of a variable; it must be a pointer (have the POINTER attribute).

## Description

The initial association status of a pointer is undefined. You can use NULLIFY to initialize an undefined pointer, giving it disassociated status. Then the pointer can be tested using the intrinsic function ASSOCIATED.

## Example

The following is an example of the NULLIFY statement:

      REAL, TARGET  :: TAR(0:50)
      REAL, POINTER :: PTR_A(:), PTR_B(:)
      PTR_A => TAR
      PTR_B => TAR
      ...
      NULLIFY(PTR_A)

After these statements are executed, PTR_A will have disassociated status, while PTR_B will continue to be associated with variable TAR.

The following shows another example:

    !    POINTER2.F90    Pointing at a Pointer and Target
    !DIR$ FIXEDFORMLINESIZE:80

         REAL, POINTER :: arrow1 (:)
         REAL, POINTER :: arrow2 (:)
         REAL, ALLOCATABLE, TARGET :: bullseye (:)

         ALLOCATE (bullseye (7))
         bullseye = 1.
         bullseye (1:7:2) = 10.
         WRITE (*,'(/1x,a,7f8.0)') 'target ',bullseye

         arrow1 => bullseye
         WRITE (*,'(/1x,a,7f8.0)') 'pointer',arrow1

         arrow2 => arrow1
         IF (ASSOCIATED(arrow2)) WRITE (*,'(/a/)') ' ARROW2 is pointed.'
         WRITE (*,'(1x,a,7f8.0)') 'pointer',arrow2

         NULLIFY (arrow2)
         IF (.NOT.ASSOCIATED(arrow2)) WRITE (*,'(/a/)') ' ARROW2 is not pointed.'
         WRITE (*,'( 1x,a,7f8.0)') 'pointer',arrow1
         WRITE (*,'(/1x,a,7f8.0)') 'target ',bullseye

         END

Parent topic: M to N

## See Also

ALLOCATE
ASSOCIATED
DEALLOCATE
POINTER
TARGET
NULL
Pointer Assignments
Dynamic Allocation