The namelist file: 'namelist.3dvar' has 13 records below. The meaning and

usages of each namelist variables are explained here.

 

 

&record1

 MODEL_TYPE = 'MM5',

   ; Specify the model type, which could be 'MM5' or 'WRF',

   ; but here just 'MM5' option is fully tested.         

 WRITE_INCREMENTS = .TRUE. /

   ; .TRUE.  indicates to write out the analysis increment file:

   ;         'DAProg_3DVAR.analincs' which is useful for plotting

   ;         the increments fields, especially for the SINGLE-OBS test.

   ; .FALSE. no increment file:'DAProg_3DVAR.analincs' written out.

 

 

&record2

 ANALYSIS_TYPE = '3D-VAR',

   ; Indicates the job type, now only '3D-VAR', not change.

 ANALYSIS_DATE = '1999-08-19_12:00:00.0000',

   ; Specify the analysis time.

 ANALYSIS_ACCU = 900 ,

   ; Specify the accuracy of the time difference in seconds between

   ; the above analysis time and the first guess time. For a multi-time

   ; first guess input file, for example the MM5 forecast file 'MMOUTPUT',

   ; the data at the particular time under

   ;  

   ;     abs (time - ANALYSIS_DATE) <=  ANALYSIS_ACCU

   ;

   ; are selected as the first guess. This is important for cycling run

   ; of '3DVAR->MM5->3DVAR->MM5...'.

   ;

 W_INCREMENTS  = .TRUE. /

   ; .TRUE.  the increment of the vertical velocity W will be diagnosed

   ;         based on the increments of other fields. If there is

   ;         information of the W from observations assimilated,

   ;         such as the Radar radial velocity, the W increments are

   ;         always computed, no matter W_INCREMENTS=.TRUE. or .FALSE.

   ; .FALSE. the increment of the vertical velocity W is zero if no

   ;         W information assimilated.

 

&record3

 fg_format = 2,

   ; Indicates the first guess format: 1 = WRF; 2 = MM5.

 ob_format = 2 /

   ; Indicates the observation file format: 1 = BURF; 2 = ASCII.

 

 

