add_vertical_dimensions Subroutine

public subroutine add_vertical_dimensions(bundle, metadata, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_FieldBundle), intent(in) :: bundle
type(FileMetadata), intent(inout) :: metadata
integer, intent(out), optional :: rc

Calls

proc~~add_vertical_dimensions~~CallsGraph proc~add_vertical_dimensions add_vertical_dimensions begin begin proc~add_vertical_dimensions->begin interface~get_num_levels get_num_levels proc~add_vertical_dimensions->interface~get_num_levels interface~get_vertical_dim_spec_names get_vertical_dim_spec_names proc~add_vertical_dimensions->interface~get_vertical_dim_spec_names next next proc~add_vertical_dimensions->next none~add_dimension FileMetadata%add_dimension proc~add_vertical_dimensions->none~add_dimension of of proc~add_vertical_dimensions->of proc~get_vertical_dimension_name get_vertical_dimension_name proc~add_vertical_dimensions->proc~get_vertical_dimension_name proc~get_vertical_dimension_num_levels get_vertical_dimension_num_levels proc~add_vertical_dimensions->proc~get_vertical_dimension_num_levels proc~mapl_return MAPL_Return proc~add_vertical_dimensions->proc~mapl_return proc~mapl_verify MAPL_Verify proc~add_vertical_dimensions->proc~mapl_verify none~add_dimension->proc~mapl_return insert insert none~add_dimension->insert at at proc~mapl_return->at 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

Called by

proc~~add_vertical_dimensions~~CalledByGraph proc~add_vertical_dimensions add_vertical_dimensions proc~bundle_to_metadata bundle_to_metadata proc~bundle_to_metadata->proc~add_vertical_dimensions

Source Code

   subroutine add_vertical_dimensions(bundle, metadata, rc)
      type(ESMF_FieldBundle), intent(in) :: bundle
      type(FileMetaData), intent(inout) :: metadata
      integer, optional, intent(out) :: rc
      integer :: status
      integer :: num_levels
      type(StringVector) :: vertical_names
      type(StringVectorIterator) :: iter
      character(len=:), allocatable :: spec_name, dim_name
      
      num_levels = get_num_levels(bundle, _RC)
      if(num_levels == 0) return
      vertical_names = get_vertical_dim_spec_names(bundle, _RC)
      iter = vertical_names%begin()
      do while(iter /= vertical_names%end())
         spec_name = iter%of()
         num_levels = get_vertical_dimension_num_levels(spec_name, num_levels)
         dim_name = get_vertical_dimension_name(spec_name)
         call metadata%add_dimension(dim_name, num_levels)
         call iter%next()
      end do
      _RETURN(_SUCCESS)

   end subroutine add_vertical_dimensions