D.2.11 Output_Test Procedure

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



Michael L. Hall