B.1.8 Character_Not_Equal_Status Procedure

The main documentation of the Character_Not_Equal_Status Procedure contains additional explanation of this code listing.

  function Character_Not_Equal_Status (C, SS) result(Not_Equal)

    ! Input variable.

    type(Status_type), intent(in) :: SS  ! Status variable to be compared.
    type(character,*), intent(in) :: C   ! Selector flag string to be compared.

    ! Output variable.

    type(logical) :: Not_Equal               ! Nonequality boolean.

    !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ! Verify requirements.

    VERIFY(Valid_State(SS),1)   ! SS is valid.

    ! Check nonequality.

    Not_Equal = status_flag(SS%status)%selector /= C

    ! Verify guarantees.

    ! Not_Equal should be what it was set to.
    VERIFY(Not_Equal .eqv. (status_flag(SS%status)%selector /= C),2)

    return
  end function Character_Not_Equal_Status



Michael L. Hall