thinning_mod¶
Dependency Diagrams:
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