&record4

 PROCESS_OBS    = 'YES',

   ; Always set 'YES', not change.

 obs_qc_pointer = 0,

   ; Indicates the quality flag (qc) criterion, integer number, default is 0:

   ;    the data with qc >= obs_qc_pointer are assimilated.

   ;    the data with qc <  obs_qc_pointer are discarded.

 Use_SynopObs   = .TRUE.,

   ; .TRUE.  assimilate the SYNOP data if any available.

   ; .FALSE. not assimilate the SYNOP data even if available from OBS file.

 Use_ShipsObs   = .TRUE.,

   ; .TRUE.  assimilate the SHIPS data if any available.

   ; .FALSE. not assimilate the SHIPS data even if available from OBS file.

 Use_MetarObs   = .TRUE.,

   ; .TRUE.  assimilate the METAR data if any available.

   ; .FALSE. not assimilate the METAR data even if available from OBS file.

 Use_PilotObs   = .TRUE.,

   ; .TRUE.  assimilate the PILOT data if any available.

   ; .FALSE. not assimilate the PILOT data even if available from OBS file.

 Use_RadarObs   = .FALSE.,

   ; .TRUE.  assimilate the RADAR data if any available.

   ; .FALSE. not assimilate the RADAR data even if available from OBS file.

   ; ** Note at this moment, assimilation of Radar data (radial velocity)

   ;         is not working, so always set Use_RadarObs = .FALSE., no matter

   ;         the radar data available or not.

 Use_SoundObs   = .TRUE.,

   ; .TRUE.  assimilate the SOUND data if any available.

   ; .FALSE. not assimilate the SOUND data even if available from OBS file.

 Use_SatemObs   = .TRUE.,

   ; .TRUE.  assimilate the SATEM data if any available.

   ; .FALSE. not assimilate the SATEM data even if available from OBS file.

   ; ** Currently only the retrieved SATEM thickness data can be assimilated.

 

 Use_SatobObs   = .TRUE.,

   ; .TRUE.  assimilate the SATOB data if any available.

   ; .FALSE. not assimilate the SATOB data even if available from OBS file.

 Use_AirepObs   = .TRUE.,

   ; .TRUE.  assimilate the AIREP data if any available.

   ; .FALSE. not assimilate the AIREP data even if available from OBS file.

 Use_GpspwObs   = .TRUE.,

   ; .TRUE.  assimilate the GPSPW data if any available.

   ; .FALSE. not assimilate the GPSPW data even if available from OBS file.

 Use_ProfilerObs = .TRUE.,

   ; .TRUE.  assimilate the wind profiler data if any available.

   ; .FALSE. not assimilate the wind profiler data even if available

   ;         from OBS file.

 Use_BuoyObs     = .TRUE.,

   ; .TRUE.  assimilate the BUOY data if any available.

   ; .FALSE. not assimilate the BUOY data even if available from OBS file.

 Use_SsmiRetrievalObs = .TRUE.,

   ; .TRUE.  assimilate the SSMI retrieval data (PW and surface wind speed)

   ;         if any available.

   ; .FALSE. not assimilate the SSMI retrieval data (PW and surface wind

   ;         speed) even if available from OBS file.

 Use_SsmiTbObs  = .FALSE.,

   ; .TRUE.  assimilate the SSMI Brightness temperature data if any available.

   ; .FALSE. not assimilate the SSMI Brightness temperature data even if

   ;         available from OBS file.

   ; ** Note at this moment, assimilation of SSMI Brightness temperature data

   ;         is not working, so always set Use_SsmiTbObs =.FALSE., no matter

   ;         the SSMI Brightness temperature data available or not.

 use_ssmt1obs   = .FALSE.,

   ; .TRUE.  assimilate the SSMT1 (temperature) data if any available.

   ; .FALSE. not assimilate the SSMT1 (temperature) data even if available

   ;         from OBS file.

 use_ssmt2obs   = .FALSE.,

   ; .TRUE.  assimilate the SSMT2 (relative humidity) data if any available.

   ; .FALSE. not assimilate the SSMT2 (relative humidity) data even if

   ;         available from OBS file.

 use_qscatobs   = .TRUE.,

   ; .TRUE.  assimilate the Quik SCAT (SeaWinds) data if any available.

   ; .FALSE. not assimilate the Quik SCAT (SeaWinds) data even if available

   ; ** Note at this moment, assimilation of only the SeaWinds Level 2B data

   ;         from JPL.

 check_max_iv   = .TRUE.,

   ; .TRUE.  Go through the Maximum OBS error check based on the innovations

   ;         (O-B). For safety, in general, it should set check_max_iv = .TRUE.

   ; .FALSE. no Maximum OBS error check. Only when you sure that all of the

   ;         observation data have the good quality, such as in the SINGLE-OBS

   ;         tests, you can set check_max_iv = .FALSE.

 use_obs_errfac = .FALSE.,

   ; .TRUE.  the OBS error tuning factors need to be applied.

   ; .FALSE. no the OBS error tuning factors need to be applied. At this

   ;         moment, always set use_obs_errfac = .FALSE., not change.

 put_rand_seed  = .FALSE.,

   ; set put_rand_seed = .FALSE., not change.

 omb_set_rand   = .FALSE.,

   ; set omb_set_rand = .FALSE., not change.

 omb_add_noise  = .FALSE. /

   ; set omb_add_noise = .FALSE., not change.

 

 

&record5

 TIME_WINDOW    = 3.,

   ; The time window (hours) centered at the analysis time

   ; for the observations. Usually set TIME_WINDOW = 3. 

 PRINT_DETAIL   = 0 /

   ; a printing switch. 0 = no details printed; a non-zero values

   ; may cause huge stuff printed. Usually set PRINT_DETAIL = 0

 

 

 

