thinning_mod¶
Dependency Diagrams:
![]()
Direct Dependency Diagram¶
![]()
Reverse Dependency Diagram¶
Description
MODULE thinning_mod (prefix=’thn’ category=’1. High-level functionality’)
- Purpose
Using observation-type-specific algorithms, set bit 11 of ‘flag’ on data that are not to be assimilated.
- Note
This module is intended to group all of the thinning methods in a single fortran module.
Quick access
- Variables
- Routines
intarraytompi(),logicalarraytompi(),raobs_blacklisting_ecmwf(),raobs_check_duplicated_stations(),raobs_check_if_same_profile(),raobs_compare_profiles(),raobs_thinning_es(),raobs_thinning_model(),realarraytompi(),stringarraytompi(),thn_gpsrovertical(),thn_radiosonde(),thn_surfaceintime(),thn_thinaircraft(),thn_thinaladin(),thn_thincsr(),thn_thingbgps(),thn_thingpsro(),thn_thinhyper(),thn_thinraobs(),thn_thinsatwinds(),thn_thinscat(),thn_thinsurface(),thn_thintovs()Needed modules
midasmpi_mod: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)
bufr_mod: MODULE bufr_mod (prefix=’bufr’ category=’8. Low-level utilities and constants’)
mathphysconstants_mod: MODULE mathPhysConstants_mod (prefix=’mpc’ category=’8. Low-level utilities and constants’)
earthconstants_mod: MODULE earthConstants_mod (prefix=’ec’ category=’8. Low-level utilities and constants’)
obsspacedata_mod: MODULE obsSpaceData_mod (prefix=’obs’ category=’6. High-level data objects’)
horizontalcoord_mod: MODULE horizontalCoord_mod (prefix=’hco’ category=’7. Low-level data objects’)
verticalcoord_mod: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)
timecoord_mod: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)
gridstatevector_mod: MODULE gridStateVector_mod (prefix=’gsv’ category=’6. High-level data objects’)
gridstatevectorfileio_mod: MODULE gridStateVectorFileIO_mod (prefix=’gio’ category=’4. Data Object transformations’)
codtyp_mod: MODULE codtyp_mod (prefix=’codtyp’ category=’8. Low-level utilities and constants’)
physicsfunctions_mod: MODULE physicsFunctions_mod (prefix=’phf’ category=’8. Low-level utilities and constants’)
utilities_mod: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
kdtree2_mod: MODULE kdTree2_mod (prefix=’kdtree2’ category=’8. Low-level utilities and constants’)Variables
- thinning_mod/thn_thinsatsst [public]¶
Subroutines and functions
- subroutine thinning_mod/thn_thinsurface(obsdat, obsfamily)¶
- Purpose
Main subroutine for thinning of surface obs.
- Arguments
obsdat [struct_obs ,inout]
obsfamily [character ,in]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),thn_surfaceintime(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinraobs(obsdat)¶
- Purpose
Main thinning subroutine Radiosonde obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),thn_radiosonde(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinaircraft(obsdat)¶
- Purpose
Main thinning subroutine for aircraft obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinsatwinds(obsdat)¶
- Purpose
Main thinning subroutine for satellite winds (AMVs).
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thingpsro(obsdat)¶
- Purpose
Main thinning subroutine GPS radio-occultation obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),thn_gpsrovertical(),utl_tmg_stop()
- subroutine thinning_mod/thn_thingbgps(obsdat)¶
- Purpose
Main thinning subroutine ground-based GPS obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinaladin(obsdat)¶
- Purpose
Main thinning subroutine for Aladin winds obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thincsr(obsdat)¶
- Purpose
Main thinning subroutine for geostationary radiances (CSR).
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinscat(obsdat)¶
- Purpose
Main thinning subroutine for scatterometer winds.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),utl_tmg_stop()
- subroutine thinning_mod/thn_thintovs(obsdat)¶
- Purpose
Main thinning subroutine for AMSU and ATMS obs.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),codtyp_get_codtyp(),utl_tmg_stop()
- subroutine thinning_mod/thn_thinhyper(obsdat)¶
- Purpose
Main thinning subroutine for hyperspectral infrared radiances.
- Arguments
obsdat [struct_obs ,inout]
- Called from
- Call to
obs_famexist(),utl_isnamelistpresent(),utl_abort(),utl_tmg_start(),codtyp_get_codtyp(),utl_tmg_stop()
- subroutine thinning_mod/thn_surfaceintime(obsdat, obsfamily, step, deltmax, useblacklist, considershipstnid)¶
- Purpose
Original method for thinning surface data in time. Set bit 11 of OBS_FLG on observations that are to be rejected.
- Arguments
obsdat [struct_obs ,inout]
obsfamily [character ,in]
step [real ,in]
deltmax [integer ,in]
useblacklist [logical ,in]
considershipstnid [logical ,in]
- Called from
- Call to
obs_getheaderindex(),obs_headelem_i(),codtyp_get_codtyp(),obs_bodyelem_i(),obs_elem_c(),obs_headelem_r(),tim_getstepobsindex(),tim_getdatestamp(),utl_allreduce(),utl_abort(),intarraytompi(),logicalarraytompi(),stringarraytompi(),obs_bodyset_i()
- subroutine thinning_mod/thn_gpsrovertical(obsdat, heightmin, heightmax, heightspacing, gpsrovarno)¶
- Purpose
Original method for thinning GPSRO data by vertical distance. Set bit 11 of OBS_FLG on observations that are to be rejected.
- Arguments
obsdat [struct_obs ,inout]
heightmin [real ,in]
heightmax [real ,in]
heightspacing [real ,in]
gpsrovarno [integer ,in]
- Called from
- Call to
obs_getheaderindex(),obs_bodyelem_i(),obs_bodyelem_r(),obs_bodyset_i()
- subroutine thinning_mod/thn_radiosonde(obsdat, verticalthinninges, ecmwfrejetses, tolerancefactor)¶
- Purpose
Original method for thinning radiosonde data vertically. We assume that each vertical level is stored in obsSpaceData with a separate headerIndex. That is, the 4D representation. Set bit 11 of OBS_FLG on observations that are to be rejected.
- Arguments
obsdat [struct_obs ,inout]
verticalthinninges [logical ,in]
ecmwfrejetses [logical ,in]
tolerancefactor [real ,in]
- Called from
- Call to
obs_getheaderindex(),obs_bodyelem_i(),obs_headelem_i(),obs_headelem_r(),obs_elem_c(),obs_bodyelem_r(),utl_isnamelistpresent(),utl_abort(),vco_setupfromfile(),hco_setupfromfile(),gsv_allocate(),tim_getdatestamp(),gio_readfromfile(),gsv_deallocate(),tim_getstepobsindex(),intarraytompi(),realarraytompi(),stringarraytompi(),raobs_check_duplicated_stations(),raobs_thinning_model(),raobs_thinning_es(),raobs_blacklisting_ecmwf(),obs_bodyset_i()
- subroutine thinning_mod/stringarraytompi(array, arraympi)¶
- Purpose
Do the equivalent of mpi_allgatherv for a string array
- Arguments
array (*) [character ,in]
arraympi (*) [character ,out]
- Called from
- Call to
- subroutine thinning_mod/intarraytompi(array, arraympi[, is_obslevoffset_opt])¶
- Purpose
Do the equivalent of mpi_allgatherv for an integer array, but with special treatment if array of obsLevOffset.
- Arguments
array (*) [integer ,in]
arraympi (*) [integer ,out]
- Options
is_obslevoffset_opt [logical ,in,]
- Called from
- subroutine thinning_mod/realarraytompi(array, arraympi)¶
- Purpose
Do the equivalent of mpi_allgatherv for a real array,
- Arguments
array (*) [real ,in]
arraympi (*) [real ,out]
- Called from
- subroutine thinning_mod/logicalarraytompi(array, arraympi)¶
- Purpose
Do the equivalent of mpi_allgatherv for a logical array,
- Arguments
array (*) [logical ,in]
arraympi (*) [logical ,out]
- Called from
- subroutine thinning_mod/raobs_check_duplicated_stations(stnid, obslevoffset, obslat, obslon, obsheaddate, trajflags, obsflags, obsvalues, ominusb, obslaunchtime, stationflags, numvars, numstation, tolerancefactor)¶
- Purpose
Check duplicated stations and select the best TAC/BUFR profiles
- Arguments
stnid (*) [character ,inout]
obslevoffset (*) [integer ,in]
obslat (*) [real ,in]
obslon (*) [real ,in]
obsheaddate (*) [integer ,in]
trajflags (*,*) [integer ,in]
obsflags (*,*) [integer ,in]
obsvalues (*,*) [real ,in]
ominusb (*,*) [real ,in]
obslaunchtime (*) [integer ,in]
stationflags (*) [integer ,in]
numvars [integer ,in]
numstation [integer ,in]
tolerancefactor [real ,in]
- Called from
- Call to
raobs_check_if_same_profile(),raobs_compare_profiles(),utl_abort()
- subroutine thinning_mod/raobs_check_if_same_profile(stationindex, stationindex2, obsvalues, obslevoffset, sameprofile)¶
- Purpose
Check if two raobs profiles are the same.
- Arguments
stationindex [integer ,in]
stationindex2 [integer ,in]
obsvalues (*,*) [real ,in]
obslevoffset (*) [integer ,in]
sameprofile [logical ,out]
- Called from
- subroutine thinning_mod/raobs_compare_profiles(stationindex, stationindex2, stationflags, trajflags, obsflags, obsvalues, ominusb, obslevoffset, numvars, cloche, selectcriteria, selectstationindex, tolerancefactor)¶
- Purpose
Perform a comparison between two raobs profiles.
- Arguments
stationindex [integer ,in]
stationindex2 [integer ,in]
stationflags (*) [integer ,in]
trajflags (*,*) [integer ,in]
obsflags (*,*) [integer ,in]
obsvalues (*,*) [real ,in]
ominusb (*,*) [real ,in]
obslevoffset (*) [integer ,in]
numvars [integer ,in]
cloche (*) [integer ,inout]
selectcriteria [integer ,out]
selectstationindex [integer ,out]
tolerancefactor [real ,in]
- Called from
- subroutine thinning_mod/raobs_thinning_model(obsflags, obsvalues, presinterp, numvars, numlev, numstation, numlevstnmax, obslevoffset)¶
- Purpose
Perform raobs thinning by comparing with a set of model levels.
- Arguments
obsflags (*,*) [integer ,inout]
obsvalues (*,*) [real ,in]
presinterp (*,*) [real ,in]
numvars [integer ,in]
numlev [integer ,in]
numstation [integer ,in]
numlevstnmax [integer ,in]
obslevoffset (*) [integer ,in]
- Called from
- subroutine thinning_mod/raobs_thinning_es(obsflags, obsvalues, numstation, numlevstnmax, obslevoffset)¶
- Purpose
Perform thinning of T-Td raobs observations.
- Arguments
obsflags (*,*) [integer ,inout]
obsvalues (*,*) [real ,in]
numstation [integer ,in]
numlevstnmax [integer ,in]
obslevoffset (*) [integer ,in]
- Called from
- subroutine thinning_mod/raobs_blacklisting_ecmwf(obsflags, obsvalues, obstype, numstation, obslevoffset)¶
- Purpose
Perform filtering of T-Td raobs observations based on approach inspired by ECMWF approach
- Arguments
obsflags (*,*) [integer ,inout]
obsvalues (*,*) [real ,in]
obstype (*) [integer ,in]
numstation [integer ,in]
obslevoffset (*) [integer ,in]
- Called from