add_ungridded_dimensions Subroutine

public subroutine add_ungridded_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_ungridded_dimensions~~CallsGraph proc~add_ungridded_dimensions add_ungridded_dimensions insert insert proc~add_ungridded_dimensions->insert interface~mapl_fieldbundleget~2 MAPL_FieldBundleGet proc~add_ungridded_dimensions->interface~mapl_fieldbundleget~2 interface~mapl_fieldget MAPL_FieldGet proc~add_ungridded_dimensions->interface~mapl_fieldget none~add_dimension FileMetadata%add_dimension proc~add_ungridded_dimensions->none~add_dimension none~get_extent UngriddedDim%get_extent proc~add_ungridded_dimensions->none~get_extent none~get_ith_dim_spec UngriddedDims%get_ith_dim_spec proc~add_ungridded_dimensions->none~get_ith_dim_spec none~get_name~6 UngriddedDim%get_name proc~add_ungridded_dimensions->none~get_name~6 none~get_num_ungridded UngriddedDims%get_num_ungridded proc~add_ungridded_dimensions->none~get_num_ungridded proc~mapl_return MAPL_Return proc~add_ungridded_dimensions->proc~mapl_return proc~mapl_verify MAPL_Verify proc~add_ungridded_dimensions->proc~mapl_verify none~add_dimension->insert none~add_dimension->proc~mapl_return interface~mapl_assert MAPL_Assert none~add_dimension->interface~mapl_assert none~get_dimension FileMetadata%get_dimension none~add_dimension->none~get_dimension none~has_dimension FileMetadata%has_dimension none~add_dimension->none~has_dimension none~get_ith_dim_spec->proc~mapl_return none~get_ith_dim_spec->proc~mapl_verify none~at~373 UngriddedDimVector%at none~get_ith_dim_spec->none~at~373 proc~mapl_return->insert at at proc~mapl_return->at proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception none~of_size_kind~25 UngriddedDimVector%of_size_kind none~at~373->none~of_size_kind~25 none~get_dimension->proc~mapl_return none~get_dimension->at find find none~get_dimension->find none~has_dimension->proc~mapl_return none~has_dimension->find

Called by

proc~~add_ungridded_dimensions~~CalledByGraph proc~add_ungridded_dimensions add_ungridded_dimensions proc~bundle_to_metadata bundle_to_metadata proc~bundle_to_metadata->proc~add_ungridded_dimensions

Source Code

   subroutine add_ungridded_dimensions(bundle, metadata, rc)
      type(ESMF_FieldBundle), intent(in) :: bundle
      type(FileMetaData), intent(inout) :: metadata
      integer, optional, intent(out) :: rc
      integer :: status
      type(UngriddedDims) :: field_ungridded_dims, ungridded_dims
      type(UngriddedDim) :: u
      integer :: i, j
      type(ESMF_Field) :: field
      type(ESMF_Field), allocatable :: fieldList(:)
      type(StringSet) :: dim_names
      character(:), allocatable :: dim_name
      logical :: is_new

      call MAPL_FieldBundleGet(bundle, fieldList=fieldList, _RC)
      do i = 1, size(fieldList)
         call MAPL_FieldGet(fieldList(i), ungridded_dims=field_ungridded_dims, _RC)
         
         do j = 1, field_ungridded_dims%get_num_ungridded()
            u = ungridded_dims%get_ith_dim_spec(i)
            dim_name = u%get_name()
            call dim_names%insert(dim_name, is_new=is_new)
            if (is_new) then
               call metadata%add_dimension(u%get_name(), u%get_extent())
            end if
         end do
      end do

      _RETURN(_SUCCESS)
   end subroutine add_ungridded_dimensions