&record6

 max_ext_its    = 1,

   ; Used to assign the number of the outer loops. For example,

   ; 1 = a single outer loop, 3 = 3 outer loops, etc., now the

   ; maximum number of outer loops is allowed to be 10.

 EPS            = 1.E-02,1.E-02,1.E-03,1.E-02,1.E-02,

                      1.E-02,1.E-02,1.E-02,1.E-02,1.E-02,

   ; Used to assign the minimization convergence criterion for the

   ; internal loop within each of the outer loops..

   ;

   ; Comments:

   ;

   ; The double loops incremental approach implemented in this new

   ; release version is a new feature. The purposes of introducing

   ; the outer-loops are

   ;

   ;  (1) to consider the non-linearities in the observation operators;

   ;  (2) to do multiple times of the background quality control on

   ;      the observations.

   ;

   ; Following the procedure proposed by Veerse and Thepaut (1998) and

   ; Courtier et al (1994) the cost function in the multiple outer-loop

   ; incremental approach became

   ;

   ;   J =  1/2 [X'(k) + X(k) - Xb]T  B-1 [X'(k) + X(k) - Xb]

   ;      + 1/2 SUM [H'X'(k) - d(k)]T R-1 [H'X'(k) - d(k)]

   ;

   ; where

   ;        k     is the outer-loop index, k = 1,..., max_ext_it

   ;       Xb    is the background

   ;       X(k)  is the first guess at the k-th outer-loop

   ;                X(k) = X(k-1) + X'(k-1)

   ;       X'(k) is the increments at the k-th outer-loop

   ;       d(k)  is the innovation at the k-th outer-loop

   ;                d(k) = [O - HX(k-1)]

   ;       X(0) = Xb and X'(0) = 0

   ;

   ; References:

   ;

   ; Courtier, P., J.N. Thepaut, and A. Hollingsworth, 1994: A strategy

   ;     for operational implementation of 4D-Var, using an incremental

   ;     approach. Q.J.R.Meteorol. Soc., 120, pp.1367-1387.

   ; Veerse, F., and J.-N. Thepaut, 1998: Multiple-truncation incremental

   ;     approach for four-dimensional variational data assimilation.

   ;     Q.J.R.Meteorol. Soc., 124, pp 1889-1908.

   ;      

 NTMAX          = 100,

   ; The maximum number of iterations of the minimization in internal loop.

 NVERIF         = 0,

   ; not used now, always set NVERIF = 0

 NSAVE          = 4,

   ; used for Quasi-Newton method (minimise_option=1), always set NSAVE = 4,

   ; not change.

 WRITE_SWITCH   = .FALSE.,

   ; .TRUE.  write out the analysis results during the minimization.

   ; .FALSE. not write out the analysis results during the minimization.

   ;         usually set WRITE_SWITCH = .FALSE., not change.

 WRITE_INTERVAL = 5 /

   ; Used to assign the interval (number of iterations) to write out the

   ; analysis results when WRITE_SWITCH = .TRUE.

 

&record7

   ; Note: these namelist variables in record7 are only applied to the

   ;           cv_options = 2.

   ;

 RF_PASSES      = 4,

   ; Used to assign the number of passes of recursive filter.

 VAR_SCALING1   = 1.0,

   ; The background error variance tuning factor for control variable 1 ---

   ; Stream function PSI.

 VAR_SCALING2   = 1.0,

   ; The background error variance tuning factor for control variable 2 ---

   ; potential velocity CHI.

 VAR_SCALING3   = 1.0,

   ; The background error variance tuning factor for control variable 3 ---

   ; unbalanced pressure Pu.

 VAR_SCALING4   = 1.0,

   ; The background error variance tuning factor for control variable 4 ---

   ; specific humidity q or relative humidity RH.

 VAR_SCALING5   = 1.0,

   ; Not used currently.

 LEN_SCALING1   = 1.0,

   ; The scale-length (used in the recursive filter) tuning factor

   ; for control variable 1 --- Stream function PSI.

 LEN_SCALING2   = 1.0,

   ; The scale-length (used in the recursive filter) tuning factor

   ; for control variable 2 --- potential velocity CHI.

 LEN_SCALING3   = 1.0,

   ; The scale-length (used in the recursive filter) tuning factor

   ; for control variable 3 --- unbalanced pressure Pu.

 LEN_SCALING4   = 1.0,

   ; The scale-length (used in the recursive filter) tuning factor

   ; for control variable 4 --- specific humidity q or relative humidity RH.

 LEN_SCALING5   = 1.0 /

   ; Not used currently.

 

 

