MAPL_ObsUtilMod Module


Uses

  • module~~mapl_obsutilmod~~UsesGraph module~mapl_obsutilmod MAPL_ObsUtilMod ESMF ESMF module~mapl_obsutilmod->ESMF iso_c_binding iso_c_binding module~mapl_obsutilmod->iso_c_binding iso_fortran_env iso_fortran_env module~mapl_obsutilmod->iso_fortran_env module~mapl_basemod MAPL_BaseMod module~mapl_obsutilmod->module~mapl_basemod module~mapl_commsmod MAPL_CommsMod module~mapl_obsutilmod->module~mapl_commsmod module~pfio_filemetadatamod pFIO_FileMetadataMod module~mapl_obsutilmod->module~pfio_filemetadatamod module~pfio_netcdf4_fileformattermod pFIO_NetCDF4_FileFormatterMod module~mapl_obsutilmod->module~pfio_netcdf4_fileformattermod module~plain_netcdf_time Plain_netCDF_Time module~mapl_obsutilmod->module~plain_netcdf_time netCDF netCDF module~mapl_obsutilmod->netCDF

Used by

  • module~~mapl_obsutilmod~~UsedByGraph module~mapl_obsutilmod MAPL_ObsUtilMod module~historytrajectory_implement HistoryTrajectory_implement module~historytrajectory_implement->module~mapl_obsutilmod module~historytrajectorymod HistoryTrajectoryMod module~historytrajectory_implement->module~historytrajectorymod module~historytrajectorymod->module~mapl_obsutilmod module~mapl_swathgridfactorymod MAPL_SwathGridFactoryMod module~mapl_swathgridfactorymod->module~mapl_obsutilmod module~mapl_xygridfactorymod MAPL_XYGridFactoryMod module~mapl_xygridfactorymod->module~mapl_obsutilmod module~masksamplergeosatmod MaskSamplerGeosatMod module~masksamplergeosatmod->module~mapl_obsutilmod module~mapl_historycollectionmod MAPL_HistoryCollectionMod module~mapl_historycollectionmod->module~historytrajectorymod module~mapl_historycollectionmod->module~masksamplergeosatmod module~mapl_historygridcompmod MAPL_HistoryGridCompMod module~mapl_historygridcompmod->module~historytrajectorymod module~mapl_historygridcompmod->module~masksamplergeosatmod module~mapl_historygridcompmod->module~mapl_historycollectionmod module~mapl_historycollectionvectormod MAPL_HistoryCollectionVectorMod module~mapl_historygridcompmod->module~mapl_historycollectionvectormod module~mapl_stringfieldsetmapmod MAPL_StringFieldSetMapMod module~mapl_historygridcompmod->module~mapl_stringfieldsetmapmod module~masksamplergeosat_implement MaskSamplerGeosat_implement module~masksamplergeosat_implement->module~masksamplergeosatmod module~extdata_drivergridcompmod ExtData_DriverGridCompMod module~extdata_drivergridcompmod->module~mapl_historygridcompmod module~mapl_capgridcompmod MAPL_CapGridCompMod module~mapl_capgridcompmod->module~mapl_historygridcompmod module~mapl_historycollectionvectormod->module~mapl_historycollectionmod module~mapl_stringfieldsetmapmod->module~mapl_historycollectionmod module~extdatadrivermod ExtDataDriverMod module~extdatadrivermod->module~extdata_drivergridcompmod module~mapl_capmod MAPL_CapMod module~mapl_capmod->module~mapl_capgridcompmod program~comp_testing_driver comp_testing_driver program~comp_testing_driver->module~mapl_capgridcompmod program~extdata_driver ExtData_Driver program~extdata_driver->module~extdata_drivergridcompmod

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: mx_ngeoval = 60
real(kind=REAL64), public :: H_sat = 42164160.d0
real(kind=REAL64), public :: lambda0_SatE = -1.308996939d0
real(kind=REAL64), public :: lambda0_SatT = -1.56206968053d0
real(kind=REAL64), public :: lambda0_SatW = -2.39110107523d0
real(kind=REAL64), public :: r_eq = 6378137.d0
real(kind=REAL64), public :: r_pol = 6356752.31414d0

Interfaces

interface

  • public function f_call_c_glob(search_name, filename, slen) result(stat) bind(C, name="glob_C")

    Arguments

    Type IntentOptional Attributes Name
    character(kind=c_char, len=1), intent(in) :: search_name(*)
    character(kind=c_char, len=1), intent(out) :: filename(*)
    integer, intent(inout) :: slen

    Return Value integer

