midas_thinning

link to source code

Dependency Diagrams:

midas_thinning.svg

Direct Dependency Diagram

program  midas_thinning
Purpose

The thinning program reduces the density of observations for the purpose of assimilation.

Algorithm

After setting up the obsSpace_data object, the thinning program calls the filt_suprep routine which rejects certain observations based on blacklists and other checks.

Specific routines are then called for thinning each observation types. These routines are found in thinning_mod and are controlled by the following namelists:


Namelist

thn_surface

thn_raobs

thn_aircraft

thn_satwind

thn_gpsro

thn_gbgps

thn_aladin

thn_csr

thn_scat

thn_tovs

thn_hyper

thn_thinSatSST


Observations that are rejected by the thinning routines have their 11th bit flag set. In a subsequent step, these observations are removed from observation files.


File I/O

Input and Output Files (NWP applicaton)

Description of file

flnml

In - Main namelist file with parameters user may modify

trlm_$NN (e.g. trlm_01)

In - Background state -> necessary for observations in pressure coordinates.

Observation Files

In/Out - Sqlite/Burp observation files for different families.

Needed modules

  • version_mod: MODULE version_mod (prefix=’ver’ category=’8. Low-level utilities and constants’)

  • ramdisk_mod: MODULE ramDisk_mod (prefix=’ram’ category=’8. Low-level utilities and constants’)

  • utilities_mod: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)

  • midasmpi_mod: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)

  • timecoord_mod: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)

  • obsspacedata_mod: MODULE obsSpaceData_mod (prefix=’obs’ category=’6. High-level data objects’)

  • obsfiles_mod: MODULE obsFiles_mod (prefix=’obsf’ category=’3. Observation input/output’)

  • tovsnl_mod: MODULE tovsNL_mod (prefix=’tvs’ category=’5. Observation operators’)

  • obsfilter_mod: MODULE obsFilter_mod (prefix=’filt’ category=’5. Observation operators’)

  • thinning_mod: MODULE thinning_mod (prefix=’thn’ category=’1. High-level functionality’)

  • fsqlite

Routines called

ver_printnameandversion(), mmpi_initialize(), utl_tmg_start(), ram_setup(), obsf_setup(), obs_class_initialize(), obs_initialize(), filt_setup(), obsf_readfiles(), utl_tmg_stop(), tvs_setup(), obs_famexist(), filt_suprep(), tim_setup(), tim_getdatestamp(), tim_setdatestamp(), utl_abort(), thn_thinhyper(), thn_thintovs(), thn_thincsr(), thn_thinscat(), thn_thinsatwinds(), thn_thinaircraft(), thn_thinsurface(), thn_thingbgps(), thn_thingpsro(), thn_thinaladin(), obsf_writefiles(), obsf_cleanobsfiles(), obs_finalize()