&record8

 NSMOOTH        = 0,

   ; Not used currently, always set NSMOOTH = 0

 def_sub_domain = .FALSE.,

   ; Not used.

 xj_start_sub_domain = 55.0,

   ; Not used.

 yi_start_sub_domain = 35.0,

   ; Not used.

 xj_end_sub_domain   = 80.0,

   ; Not used.

 yi_end_sub_domain   = 60.0 /

   ; Not used.

 

 

&record10

 Testing_3DVAR  = .FALSE.,

   ; .TRUE.  Do the XToY adjoint test.

   ;

   ;         Here Y represents the observations, and X represents the

   ;         analyzed variables (note, not control variables).

   ;         XToY means the observation operators and their adjoint.

   ;

   ;         When you assimilate a NEW type of observation, and a NEW

   ;         observation operator and its adjoint code developed, you

   ;         must do this correctness check first by set

   ;         Testing_3DVAR  = .TRUE.. Once the correctness check is

   ;         successful, set Testing_3DVAR = .FALSE., and go ahead to

   ;         assimilate the observations.

   ;

   ;         Program stopped after check finished.

   ;

   ; .FALSE. Not do adjoint check, but do the 3DVAR data assimilation.

 Test_Transforms = .FALSE.,

   ; .TRUE.  Do the VToX transform correctness check.

   ;

   ;         Here V represents the control variables, X represents the

   ;         analyzed variables.

   ;         VToX means the transform formulas and their adjoint.

   ;

   ;         When you change the V or X, you must do the VToX check first

   ;         to guarantee the correctness.

   ;

   ;         Program stopped after check finished.

   ; .FALSE. Not do adjoint check, but do the 3DVAR data assimilation.

 Test_Statistics = .FALSE.,

   ; Not used.

 Interpolate_Stats = .TRUE. /

   ; Note: this namelist variable is only applied to cv_options = 2.

   ;

   ; .TRUE.  To get the interpolated Background Error Statistics (BES)

   ;         matching with your First Guess (FG).

   ;

   ;         When the BES file and FG file have the different domain size,

   ;         you must set Interpolate_Stats = .TRUE.

   ;

   ;         With Interpolate_Stats = .TRUE., a interpolated BES file

   ;         is automatically written out for next time use or for

   ;         plotting the Eigenvectors, Eigenvalues, ...

   ;                 

   ; .FALSE. When the BES file and FG file have the identical domain size.

 

 

