fillin_derived Subroutine

public subroutine fillin_derived(this, item_name, derived_item, time, clock, unusable, rc)

Type Bound

ExtDataOldTypesCreator

Arguments

Type IntentOptional Attributes Name
class(ExtDataOldTypesCreator), intent(inout) :: this
character(len=*), intent(in) :: item_name
type(DerivedExport), intent(inout) :: derived_item
type(ESMF_Time), intent(inout) :: time
type(ESMF_Clock), intent(inout) :: clock
class(KeywordEnforcer), intent(in), optional :: unusable
integer, intent(out), optional :: rc

Calls

proc~~fillin_derived~~CallsGraph proc~fillin_derived ExtDataOldTypesCreator%fillin_derived none~at~245 ExtDataDerivedMap%at proc~fillin_derived->none~at~245 none~create_from_parameters ExtDataPointerUpdate%create_from_parameters proc~fillin_derived->none~create_from_parameters none~set_defaults~3 ExtDataTimeSample%set_defaults proc~fillin_derived->none~set_defaults~3 proc~mapl_return MAPL_Return proc~fillin_derived->proc~mapl_return proc~mapl_verify MAPL_Verify proc~fillin_derived->proc~mapl_verify none~find~55 ExtDataDerivedMap%find none~at~245->none~find~55 none~create_from_parameters->proc~mapl_return none~create_from_parameters->proc~mapl_verify ESMF_TimeGet ESMF_TimeGet none~create_from_parameters->ESMF_TimeGet ESMF_TimeSet ESMF_TimeSet none~create_from_parameters->ESMF_TimeSet proc~string_to_esmf_timeinterval string_to_esmf_timeinterval none~create_from_parameters->proc~string_to_esmf_timeinterval proc~string_to_integer_time string_to_integer_time none~create_from_parameters->proc~string_to_integer_time none~set_defaults~3->proc~mapl_return none~set_defaults~3->proc~mapl_verify at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception proc~string_to_esmf_timeinterval->proc~mapl_return proc~string_to_esmf_timeinterval->proc~mapl_verify ESMF_TimeIntervalSet ESMF_TimeIntervalSet proc~string_to_esmf_timeinterval->ESMF_TimeIntervalSet interface~mapl_assert MAPL_Assert proc~string_to_esmf_timeinterval->interface~mapl_assert proc~string_to_integer_time->proc~mapl_return

Source Code

   subroutine fillin_derived(this,item_name,derived_item,time,clock,unusable,rc)
      class(ExtDataOldTypesCreator), intent(inout) :: this
      character(len=*), intent(in) :: item_name
      type(DerivedExport), intent(inout) :: derived_item
      type(ESMF_Time), intent(inout) :: time
      type(ESMF_Clock), intent(inout) :: clock
      class(KeywordEnforcer), optional, intent(in) :: unusable
      integer, optional, intent(out) :: rc

      type(ExtDataDerived), pointer :: rule
      integer :: status
      type(ExtDataTimeSample), pointer :: time_sample
      type(ExtDataTimeSample), target :: default_time_sample

      _UNUSED_DUMMY(unusable)
      rule => this%derived_map%at(trim(item_name))

      derived_item%name = trim(item_name)
      derived_item%expression = rule%expression
      if (allocated(rule%sample_key)) then
         time_sample => this%sample_map%at(rule%sample_key)
      else
        call default_time_sample%set_defaults()
        time_sample=>default_time_sample
      end if
      call derived_item%update_freq%create_from_parameters(time_sample%refresh_time, &
           time_sample%refresh_frequency, time_sample%refresh_offset, time, clock, _RC)
      derived_item%masking=.false.
      if (index(derived_item%expression,"mask") /= 0 ) then
         derived_item%masking=.true.
         allocate(derived_item%mask_definition)
         derived_item%mask_definition = ExtDataMask(derived_item%expression,_RC)
      end if

      _RETURN(_SUCCESS)

   end subroutine fillin_derived