check_value Function

public function check_value(exp_val, act_val, tol)

Arguments

Type IntentOptional Attributes Name
real(kind=ESMF_KIND_R8), intent(in) :: exp_val
real(kind=ESMF_KIND_R8), intent(in) :: act_val
real(kind=ESMF_KIND_R8), intent(in) :: tol

Return Value logical


Calls

proc~~check_value~~CallsGraph proc~check_value check_value proc~esmf_logseterror ESMF_LogSetError proc~check_value->proc~esmf_logseterror esmf_breakpoint esmf_breakpoint proc~esmf_logseterror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logseterror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logseterror->proc~esmf_logwrite c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~check_value~~CalledByGraph proc~check_value check_value proc~check_field check_field proc~check_field->proc~check_value proc~field_regrid_test field_regrid_test proc~field_regrid_test->proc~check_field proc~runtests RunTests proc~runtests->proc~field_regrid_test program~esmf_test_harness esmf_test_harness program~esmf_test_harness->proc~runtests

Source Code

  logical function check_value (exp_val, act_val, tol)
    real(ESMF_KIND_R8), intent(in) :: exp_val
    real(ESMF_KIND_R8), intent(in) :: act_val
    real(ESMF_KIND_R8), intent(in) :: tol

    real(ESMF_KIND_R8) :: abs_err
    real(ESMF_KIND_R8) :: tol_band

    abs_err  = abs(act_val - exp_val)
    tol_band = abs(tol * exp_val) + RegridMinNeighborhood

    check_value = abs_err .LT. tol_band

#if 1
    ! print error message if value rejected because its outside of the minimum tolerance band
    if (.NOT. check_value) then
      if (abs_err .GE. RegridMinNeighborhood) then
        call ESMF_LogSetError (ESMF_FAILURE, msg="regrid error - value outside of minimum tolerance band", &
          line=__LINE__, file=__FILE__)
      end if
    end if
#endif

! debug
#if 0
    if (.NOT. check_value) then
      print *, "check_value - value out of tolerance(debug)", exp_val, act_val, abs_err, tol_band
    endif
#endif

    return
  !-----------------------------------------------------------------------------
  end function check_value