&record11

 cv_options     = 2,

   ; 2 --> Use NCAR control variables: coefficients of the eigenvectors

   ;       for Psi, Chi, Pu, and q(Rh), and corresponding BES in minimization.

   ;       VToX includes 2 steps: VvToVp (Eigenvector space to physical space)

   ;                         and  VpToX  (control variables to analyzed

   ;                                 variables in physical space).

   ; 3 --> Use NCEP control variables: S, unbalanced Zu, unbalanced Tu,

   ;       pseudo-relative humidity Prh, and logarithm of the unbalanced

   ;       part of the surface pressure in physical space, and their

   ;       corresponding BES file.

   ;       For details, please look at wrf3dvar_cvoptions3

   ;

   ; Note: only cv_options = 2 with MM5 FG (fg_format=2) and ASCII OBS

   ;       file (ob_format=2) is fully tested in the release version.

   ;

 cv_options_hum = 1,

   ; This namelist variable is only effective for cv_options=2.

   ;

   ; 1 --> Use the specific humidity q as the control variable.

   ; 2 --> Use the relative humidity RH as the control variable.

 check_rh       = 2,

   ; This namelist variable is only effective for cv_options=2.

   ;

   ; 0 --> No supersaturation check after minimization.

   ; 1 --> With the supersaturation (rh>100%) and minimum rh

   ;       (rh<10%) check, and make the local adjustment of the

   ;       specific humidity.

   ; 2 --> With the maximum (rh>95%) and minimum (rh<11%) rh

   ;       check, and make the multi-level q adjustment under

   ;       the constraints of integrated water vapor in column

   ;       conserved.

 as1            = 0.2, 0.5, 1.5,

   ;  The tuning coefficients for variance, horizontal and vertical scales for control

   ;  variable 1 --- Stream function S. Used for cv_options=3 only.  

 as2            = 0.2, 0.5, 1.5,

   ;  The tuning coefficients for variance, horizontal and vertical scales for control

   ;  variable 2 --- unbalanced potential velocity Zu. Used for cv_options=3 only.  

 as3            = 0.2, 0.5, 1.5,

   ;  The tuning coefficients for variance, horizontal and vertical scales for control

   ;  variable 3 --- unbalanced part of temperature Tu. Used for cv_options=3 only.     

 as4            = 0.2, 0.5, 1.5,

   ;  The tuning coefficients for variance, horizontal and vertical scales for control

   ;  variable 4 --- Pseudo-relative humidity Prh. Used for cv_options=3 only.      

 as5            = 0.5, 1.0, 1.0,

   ;  The tuning coefficients for variance, horizontal and vertical scales for control

   ;  variable 5 --- unbalanced part of the surface pressure Pu.

   ;  (The Pu has only horizontal scale, no vertical scale). Used for cv_options=3 only.      

 sfc_assi_options = 2,

   ; Note: currently this namelist variable is only effective for

   ;       cv_options=2.

   ;

   ; 1 --> Before the minimization, the surface observed parameters

   ;       (wind, temperature, moisture and pressure) are reduced to

   ;       the lowest model level.

   ;

   ;       This means that the original observations are modified

   ;       based on the information of the first guess fields.

   ;

   ;       The observations are discarded when the elevations of the

   ;       observing sites are too far from the lowest model level height

   ;       (> 100m).

   ; 2 --> Based on the surface similarity theory in MM5/MRF/PBL, some

   ;       of the observation operators (Hx) are developed to get the

   ;       analysis equivalent of the surface observed parameters, then

   ;       the innovations are computed.

   ;

   ;       The original values of the surface observation are never

   ;       changed.

   ;

   ;       Regardless of the elevations of the observing sites, the

   ;       analysis 10-m wind and 2-m temperature, moisture are computed.

   ;       Only the analysis pressure computation need to consider the

   ;       station heights.

 set_omb_rand_fac = 1.0,

   ; Scaling factor for random O-B (*sigma_o). Not change. Not change.

 seed_array1    = 0,

   ; The first element of the seed for subroutine random_seed. Not change.

 seed_array2    = 0,

   ; The second element of the seed for subroutine random_seed. Not change.

 outer_loop_write = .TRUE.,

   ; .TRUE.  write out the analysis files for each of the outer-loops.

   ;       The fortran file units for these analysis files are fort.{21-max_ext_its+it},

   ;       where "it" is the sequential number of outer-loops.

   ; .FALSE. write out only the final analysis files.

 in_cg_cost_function_needed = .TRUE.,

   ; This namelist variable is only effective for minimise_option = 2

   ;

   ; .TRUE.  Compute the cost functions every iteration and output.

   ; .FALSE. Only the initial and final cost functions are computed

   ;         and output.

   ;

   ; Note: in general, you should set in_cg_cost_function_needed = .FALSE.

   ;       because the cost function computation is expensive. Only

   ;       when you want to get the plots for the performance of the

   ;       convergence, you may set in_cg_cost_function_needed = .TRUE.

 minimise_option = 2,

   ; 1 --> using the Quasi-Newton (QN) algorithm for the minimization.

   ; 2 --> using the Conjugate Gradient (CG) algorithm for the minimization.

 lat_stats_option = .TRUE. /

   ; This namelist variable is only effective for cv_options = 2 and

   ; Interpolate_Stats = .TRUE.

   ;

   ; .TRUE.  The I-dependent regression coefficients for balance part of

   ;         pressure are used. If the input BES file does not have

   ;         I-dependent regression coefficients, program stopped.

   ; .FALSE. The domain averaged regression coefficients for balance

   ;         part of pressure are used.

 

 