public interface sort_multi_arrays_by_time

  • public subroutine sort_three_arrays_by_time(U, V, T, rc)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=ESMF_KIND_R8), intent(inout) :: U(:)
    real(kind=ESMF_KIND_R8), intent(inout) :: V(:)
    real(kind=ESMF_KIND_R8), intent(inout) :: T(:)
    integer, intent(out), optional :: rc
  • public subroutine sort_four_arrays_by_time(U, V, T, ID, rc)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=ESMF_KIND_R8) :: U(:)
    real(kind=ESMF_KIND_R8) :: V(:)
    real(kind=ESMF_KIND_R8) :: T(:)
    integer :: ID(:)
    integer, intent(out), optional :: rc

Derived Types

type, public ::  obs_platform

Components

Type Visibility Attributes Name Initial
character(len=ESMF_MAXSTR), public, allocatable :: field_name(:,:)
character(len=ESMF_MAXSTR), public :: file_name_template = ''
character(len=ESMF_MAXSTR), public :: index_name_x = ''
character(len=ESMF_MAXSTR), public :: name = ''
character(len=ESMF_MAXSTR), public :: var_name_lat = ''
character(len=ESMF_MAXSTR), public :: var_name_lon = ''
character(len=ESMF_MAXSTR), public :: var_name_time = ''
integer, public :: nentry_name = 0
integer, public :: ngeoval = 0

type, public ::  obs_unit

Components

Type Visibility Attributes Name Initial
character(len=ESMF_MAXSTR), public :: geoval_xname(mx_ngeoval)
character(len=ESMF_MAXSTR), public :: geoval_yname(mx_ngeoval)
character(len=ESMF_MAXSTR), public :: input_template
character(len=ESMF_MAXSTR), public :: name
character(len=ESMF_MAXSTR), public :: obsFile_output
integer, public, allocatable :: location_index_ioda(:)
integer, public :: ngeoval
integer, public :: nobs_epoch
logical, public :: export_all_geoval
real(kind=REAL32), public, allocatable :: p2d(:)
real(kind=REAL32), public, allocatable :: p3d(:,:)
real(kind=REAL64), public, allocatable :: lats(:)
real(kind=REAL64), public, allocatable :: lons(:)
real(kind=REAL64), public, allocatable :: times_R8(:)
type(FileMetadata), public, allocatable :: metadata
type(NetCDF4_FileFormatter), public, allocatable :: file_handle

Functions

public function get_filename_from_template(time, file_template, rc) result(filename)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: time
character(len=*), intent(in) :: file_template
integer, intent(out), optional :: rc

Return Value character(len=ESMF_MAXSTR)

public function get_filename_from_template_use_index(obsfile_start_time, obsfile_interval, f_index, file_template, exist, rc) result(filename)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: obsfile_start_time
type(ESMF_TimeInterval), intent(in) :: obsfile_interval
integer, intent(in) :: f_index
character(len=*), intent(in) :: file_template
logical, intent(out) :: exist
integer, intent(out), optional :: rc

Return Value character(len=ESMF_MAXSTR)

public function copy_platform_nckeys(a, rc)

Arguments

Type IntentOptional Attributes Name
type(obs_platform), intent(in) :: a
integer, intent(out), optional :: rc

Return Value type(obs_platform)

public function union_platform(a, b, rc)

Arguments

Type IntentOptional Attributes Name
type(obs_platform), intent(in) :: a
type(obs_platform), intent(in) :: b
integer, intent(out), optional :: rc

Return Value type(obs_platform)


Subroutines

public subroutine ABI_XY_2_lonlat(x, y, lambda0, lon, lat, mask)

Arguments

Type IntentOptional Attributes Name
real(kind=REAL64), intent(in) :: x
real(kind=REAL64), intent(in) :: y
real(kind=REAL64), intent(in) :: lambda0
real(kind=REAL64), intent(out) :: lon
real(kind=REAL64), intent(out) :: lat
integer, intent(out), optional :: mask

