The main documentation of the Output_Test Procedure contains additional explanation of this code listing.
subroutine Output_Test (Test_Name, Success, Unit)
! Input variables.
type(integer), intent(in), optional :: Unit ! Output unit.
type(logical) :: Success ! The result of the test.
type(character,*) :: Test_Name ! The name of the test.
! Internal variable.
type(integer) :: A_Unit ! Actual output unit.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
! Verify requirements - none.
! Only output on the IO PE.
if (this_is_IO_PE) then
! Set unit number.
if (PRESENT(Unit)) then
A_Unit = Unit
else
A_Unit = 6
end if
! Output test result.
if (Success) then
write (A_Unit,100) Test_Name, ' check successful.'
else
write (A_Unit,100) Test_Name, ' check failed.'
end if
end if
! Format statement.
100 format (/, 2x, 2a)
! Verify guarantees - none.
return
end subroutine Output_Test