get_file_levels Subroutine

subroutine get_file_levels(filename, vertical_data, rc)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(verticalData), intent(inout) :: vertical_data
integer, intent(out), optional :: rc

Calls

proc~~get_file_levels~~CallsGraph proc~get_file_levels Regrid_Util::get_file_levels proc~create MAPL_FileMetadataUtilsMod::FileMetadataUtils%create proc~get_file_levels->proc~create proc~get_coordinate_info MAPL_FileMetadataUtilsMod::FileMetadataUtils%get_coordinate_info proc~get_file_levels->proc~get_coordinate_info proc~get_level_name MAPL_FileMetadataUtilsMod::FileMetadataUtils%get_level_name proc~get_file_levels->proc~get_level_name proc~mapl_return MAPL_ErrorHandlingMod::MAPL_Return proc~get_file_levels->proc~mapl_return proc~mapl_verify MAPL_ErrorHandlingMod::MAPL_Verify proc~get_file_levels->proc~mapl_verify proc~get_coordinate_info->proc~mapl_return proc~get_coordinate_info->proc~mapl_verify interface~mapl_assert MAPL_ErrorHandlingMod::MAPL_Assert proc~get_coordinate_info->interface~mapl_assert none~get_attribute pFIO_VariableMod::Variable%get_attribute proc~get_coordinate_info->none~get_attribute none~get_coordinate_data pFIO_CoordinateVariableMod::CoordinateVariable%get_coordinate_data proc~get_coordinate_info->none~get_coordinate_data none~get_coordinate_variable pFIO_FileMetadataMod::FileMetadata%get_coordinate_variable proc~get_coordinate_info->none~get_coordinate_variable none~get_dimension pFIO_FileMetadataMod::FileMetadata%get_dimension proc~get_coordinate_info->none~get_dimension none~get_ith_dimension pFIO_VariableMod::Variable%get_ith_dimension proc~get_coordinate_info->none~get_ith_dimension none~get_value pFIO_UnlimitedEntityMod::UnlimitedEntity%get_value proc~get_coordinate_info->none~get_value proc~get_file_name MAPL_FileMetadataUtilsMod::FileMetadataUtils%get_file_name proc~get_coordinate_info->proc~get_file_name proc~var_has_attr MAPL_FileMetadataUtilsMod::FileMetadataUtils%var_has_attr proc~get_coordinate_info->proc~var_has_attr proc~get_level_name->proc~mapl_return none~begin~2 pFIO_StringVariableMapMod::StringVariableMap%begin proc~get_level_name->none~begin~2 proc~get_level_name->none~get_coordinate_variable none~get_variables pFIO_FileMetadataMod::FileMetadata%get_variables proc~get_level_name->none~get_variables none~is_attribute_present pFIO_VariableMod::Variable%is_attribute_present proc~get_level_name->none~is_attribute_present none~key pFIO_StringVariableMapMod::StringVariableMapIterator%key proc~get_level_name->none~key none~next~2 pFIO_StringVariableMapMod::StringVariableMapIterator%next proc~get_level_name->none~next~2 proc~get_variable_attribute MAPL_FileMetadataUtilsMod::FileMetadataUtils%get_variable_attribute proc~get_level_name->proc~get_variable_attribute at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_ThrowMod::MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception none~get_attribute->proc~mapl_return none~get_attribute->interface~mapl_assert none~at~4 pFIO_StringAttributeMapMod::StringAttributeMap%at none~get_attribute->none~at~4 none~get_coordinate_data->proc~mapl_return none~get_coordinate_variable->proc~mapl_return none~get_coordinate_variable->interface~mapl_assert none~at~3 pFIO_StringVariableMapMod::StringVariableMap%at none~get_coordinate_variable->none~at~3 none~get_dimension->proc~mapl_return none~get_dimension->at find find none~get_dimension->find none~get_ith_dimension->proc~mapl_return none~get_ith_dimension->at none~get_value->proc~mapl_return none~get_variables->proc~mapl_return none~is_attribute_present->proc~mapl_return none~is_attribute_present->none~at~4 proc~get_file_name->proc~mapl_return proc~get_variable_attribute->proc~mapl_return proc~get_variable_attribute->proc~mapl_verify proc~get_variable_attribute->interface~mapl_assert proc~get_variable_attribute->none~get_attribute proc~get_variable_attribute->none~get_value proc~get_variable_attribute->none~is_attribute_present proc~get_variable_attribute->proc~get_file_name none~get_variable pFIO_FileMetadataMod::FileMetadata%get_variable proc~get_variable_attribute->none~get_variable proc~var_has_attr->proc~mapl_return proc~var_has_attr->proc~mapl_verify proc~var_has_attr->interface~mapl_assert proc~var_has_attr->none~is_attribute_present proc~var_has_attr->proc~get_file_name proc~var_has_attr->none~get_variable none~find~2 pFIO_StringVariableMapMod::StringVariableMap%find none~at~3->none~find~2 none~find~3 pFIO_StringAttributeMapMod::StringAttributeMap%find none~at~4->none~find~3 none~get_variable->proc~mapl_return none~get_variable->none~at~3

Called by

proc~~get_file_levels~~CalledByGraph proc~get_file_levels Regrid_Util::get_file_levels proc~main~2 Regrid_Util::main proc~main~2->proc~get_file_levels program~regrid_util Regrid_Util program~regrid_util->proc~main~2

Source Code

   subroutine get_file_levels(filename,vertical_data,rc)
      character(len=*), intent(in) :: filename
      type(VerticalData), intent(inout) :: vertical_data
      integer, intent(out), optional :: rc

      integer :: status
      type(NetCDF4_fileFormatter) :: formatter
      type(FileMetadata) :: basic_metadata
      type(FileMetadataUtils) :: metadata
      character(len=:), allocatable :: lev_name
      character(len=ESMF_MAXSTR) :: long_name
      character(len=ESMF_MAXSTR) :: standard_name
      character(len=ESMF_MAXSTR) :: vcoord
      character(len=ESMF_MAXSTR) :: lev_units
      real, allocatable, target :: levs(:)
      real, pointer :: plevs(:)

      call formatter%open(trim(filename),pFIO_Read,_RC)
      basic_metadata=formatter%read(_RC)
      call metadata%create(basic_metadata,trim(filename))
      lev_name = metadata%get_level_name(_RC)
      call metadata%get_coordinate_info(lev_name,coords=levs,coordUnits=lev_units,long_name=long_name,&
           standard_name=standard_name,coordinate_attr=vcoord,_RC)
      plevs => levs
      vertical_data = VerticalData(levels=plevs,vunit=lev_units,vcoord=vcoord,standard_name=standard_name,long_name=long_name, &
                      force_no_regrid=.true.,_RC)
      nullify(plevs)

      _RETURN(_SUCCESS)

   end subroutine get_file_levels