make_esmf_info Function

public function make_esmf_info(num_levels, vloc, num_ungridded, names, units_array, coordinates, rc) result(info)

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: num_levels
character(len=*), intent(in), optional :: vloc
integer, intent(in), optional :: num_ungridded
character(len=*), intent(in), optional :: names(:)
character(len=*), intent(in), optional :: units_array(:)
real, intent(in), optional :: coordinates(:,:)
integer, intent(out), optional :: rc

Return Value type(ESMF_Info)


Calls

proc~~make_esmf_info~~CallsGraph proc~make_esmf_info make_esmf_info ESMF_InfoCreate ESMF_InfoCreate proc~make_esmf_info->ESMF_InfoCreate anyexceptions anyexceptions proc~make_esmf_info->anyexceptions assert_that assert_that proc~make_esmf_info->assert_that proc~make_ungridded_dims_info make_ungridded_dims_info proc~make_esmf_info->proc~make_ungridded_dims_info proc~make_vertical_dim make_vertical_dim proc~make_esmf_info->proc~make_vertical_dim proc~make_vertical_geom make_vertical_geom proc~make_esmf_info->proc~make_vertical_geom sourcelocation sourcelocation proc~make_esmf_info->sourcelocation proc~make_ungridded_dims_info->anyexceptions proc~make_ungridded_dims_info->assert_that proc~make_ungridded_dims_info->sourcelocation ESMF_InfoSet ESMF_InfoSet proc~make_ungridded_dims_info->ESMF_InfoSet proc~make_dim_key make_dim_key proc~make_ungridded_dims_info->proc~make_dim_key proc~make_vertical_dim->anyexceptions proc~make_vertical_dim->assert_that proc~make_vertical_dim->sourcelocation proc~make_vertical_dim->ESMF_InfoSet proc~make_vertical_geom->anyexceptions proc~make_vertical_geom->assert_that proc~make_vertical_geom->sourcelocation proc~make_vertical_geom->ESMF_InfoSet interface~mapl_assert MAPL_Assert proc~make_dim_key->interface~mapl_assert proc~mapl_return MAPL_Return proc~make_dim_key->proc~mapl_return 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

Called by

proc~~make_esmf_info~~CalledByGraph proc~make_esmf_info make_esmf_info proc~test_get_num_levels test_get_num_levels proc~test_get_num_levels->proc~make_esmf_info proc~test_get_ungridded_dims test_get_ungridded_dims proc~test_get_ungridded_dims->proc~make_esmf_info proc~test_get_vertical_dim_spec_names test_get_vertical_dim_spec_names proc~test_get_vertical_dim_spec_names->proc~make_esmf_info

Source Code

   function make_esmf_info(num_levels, vloc, num_ungridded, names, units_array, coordinates, rc) &
         result(info)
      type(ESMF_Info) :: info
      integer, optional, intent(in) :: num_levels
      character(len=*), optional, intent(in) :: vloc
      integer, optional, intent(in) :: num_ungridded
      character(len=*), optional, intent(in) :: names(:)
      character(len=*), optional, intent(in) :: units_array(:)
      real, optional, intent(in) :: coordinates(:, :)
      integer, optional, intent(out) :: rc
      integer :: status
      integer :: num_levels_, num_ungridded_
      character(len=:), allocatable :: vloc_

      num_ungridded_ = -1
      num_levels_ = NUM_LEVELS_DEFAULT
      if(present(num_levels)) num_levels_ = num_levels
      vloc_ = VLOC_DEFAULT
      if(present(vloc)) vloc_ = vloc
      info = ESMF_InfoCreate(_RC)
      call make_vertical_dim(info, vloc_, _RC)
      call make_vertical_geom(info, num_levels_, _RC)

      SET_RC(status)

      if(present(names) .and. present(units_array)) then
         if(size(names) /= size(units_array)) return
         num_ungridded_ = size(names)
      end if
      if(present(num_ungridded)) then
         if((num_ungridded_ >= 0) .and. (num_ungridded /= num_ungridded)) return
         num_ungridded_ = num_ungridded
      end if
      call make_ungridded_dims_info(info, num_ungridded_, names, units_array, coordinates, _RC)
      SET_RC(status)

   end function make_esmf_info