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