midas_prepcma¶
Dependency Diagrams:
- program midas_prepcma¶
- Purpose
Read the observation files (usually after output by the background check) and apply further quality control and thinning for use by the
LETKF
program—
- Algorithm
After reading the observation files that have been processed by the background check, the
prepcma
program rejects more observations based on the various flags and conditions. It also performs further thinnings on the data types of aircraft (AI), scatterometer (SC), satellite winds (SW) and some radiance (TO). The rejection and thinning are controlled by the options in the namelist ofNAMPREPCMA
.—
- File I/O
The required input files and produced output files are listed as follows.
–
Input and Output Files
Description of file
flnml
In - Main namelist file with parameters user may modify
flnml_static
In - The “static” namelist that should not be modified
obserr
In - Observation error statistics
obsfiles_$FAM/obs$FAM_$NNNN_$NNNN
In - Observation file for each “family”
stats_tovs
In - Satellite radiance observation errors
rtcoef_$PLATFORM_$SENSOR.dat
In - RTTOV coefficient files
obsfiles_$FAM.updated/obs$FAM_$NNNN_$NNNN
Out - final observation file for each family
—
- Synopsis
Below is a summary of the
prepcma
program calling sequence:
Initial setups:
Read the NAMPREPCMA namelist and check/modify some values.
filt_setup
: set up list of elements to be assimilated and flags for rejection
obsf_setup
: get observation file names and datestampComputation:
obsf_readFiles
: get the observations
filt_suprep
: select the elements to assimilate and apply rejection flags
oer_setObsErrors
: initialize obs error covariances and set flag
oti_setup
: reject any observations outside the data assimilation window
enkf_rejectHighLatIR
: reject all IR radiance observation in arctic and antarctic
enkf_modifyAmsubObsError
: modify the obs error stddev for AMSUB in the tropics
thinning_fam
: perform thinning for aircraft (AI), scatterometer (SC),satellite winds (SW) and some radiance (TO)
Final steps:
obsf_writeFiles
: write to burp/sqlite files
obsf_printFiles
: print to ascci file and to unformatted files—
- Options
List of namelist blocks that can affect the
prepcma
program.
Some of the relevant namelist blocks used to configure the prepcma are listed in the following table:
–
Program/Module
Namelist
Description of what is controlled
midas_prepcma
NAMPREPCMA
parameters for CMA format and others to modify, reject and thinning some observation data
timeCoord_mod
NAMTIME
assimilation time window length, temporal resolution of the background state and the analysis
tovs_nl_mod
NAMTOV
The list of satellite and instrument
Needed modules
version_mod
: MODULE version_mod (prefix=’ver’ category=’8. Low-level utilities and constants’)
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’)
obsfilter_mod
: MODULE obsFilter_mod (prefix=’filt’ category=’5. Observation operators’)
obstimeinterp_mod
: MODULE obsTimeInterp_mod (prefix=’oti’ category=’4. Data Object transformations’)
obserrors_mod
: MODULE obsErrors_mod (prefix=’oer’ category=’2. B and R matrices’)
tovsnl_mod
: MODULE tovsNL_mod (prefix=’tvs’ category=’5. Observation operators’)
timecoord_mod
: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)
enkf_mod
: MODULE enkf_mod (prefix=’enkf’ category=’1. High-level functionality’)
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’)
ramdisk_mod
: MODULE ramDisk_mod (prefix=’ram’ category=’8. Low-level utilities and constants’)
regions_mod
: MODULE regions_mod (prefix=’reg’ category=’7. Low-level data objects’)
burpread_mod
: MODULE burpRead_mod (prefix=’brpr’ category=’3. Observation input/output’)Routines called
ver_printnameandversion()
,mmpi_initialize()
,utl_tmg_start()
,utl_writestatus()
,utl_abort()
,ram_setup()
,filt_setup()
,obsf_setup()
,obs_class_initialize()
,obs_initialize()
,obsf_filessplit()
,obsf_readfiles()
,utl_tmg_stop()
,obs_numheader()
,obs_numbody()
,brpr_gettyperesume()
,tvs_setup()
,obs_famexist()
,filt_suprep()
,tvs_setupalloc()
,oer_setobserrors()
,tim_setup()
,tim_getdatestamp()
,tim_setdatestamp()
,oti_setup()
,enkf_rejecthighlatir()
,enkf_modifyamsubobserror()
,obsf_writefiles()
,obsf_cleanobsfiles()
,obs_clean()
,obs_expandtompiglobal()
,obs_print()
,obs_write()
,obs_finalize()
,reg_init_struct()
,reg_getlatitude()
,reg_getblock()
,obs_headelem_i()
,tvs_isidburptovs()
,obs_bodyelem_i()
,obs_headelem_r()
,reg_locatestn()
,obs_bodyelem_r()
,obs_bodyset_i()