blob: 7a16e902537e4e1c82a9dd6fcf513c5b500c1361 [file] [log] [blame]
! Program to test the PRESENT intrinsic
program intrinsic_present
implicit none
integer a
integer, pointer :: b
integer, dimension(10) :: c
integer, pointer, dimension(:) :: d
if (testvar()) STOP 1
if (.not. testvar(a)) STOP 2
if (testptr()) STOP 3
if (.not. testptr(b)) STOP 4
if (testarray()) STOP 5
if (.not. testarray(c)) STOP 6
if (testparray()) STOP 7
if (.not. testparray(d)) STOP 8
contains
logical function testvar (p)
integer, optional :: p
testvar = present(p)
end function
logical function testptr (p)
integer, pointer, optional :: p
testptr = present(p)
end function
logical function testarray (p)
integer, dimension (10), optional :: p
testarray = present(p)
end function
logical function testparray (p)
integer, pointer, dimension(:), optional :: p
testparray = present(p)
end function
end program