Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
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