public subroutine Find_M_files_for_currTime(currTime, obsfile_start_time, obsfile_end_time, obsfile_interval, epoch_frequency, file_template, M, filenames, T_offset_in_file_content, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: currTime
type(ESMF_Time), intent(in) :: obsfile_start_time
type(ESMF_Time), intent(in) :: obsfile_end_time
type(ESMF_TimeInterval), intent(in) :: obsfile_interval
type(ESMF_TimeInterval), intent(in) :: epoch_frequency
character(len=*), intent(in) :: file_template
integer, intent(out) :: M
character(len=ESMF_MAXSTR), intent(inout) :: filenames(:)
type(ESMF_TimeInterval), intent(in), optional :: T_offset_in_file_content
integer, intent(out), optional :: rc

public subroutine create_timeunit(time, datetime_units, input_unit, rc)

print*, ‘datetime_units:’, trim(datetime_units)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: time
character(len=*), intent(out) :: datetime_units
character(len=*), intent(in), optional :: input_unit
integer, intent(out), optional :: rc

public subroutine fglob(search_name, filename, rc)

Arguments

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

public subroutine get_obsfile_Tbracket_from_epoch(currTime, obsfile_start_time, obsfile_end_time, obsfile_interval, epoch_frequency, obsfile_Ts_index, obsfile_Te_index, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: currTime
type(ESMF_Time), intent(in) :: obsfile_start_time
type(ESMF_Time), intent(in) :: obsfile_end_time
type(ESMF_TimeInterval), intent(in) :: obsfile_interval
type(ESMF_TimeInterval), intent(in) :: epoch_frequency
integer, intent(out) :: obsfile_Ts_index
integer, intent(out) :: obsfile_Te_index
integer, intent(out), optional :: rc

public subroutine get_var_from_name_w_group(var_name, var2d, filename, rc)

print, ‘no grp name’ write(6,) ‘ncid, short_name, varid’, ncid, trim(short_name), varid

Arguments

Type IntentOptional Attributes Name
character(len=ESMF_MAXSTR), intent(in) :: var_name
real(kind=ESMF_KIND_R8), intent(inout) :: var2d(:,:)
character(len=ESMF_MAXSTR), intent(in) :: filename
integer, intent(out), optional :: rc

public subroutine lonlat_2_ABI_XY(lon, lat, lambda0, x, y, mask)

Arguments

Type IntentOptional Attributes Name
real(kind=REAL64), intent(in) :: lon
real(kind=REAL64), intent(in) :: lat
real(kind=REAL64), intent(in) :: lambda0
real(kind=REAL64), intent(out) :: x
real(kind=REAL64), intent(out) :: y
integer, intent(out) :: mask

public subroutine read_M_files_4_swath(filenames, Xdim, Ydim, index_name_lon, index_name_lat, var_name_lon, var_name_lat, var_name_time, lon, lat, time, Tfilter, rc)

write(6,’(2x,a,10i10)’) ‘true Xdim, Ydim:’, Xdim, Ydim write(6,’(2x,a,10i10)’) ‘false Xdim, Ydim:’, nlon, j2

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=ESMF_MAXSTR), intent(in) :: filenames(:)
integer, intent(out) :: Xdim
integer, intent(out) :: Ydim
character(len=ESMF_MAXSTR), intent(in) :: index_name_lon
character(len=ESMF_MAXSTR), intent(in) :: index_name_lat
character(len=ESMF_MAXSTR), intent(in), optional :: var_name_lon
character(len=ESMF_MAXSTR), intent(in), optional :: var_name_lat
character(len=ESMF_MAXSTR), intent(in), optional :: var_name_time
real(kind=ESMF_KIND_R8), intent(inout), optional, allocatable :: lon(:,:)
real(kind=ESMF_KIND_R8), intent(inout), optional, allocatable :: lat(:,:)
real(kind=ESMF_KIND_R8), intent(inout), optional, allocatable :: time(:,:)
logical, intent(in), optional :: Tfilter
integer, intent(out), optional :: rc

public subroutine reset_times_to_current_day(current_time, times_1d, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Time), intent(in) :: current_time
type(ESMF_Time), intent(inout) :: times_1d(:)
integer, intent(out), optional :: rc

public subroutine sort_four_arrays_by_time(U, V, T, ID, rc)

Arguments

Type IntentOptional Attributes Name
real(kind=ESMF_KIND_R8) :: U(:)
real(kind=ESMF_KIND_R8) :: V(:)
real(kind=ESMF_KIND_R8) :: T(:)
integer :: ID(:)
integer, intent(out), optional :: rc

public subroutine sort_index(X, IA, rc)

Arguments

Type IntentOptional Attributes Name
real(kind=ESMF_KIND_R8), intent(in) :: X(:)
integer, intent(out) :: IA(:)
integer, intent(out), optional :: rc

public subroutine sort_three_arrays_by_time(U, V, T, rc)

Arguments

Type IntentOptional Attributes Name
real(kind=ESMF_KIND_R8), intent(inout) :: U(:)
real(kind=ESMF_KIND_R8), intent(inout) :: V(:)
real(kind=ESMF_KIND_R8), intent(inout) :: T(:)
integer, intent(out), optional :: rc

public subroutine test_conversion()

Arguments

None

public subroutine time_ESMF_to_real(times_R8_1d, times_esmf_1d, datetime_units, rc)

Arguments

Type IntentOptional Attributes Name
real(kind=ESMF_KIND_R8), intent(inout) :: times_R8_1d(:)
type(ESMF_Time), intent(in) :: times_esmf_1d(:)
character(len=*), intent(in) :: datetime_units
integer, intent(out), optional :: rc

public subroutine time_real_to_ESMF(times_R8_1d, times_esmf_1d, datetime_units, rc)

Arguments

Type IntentOptional Attributes Name
real(kind=REAL64), intent(in) :: times_R8_1d(:)
type(ESMF_Time), intent(inout) :: times_esmf_1d(:)
character(len=*), intent(in) :: datetime_units
integer, intent(out), optional :: rc