&record12

 balance_type   = 1 /

   ; Momentum-mass balance type:

   ;     1 = Geostrophic;

   ;     2 = Cyclostrophic;

   ;     3 = Geo/cyclostrophic.

   ;

   ; Note: the setting here must be identical to which (bhi(28,10) in the big header)

   ;           in BES file.

 

 

&record13

   ; The namelist variables in this record13 are only applied to cv_options=2.

   ; The settings of the namelist variables in this record should be identical

   ; to those in BES file.

   ;

 vert_corr      = 2,

   ; Currently you must set vert_corr = 2, i.e. the eigenvector decomposition

   ; method is applied in vertical in modeling the vertical correlationship.

 vertical_ip    = 0,

   ; The type of the vertical inner product:

   ;   0=Euclidean,

   ;   1=SQRT(pressure),

   ;   2=pressure

   ;

   ; Note: This value must be consistent with which {value from the big-header

   ;       Bhi(31,10)} in the BES file, otherwise program stopped.

 vert_evalue    = 1,

   ; 1 --> use the global eigenvector/eigenvalue. Now program hardwired

   ;       vert_evalue = 1, other values will stop the job. Not change it.

   ; 2 --> use the I-dependent eigenvector/eigenvalue.

   ;

   ; Note: Although the I-dependent (approximately latitude-dependent)

   ;       eigenvector and eigenvalue are available in BES file, the

   ;       GLOBAL eigenvector/eigenvalue gave smoother analysis results.

 max_vert_var1  = 99.0,

   ; Specify the maximum truncation value (percentage) to explain the variance of the

   ; control variable 1 -- Stream function, in eigenvector decomposition

 max_vert_var2  = 99.0,

   ; Specify the maximum truncation value (percentage) to explain the variance of the

   ; control variable 2 -- Potential velocity, in eigenvector decomposition

 max_vert_var3  = 99.0,

   ; Specify the maximum truncation value (percentage) to explain the variance of the

   ; control variable 3 -- Unbalanced part of pressure, in eigenvector

   ; decomposition

 max_vert_var4  = 99.0,

   ; Specify the maximum truncation value (percentage) to explain the variance of the

   ; control variable 4 -- Specify humidity or relative humidity, in

   ; eigenvector decomposition

 max_vert_var5  = 0.0 /

   ; Not used.

 

 

&pseudo_ob_nl

   ; The namelist variables in this record are used for the PSEUDO-OBS

   ; tests.

 num_pseudo     = 0,

   ; Set the number of pseudo observations. Currently only the value of 1

   ; is allowed, i.e. num_pseudo = 1 --- the SINGLE-OBS test.

 pseudo_x       = 1.0,

   ; Set the x-position (J) of the OBS in unit of grid-point.

 pseudo_y       = 1.0,

   ; Set the y-position (I) of the OBS in unit of grid-point.

 pseudo_z       = 1.0,

   ; Set the z-position (ZK) of OBS with the vertical level index.

   ; In MM5, the top level has z=1, and bottom level, z=kx.

 pseudo_val     = 1.0,

   ; Set the innovation of the OBS variable: u/v at m/s, p at Pa, t at degree,

   ; and q at kg/kg.

 pseudo_err     = 1.0,

   ; Set the OBS error of the OBS variable.

 pseudo_var     = 't' /

   ; Set the name of the OBS variable:

   ;   'u' = X-direction component of wind,

   ;   'v' = Y-direction component of wind,

   ;   't' = Temperature,

   ;   'p' = Prerssure,

   ;   'q' = Specific humidity