<p><b>duda</b> 2008-07-01 10:55:51 -0600 (Tue, 01 Jul 2008)</p><p>More formatting changes.<br>
<br>
M users_guide_chap6.doc<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/wrf/UsersGuide/users_guide_chap6.doc
===================================================================
--- trunk/wrf/UsersGuide/users_guide_chap6.doc        2008-07-01 15:55:28 UTC (rev 96)
+++ trunk/wrf/UsersGuide/users_guide_chap6.doc        2008-07-01 16:55:51 UTC (rev 97)
@@ -1,7 +1,4 @@
-ࡱ
-
-
-
In this chapter, you will learn how to run the various components of WRF-Var system. In the online tutorial, you are supplied with a test case including the following input data: a) observation file, b) WRF NETCDF background file (previous forecast used as a first guess of the analysis), and c) Background error statistics (climatological estimate of errors in the background file). In your own work, you will need to create these input files yourselves.
Before using your own data, we suggest that you start by running through the WRF-Var related programs at least once using the supplied test case. This serves two purposes: First, you can learn how to run the programs with data we have tested ourselves, and second, you can test whether your computer is adequate to run the entire modeling system. After you have done the online tutorial, you can try
Running other, more computationally intensive, case studies.
-
Experimenting with some of the many namelist variables.
WARN!
ING: It is impossible to test every code upgrade with every permutation of computer, compiler, number of processors, case, namelist option, etc. The namelist options that are supported are indicated in the Registry.wrfvar and these are the default options. WRF-Var may be run with options other than the default option by specifying its value via the wrapper script. Sample of wrapper scripts are included in var/scripts/wrappers directory. For running WRF-Var, you may like to adopt a suitable wrapper script in this directory and modify it depending on your case. Note: All scripts are provided for your reference only; we dont have enough resource to support these scripts.
@@ -37,9 +33,7 @@
Installing WRF-Var
Before compiling the WRF-Var code, it is necessary to have installed the NetCDF, BLAS, LAPACK, and BUFR libraries. If any of the BLAS, LAPACK and BUFR libraries are not available on the computer, they needs to be installed first. The source code for these libraries can be freely downloaded from HYPERLINK "http://netlib.org/blas/" http://netlib.org/blas/, HYPERLINK "http://netlib.org/lapack/" http://netlib.org/lapack/, and HYPERLINK "http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/" http://www.nco.ncep.noaa.gov/sib/decoders/BUFRLIB/. Assuming, for example, that these libraries have been installed in subdirectories of /usr/local, the necessary environment variables might be set with
-setenv BLAS /usr/local/blas
-setenv LAPACK /usr/local/lapack
-setenv BUFR /usr/local/bufr
+setenv BLAS /usr/local/blassetenv LAPACK /usr/local/lapacksetenv BUFR /usr/local/bufr
Hint: Make sure the required libraries were !
all compiled using the same compiler that will be used to build WRF-Var, since the libraries produced by one compiler may not be compatible with code compiled with another.
Assuming all required libraries are available, the WRF-Var Version 3 source code can be downloaded from HYPERLINK "http://www.mmm.ucar.edu/wrf/users/download/get_source.html" http://www.mmm.ucar.edu/wrf/users/download/get_source.html. After the tar file is unzipped (gunzip WRFDAV3.TAR.gz) and untarred (untar WRFDAV3.TAR), the directory WRFDA should be created; this directory contains the WRF-Var source code.
To configure WRF-Var, change to the WRFDA directory and type
@@ -88,45 +82,60 @@
Hint: It is helpful to start with a very basic configuration, such as the serial build. If it is successful, move on to build dmpar code. Remember to type clean a between each build.
To compile the code, type
> ./compile all_wrfvar
-Successful compilation of all_wrfvar will produce several executables in the var/da directory including da_wrfvar.exe. You can list these executables by issuing the command (from the WRFDA directory)
+Successful compilation of all_wrfvar will produce several executables in the var/da directory including da_wrfvar.exe. You can list these executables by issuing the command (from the WRFDA directory)
> ls -l var/da/*exe
--rwxr-xr-x 1 users 2450389 Jun 16 11:45 var/da/da_advance_time.exe
--rwxr-xr-x 1 users 3219026 Jun 16 11:45 var/da/da_bias_airmass.exe
--rwxr-xr-x 1 users 2803020 Jun 16 11:45 var/da/da_bias_scan.exe
--rwxr-xr-x 1 users 2775303 Jun 16 11:45 var/da/da_bias_sele.exe
--rwxr-xr-x 1 users 3110924 Jun 16 11:!
45 var/da/da_bias_verif.exe
--rwxr-xr-x 1 users 2765725 Jun 16 11:46 var/da/da_rad_diags.exe
--rwxr-xr-x 1 users 2622925 Jun 16 11:46 var/da/da_tune_obs_desroziers.exe
--rwxr-xr-x 1 users 2599307 Jun 16 11:46 var/da/da_tune_obs_hollingsworth1.exe
--rwxr-xr-x 1 users 2469588 Jun 16 11:46 var/da/da_tune_obs_hollingsworth2.exe
--rwxr-xr-x 1 users 2786060 Jun 16 11:46 var/da/da_update_bc.exe
--rwxr-xr-x 1 users 3046675 Jun 16 11:46 var/da/da_verif_anal.exe
--rwxr-xr-x 1 users 2518174 Jun 16 11:45 var/da/da_verif_obs.exe
--rwxr-xr-x 1 users 23928871 Jun 16 11:45 var/da/da_wrfvar.exe
-lrwxrwxrwx 1 users 26 Jun 16 11:46 var/da/gen_be_cov2d.exe -> ../gen_be/gen_be_cov2d.exe
-lrwxrwxrwx 1 users 26 Jun 16 11:46 var/da/gen_be_cov3d.exe -> ../gen_be/gen_be_cov3d.exe
-lrwxrwxrwx 1 users 26 Jun 16 11:46 var/da/gen_be_diags.exe -> ../gen_be/gen_be_diags.exe
-lrwxrwxrwx 1 users 31 Jun 16 11:46 var/da/gen_be_diags_read.exe -> ../gen_be/gen_be_diags!
_read.exe
-lrwxrwxrwx 1 users 28 Jun 16 11:46 var/da/gen!
_be_ensm
ean.exe -> ../gen_be/gen_be_ensmean.exe
-lrwxrwxrwx 1 users 26 Jun 16 11:46 var/da/gen_be_ensrf.exe -> ../gen_be/gen_be_ensrf.exe
-lrwxrwxrwx 1 users 24 Jun 16 11:46 var/da/gen_be_ep1.exe -> ../gen_be/gen_be_ep1.exe
-lrwxrwxrwx 1 users 24 Jun 16 11:46 var/da/gen_be_ep2.exe -> ../gen_be/gen_be_ep2.exe
-lrwxrwxrwx 1 users 25 Jun 16 11:46 var/da/gen_be_etkf.exe -> ../gen_be/gen_be_etkf.exe
-lrwxrwxrwx 1 users 31 Jun 16 11:46 var/da/gen_be_stage0_wrf.exe -> ../gen_be/gen_be_stage0_wrf.exe
-lrwxrwxrwx 1 users 33 Jun 16 11:46 var/da/gen_be_stage1_1dvar.exe -> ../gen_be/gen_be_stage1_1dvar.exe
-lrwxrwxrwx 1 users 27 Jun 16 11:46 var/da/gen_be_stage1.exe -> ../gen_be/gen_be_stage1.exe
-lrwxrwxrwx 1 users 33 Jun 16 11:46 var/da/gen_be_stage2_1dvar.exe -> ../gen_be/gen_be_stage2_1dvar.exe
-lrwxrwxrwx 1 users 28 Jun 16 11:46 var/da/gen_be_stage2a.exe -> ../gen_be/gen_be_stage2a.exe
-lrwxrwxrwx 1 users !
27 Jun 16 11:46 var/da/gen_be_stage2.exe -> ../gen_be/gen_be_stage2.exe
-lrwxrwxrwx 1 users 27 Jun 16 11:46 var/da/gen_be_stage3.exe -> ../gen_be/gen_be_stage3.exe
-lrwxrwxrwx 1 users 34 Jun 16 11:46 var/da/gen_be_stage4_global.exe -> ../gen_be/gen_be_stage4_global.exe
-lrwxrwxrwx 1 users 36 Jun 16 11:46 var/da/gen_be_stage4_regional.exe -> ../gen_be/gen_be_stage4_regional.exe
+-rwxr-xr-x users 2450389 var/da/da_advance_time.exe
+-rwxr-xr-x users 3219026 var/da/da_bias_airmass.exe
+-rwxr-xr-x users 2803020 var/da/da_bias_scan.exe
+-rwxr-xr-x users 2775303 var/da/da_bias_sele.exe
+-rwxr-xr-x users 3110924 var/da/da_bias_verif.exe
+-rwxr-xr-x users 2765725 var/da/da_rad_diags.exe
+-rwxr-xr-x users 2622925 var/da/da_tune_obs_desroziers.exe
+-rwxr-xr-x users 2599307 var/da/da_tune_obs_hollingsworth1.exe
+-rwxr-xr-x users 2469588 var/da/da_tune_obs_hollingsworth2.exe
+-rwxr-xr-x users 2786060 var/da/da_update_bc.exe
+-rwxr-xr-x users !
3046675 var/da/da_verif_anal.exe
+-rwxr-xr-x users 2518174 v!
ar/da/da
_verif_obs.exe
+-rwxr-xr-x users 23928871 var/da/da_wrfvar.exe
+lrwxrwxrwx users 26 var/da/gen_be_cov2d.exe ->
+../gen_be/gen_be_cov2d.exe
+lrwxrwxrwx users 26 var/da/gen_be_cov3d.exe ->
+../gen_be/gen_be_cov3d.exe
+lrwxrwxrwx users 26 var/da/gen_be_diags.exe ->
+../gen_be/gen_be_diags.exe
+lrwxrwxrwx users 31 var/da/gen_be_diags_read.exe ->
+../gen_be/gen_be_diags_read.exe
+lrwxrwxrwx users 28 var/da/gen_be_ensmean.exe ->
+../gen_be/gen_be_ensmean.exe
+lrwxrwxrwx users 26 var/da/gen_be_ensrf.exe ->
+../gen_be/gen_be_ensrf.exe
+lrwxrwxrwx users 24 var/da/gen_be_ep1.exe ->
+../gen_be/gen_be_ep1.exe
+lrwxrwxrwx users 24 var/da/gen_be_ep2.exe ->
+../gen_be/gen_be_ep2.exe
+lrwxrwxrwx users 25 var/da/gen_be_etkf.exe ->
+../gen_be/gen_be_etkf.exe
+lrwxrwxrwx users 31 var/da/gen_be_stage0_wrf.exe ->
+../gen_be/gen_be_stage0_wrf.exe
+lrwxrwxrwx users 33 var/da/gen_be_stage1_1dva!
r.exe ->
+../gen_be/gen_be_stage1_1dvar.exe
+lrwxrwxrwx users 27 var/da/gen_be_stage1.exe ->
+../gen_be/gen_be_stage1.exe
+lrwxrwxrwx users 33 var/da/gen_be_stage2_1dvar.exe ->
+../gen_be/gen_be_stage2_1dvar.exe
+lrwxrwxrwx users 28 var/da/gen_be_stage2a.exe ->
+../gen_be/gen_be_stage2a.exe
+lrwxrwxrwx users 27 var/da/gen_be_stage2.exe ->
+../gen_be/gen_be_stage2.exe
+lrwxrwxrwx users 27 var/da/gen_be_stage3.exe ->
+../gen_be/gen_be_stage3.exe
+lrwxrwxrwx users 34 var/da/gen_be_stage4_global.exe ->
+../gen_be/gen_be_stage4_global.exe
+lrwxrwxrwx users 36 var/da/gen_be_stage4_regional.exe ->
+../gen_be/gen_be_stage4_regional.exe
After successful compilation of WRF-Var, you are ready to run WRF-Var for the test case.
-
-
-
Running WRF-Var
In this section, you will learn how to run WRF-Var using observations and a first guess from a low-resolution (200 km) CONUS domain.
a. Download Test Data
@@ !
-137,42 +146,29 @@
NETCDFWRF Preprocessing System (WPS)
or WRFObservationsASCII
(PREPBUFR also possible) HYPERLINK \l "_Running_Observation_Preprocessor" Observation Preprocessor (OBSPROC)Background Error StatisticsBinary HYPERLINK \l "_Running_gen_be" WRF-Var gen_be utilityIn the online tutorial, you will store data in a directory defined by the environment variable $DAT_DIR. This directory can be at any location and it should have read access. To run this case there should be at least 100MB of space available (other cases can require significantly more). Type
-        setenv DAT_DIR dat_dir
+        > setenv DAT_DIR dat_dir
Here, "dat_dir" is your own chosen directory where WRF-Var input data will be stored. Create this directory, if it does not exist, and type
-        cd $DAT_DIR
+        > cd $DAT_DIR
Download the tutorial test data for the con200 case, which is valid at 0000 UTC on 02 January 2007, from
HYPERLINK "http://www.mmm.ucar.edu/wr!
f/src/data/WRFV3-Var-testdata.tar.gz" http://www.mmm.ucar.edu/wrf/src/data/WRFV3-Var-testdata.tar.gz
Once you have downloaded WRFV3-Var-testdata.tar.gz file to $DAT_DIR, extract it by typing
-        gunzip WRFV3-Var-testdata.tar.gz
-        tar -xvf WRFV3-Var-testdata.tar
+        > gunzip WRFV3-Var-testdata.tar.gz
+        > tar -xvf WRFV3-Var-testdata.tar
After unpacking the test data, the following directories and files should exist within $DAT_DIR
-ob/2007010200/ob.little_r (Observation data in little_r format)
-rc/2007010200/wrfinput_d01(First guess file)
-rc/2007010200/wrfbdy_d01(Lateral boundary file)
-be/be.dat (Background error file)
+ob/2007010200/ob.little_r        (Observation data in little_r format)rc/2007010200/wrfinput_d01        (First guess file)rc/2007010200/wrfbdy_d01                (Lateral boundary file)be/be.dat                                         (Background error file)
By this point, you have all three input files (first guess, observation, and background error statistics) required to run WRF-Var. Also, you!
have successfully downloaded and compiled the WRF-Var code. I!
f not, t
hese steps must first be completed in order to run the test case.
b. Run The Case
The data for this case is valid at 00 UTC, 2nd January 2007. The first guess comes from the NCEP global final analysis system (FNL), passed through the WPS and real pre-processing packages. The first-guess level 18 potential temperature field is shown below, illustrating the domain:
Note: In WRF-Var, various NCL scripts are included under the var/graphics/ncl sub-directory to display results.
We provide a sample script to run the codes in WRFDA/var/scripts/wrappers/da_run_suite_wrapper_con200.ksh. In order to use the script, the following environment variables need to be set in this script.
-REL_DIR                 - Full path of the parent code directory
-WRFVAR_DIR         - Full directory path of wrfvar under $REL_DIR
-DAT_DIR                - Full path of data input holding ob, be, rc directories
-REGION                - String representing region under $DAT_DIR
-OB_DIR                - Full path for Observation directory
-RC_DIR                - Full pa!
th for FG directory
-BE_DIR                - Full path for background error (BE) directory
-INITIAL_DATE        - Initial date for running WRF-Var
-FINAL_DATE        - Final date for running WRF-Var
+REL_DIR                 - Full path of the parent code directoryWRFVAR_DIR         - Full directory path of wrfvar under $REL_DIRDAT_DIR                - Full path of data input holding ob, be, rc directoriesREGION                - String representing region under $DAT_DIR OB_DIR                - Full path for Observation directoryRC_DIR                - Full path for FG directoryBE_DIR                - Full path for background error (BE) directory INITIAL_DATE        - Initial date for running WRF-VarFINAL_DATE        - Final date for running WRF-Var
The following environment variables are optional:
-EXPT        - Experiment ID (expt)
-RUN_DIR - Full path for run directory
-FC_DIR - Analysis output directory
+EXPT                        - Experiment ID (expt)RUN_DIR                 - Full path for run directory FC_DIR                 - Analysis output directory
Note: Since output is written in $RUN_DIR, it is important for this di!
rectory to have write permissions enabled for the user account!
under w
hich the test case will be run.
Once you have set the necessary environment variables, the case may be run by typing
-        da_run_suite_wrapper_con200.ksh
+        > da_run_suite_wrapper_con200.ksh
in the WRFDA/var/scripts/wrappers subdirectory (or from the directory where your modified wrapper script is located).
Successful completion of the test case results in a number of output diagnostic files in the ${RUN_DIR} directory. The final analysis file (wrfinput_d01) will appear under the ${FC_DIR}/2007010200 directory. The various textual diagnostics output files will be explained in the next section (HYPERLINK \l "_WRF-Var_Diagnostics_1"WRF-Var Diagnostics).
In order to understand the role of various important WRF-Var options, try re-running WRF-Var by changing different namelist options via the wrapper script. For example, make the WRF-Var minimization convergence criteria more stringent by reducing the value of EPS to, e.g., 0.0001 by setting "NL_EPS=0!
.0001" in your wrapper script. If WRF-Var has not converged by the maximum number of iterations (NTMAX=200) then you may need to increase the value of NTMAX variable by setting "export NL_NTMAX=500" in your wrapper script, and in this event, you may like to run the case again. The last section of this tutorial deals with many such WRF-Var additional exercises.
@@ -181,22 +177,10 @@
WRF-Var Diagnostics
WRF-Var produces a number of diagnostic files that contain useful information on how the data assimilation has performed. This section will introduce you to some of these files, and what to look for.
Having run WRF-Var, it is important to check a number of output files to see if the assimilation appears sensible. Change directory to where you ran this case:
-        > cd ${RUN_DIR}/2007010200/wrfvar
+        > cd ${RUN_DIR}/2007010200/wrfvar
        > ls -l
You will see something like the following:
-total 15748
--rw-r--r-- 1 users 2248804 Jun 18 13:17 check_max_iv
--rw-r--r-- 1 users 1985 Jun 18 13:17 cost_fn
--rw-r--r-- 1 users 1745 Jun 18 13:17 grad_fn
--rw-r--r-- 1 users 9048641 Jun 18 13:17 gts_omb_oma
--rw-r--r-- 1 users 8213 Jun 18 13:17 index.html
--rw-r--r-- 1 users 2167 Jun 18 13:17 jo
--rw-r--r-- 1 users 2009 Jun 18 13:16 namelist.input
--rw-r--r-- 1 users 276658 Jun 18 13:17 namelist.output
--rw-r--r-- 1 users 22730 Jun 18 13:17!
statistics
-drwxr-xr-x 2 users 4096 Jun 18 13:15 trace
--rw-r--r-- 1 users 4393186 Jun 18 13:17 unpert_obs
-drwxr-xr-x 3 users 4096 Jun 18 13:17 working
+-rw-r--r-- 1 users 2248804 check_max_iv-rw-r--r-- 1 users 1985 cost_fn-rw-r--r-- 1 users 1745 grad_fn-rw-r--r-- 1 users 9048641 gts_omb_oma-rw-r--r-- 1 users 8213 index.html-rw-r--r-- 1 users 2167 jo-rw-r--r-- 1 users 2009 namelist.input-rw-r--r-- 1 users 276658 namelist.output-rw-r--r-- 1 users 22730 statisticsdrwxr-xr-x 2 users 4096 trace-rw-r--r-- 1 users 4393186 unpert_obsdrwxr-xr-x 3 users 4096 working
The contents of some of the more useful diagnostic files are as follows:
cost_fn and grad_fn: These files hold (in ASCII format) WRF-Var cost and gradient function values, respectively, for the first and last iterations. However, if you run with NL_CALCULATE_CG_COST_FN=true, these values will be listed for each iteration; this can be helpful for visualization purposes. The N!
CL script WRFDA/var/graphcs/ncl/plot_cost_grad_fn.ncl may be u!
sed to p
lot the content of cost_fn and grad_fn, if these files are generated with NL_CALCULATE_CG_COST_FN=true.
Note: Make sure that you remove the first two records (header) in cost_fn and grad_fn. Also you need to specify the directory name for these two files.
@@ -208,7 +192,7 @@
The final analysis file should be located in ${RUN_DIR}/2007010200/wrfvar /working/wrfvar_output, and a second copy should also be found in ${FC_DIR}/2007010200/wrfinput_d01. It is in WRF (NETCDF) format, and may be visualized using the NCL script WRFDA/var/graphcs/ncl/WRF-Var_plot.ncl.
You need to specify the analsyis_file name, its full path etc. The details are listed in this script as comments.
As an example, if you are aiming to display U-component of the analysis at level 18, execute the following command after modifying the script WRFDA/var/graphcs/ncl/WRF-Var_plot.ncl
- > ncl WRF-Var_plot.ncl
+> ncl WRF-Var_plot.ncl
If successful, the script should display a figure similar the one below.
@@ -217,12 +201,11 @@
How closely has WRF-Var fitted individual observation types? Look at the statistics file to compare the O-B and O-A statistics.
How big are the analysis increments? Again, look in the statistics file to see minimum/maximum values of A-B for each variable at various levels. It will give you a feel of the impact of input observation data you assimilated via WRF-Var by modifying the input analysis first guess.
How long did WRF-Var take to converge? Does it really converge? You will get the answers of all these questions by looking into rsl-files, as it indicates the number of iterations taken by WRF-Var to converge. If this is the same as the maximum number of iterations specified in the namelist (NTMAX) or its default value (=200) set in WRFDA/Registry/Registry.wrfvar, then it means that the analysis solution did not converge. If so, so you may like to increase the value of NTAMAX and re-run your case to ensure that the convergence is achieved.
-A good visual way of see!
ing the impact of assimilation of observations is to plot the analysis increments (i.e., analysis minus first guess difference). There are many different graphics packages used (e.g. RIP, NCL, GRADS etc) that can do this. The plot of level 18 theta increments, below, was produced using the particular NCL script. This script is located at
-WRFDA/var/graphcs/ncl/WRF-Var_plot.ncl
+A good visual way of seeing the impact of assimilation of observations is to plot the analysis increments (i.e., analysis minus first guess difference). There are many different graphics packages used (e.g. RIP, NCL, GRADS etc) that can do this. The plot of level 18 theta increments, below, was produced using the particular NCL script. This script is located at WRFDA/var/graphcs/ncl/WRF-Var_plot.ncl
You need to modify this script to fix the full path for first_guess and analysis files. You may also like to modify the display level by setting kl and the name of the variable to display by setting v!
ar. Further details are given in this script.
If you are ai!
ming to
display increment of potential temperature at level 18, after modifying WRFDA/var/graphcs/ncl/WRF-Var_plot.ncl suitably.
When you execute the following command from WRFDA/var/graphics/ncl.
- > ncl WRF-Var_plot.ncl
+> ncl WRF-Var_plot.ncl
The plot created should look similar to the one below.
Note: Larger analysis increments indicate a larger data impact in the corresponding region of the domain.
@@ -232,9 +215,9 @@
This is a simple procedure performed by the WRF utility da_updated_bc.
Note: Make sure that you have da_update_bc.exe in the WRFDA/var/da directory. This executable automatically gets created when you compiled WRF-Var system.
The da_update_bc.exe program is run (via the same wrapper script used for the con200 case) by adding following line to your wrapper script:
- export RUN_UPDATE_BC=true
+export RUN_UPDATE_BC=true
By setting this option, the standard script located at WRFDA/var/scripts/da_run_update_bc.ksh will be activated to update the content of the wrfbdy_d01 file. The new lateral boundary input file will be located at the $FC_DIR and with the same name. You may like to check its date of creation by issuing the following command
- > ls ltr $FC_DIR/2007010200/wrfbdy_d01
+> ls ltr $FC_DIR/2007010200/wrfbdy_d01
Running gen_be
The gen_be utility is part of the WRF-Var system, and is therefore distributed as part of the WRFDA release. The Fortr!
an code for gen_be can be found in WRFDA/var/gen_be. The scripts to run these codes are in WRFDA/var/scripts/gen_be.
@@ -247,21 +230,21 @@
Example directory/files structure for a CON200 domain (45 x 45 x 28 gridpoints):
--rw-r--r-- 1 users 3246536 Jun 16 15:07 2007010100/wrfout_d01_2007-01-01_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:07 2007010100/wrfout_d01_2007-01-01_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:07 2007010100/wrfout_d01_2007-01-02_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:08 2007010112/wrfout_d01_2007-01-01_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:08 2007010112/wrfout_d01_2007-01-02_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:08 2007010112/wrfout_d01_2007-01-02_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:09 2007010200/wrfout_d01_2007-01-02_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:09 2007010200/wrfout_d01_2007-01-02_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 15:09 2007010200/wrfout_d01_2007-01-03_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:42 2007010212/wrfout_d01_2007-01-02_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:42 2007010212/wrfout_d01_2007-01-03!
_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:42 2007010212/wrfout_d01_2007-01-03_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:43 2007010300/wrfout_d01_2007-01-03_00:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:43 2007010300/wrfout_d01_2007-01-03_12:00:00
--rw-r--r-- 1 users 3246536 Jun 16 14:43 2007010300/wrfout_d01_2007-01-04_00:00:00
+-rw-r--r-- 1 users 3246536 2007010100/wrfout_d01_2007-01-01_00:00:00
+-rw-r--r-- 1 users 3246536 2007010100/wrfout_d01_2007-01-01_12:00:00
+-rw-r--r-- 1 users 3246536 2007010100/wrfout_d01_2007-01-02_00:00:00
+-rw-r--r-- 1 users 3246536 2007010112/wrfout_d01_2007-01-01_12:00:00
+-rw-r--r-- 1 users 3246536 2007010112/wrfout_d01_2007-01-02_00:00:00
+-rw-r--r-- 1 users 3246536 2007010112/wrfout_d01_2007-01-02_12:00:00
+-rw-r--r-- 1 users 3246536 2007010200/wrfout_d01_2007-01-02_00:00:00
+-rw-r--r-- 1 users 3246536 2007010200/wrfout_d01_2007-01-02_12:00:00
+-rw-r--r-- 1 users 3246536 2007010200/wrfout_d01_2007-01-03_00:00:00
+-rw-r--r-- 1 us!
ers 3246536 2007010212/wrfout_d01_2007-01-02_12:00:00
+-rw-r--!
r-- 1 us
ers 3246536 2007010212/wrfout_d01_2007-01-03_00:00:00
+-rw-r--r-- 1 users 3246536 2007010212/wrfout_d01_2007-01-03_12:00:00
+-rw-r--r-- 1 users 3246536 2007010300/wrfout_d01_2007-01-03_00:00:00
+-rw-r--r-- 1 users 3246536 2007010300/wrfout_d01_2007-01-03_12:00:00
+-rw-r--r-- 1 users 3246536 2007010300/wrfout_d01_2007-01-04_00:00:00
In the above example, only 3 days (00Z 01 Jan to 00Z 03 Jan. 2007) of forecasts, every 12 hours, are supplied to gen_be_wrapper to estimate forecast error covariance; this is only for demonstration. The minimum number of forecasts required depends on the application, number of grid points, etc. Month-long (or longer) datasets are typical for the NMC-method. Generally, at least 1-month dataset should be used.
@@ -277,46 +260,44 @@
Note: The forecast dataset should be located in $EXP_DIR/fc. Then type:
- > gen_be_wrapper.ksh
+> gen_be_wrapper.ksh
Once gen_be_wrapper.ksh completes, the be.dat file can be found under the $EXP_DIR/gen_be directory.
-To get a clearer idea about what are include in BE, the script gen_be_plot_wrapper.ksh may be used to plot various data in be.dat such as:
+To get a clearer idea about what are include in BE, the script gen_be_plot_wrapper.ksh may be used to plot various data in be.dat such as
+
Running Observation Preprocessor (OBSPROC)
The OBSPROC program decodes observations in LITTLE_R format, such as the ouput of the MM5 "gts_decoder" or the "fetch.csh" utilities for inputting into the WRF-Var system. For more information about the LITTLE_R format, please refer to HYPERLINK "http://www.mmm.ucar.edu/mm5/mm5v3/data/how_to_get_rawdata.html" http://www.mmm.ucar.edu/mm5/mm5v3/data/how_to_get_rawdata.html.
The ba!
sic operations performed by OBSPROC are:
-1) Remove the observations outside the time range and domain (horizontal and top).
-2) Re-order and merge the duplicate (time and location) data reports.
-3) Retrieve the pressure or height based on the observed information with the hydrostatic assumption.
-4) Check the vertical consistency and super adiabatic for multi-level observations.
-5) Estimate observational error based on the pre-specified error file.
-6) Write out at the WRF-Var input format.
-7) Plot the distribution for each type of observations.
+Remove the observations outside the time range and domain (horizontal and top).
+Re-order and merge the duplicate (time and location) data reports.
+Retrieve the pressure or height based on the observed information with the hydrostatic assumption.
+Check the vertical consistency and super adiabatic for multi-level observations.
+Estimate observational error based on the pre-specified error file.
+Write out at the WRF-Var input !
format.
+Plot the distribution for each type of observations.
!
The W
RF-Var observation preprocessor may be found in the WRFDA/var/obsproc directory
-        > cd WRFDA/var/obsproc
+> cd WRFDA/var/obsproc
        > make
Once this is complete (a minute or less on most machines), you can check for the presence of the OBSPROC executable src/3dvar_obs.exe.
Before running 3dvar_obs.exe, create the desired namelist file namelist.3dvar_obs (see README.namelist for details);
For your reference in var/obsproc directory, a file named namelist_3dvar_obs.wrfvar-tut has already been created. Thus, proceed as follows:
-        > cp namelist.3dvar_obs.wrfvar-tut namelist.3dvar_obs
+        > cp namelist.3dvar_obs.wrfvar-tut namelist.3dvar_obs
edit namelist.3dvar_obs
In this namelist file, all you need is to change the full path and name of the observation file (ob.little_r) depending upon where this file is downloaded and where it finally resides.
To run OBSPROC, type
-        > 3dvar_obs.exe >&! 3dvar_obs.out
+> 3dvar_obs.exe >&! 3dvar_!
obs.out
Once 3dvar_obs.exe has completed successfully, you will see an observation data file, obs_gts.3dvar, in the obsproc directory. This is the input observation file to WRF-Var. Before running WRF-Var, you may like to learn more about various types of data you are aiming to assimilate for this case, for example, their geographical distribution, etc. This file is in ASCII format and so you can easily view it. To graphically view the contents of this file, there is a MAP_plot utility to look at the data distribution for each type of observations. To run MAP_plot, proceed as follows.
> cd MAP_plot
Modify the script Map.csh to set the time window and full path of input observation file (obs_gts.3dvar). Precisely, the following string in this script as follows.
- TIME_WINDOW_MIN = 2007010121
-                         TIME_ANALYSIS = 2007010200
-                         TIME_WINDOW_MAX = 2007010203
- OBSDATA = ../obs_gts.3dvar
+TIME_WINDOW_MIN = 2007010121TIME_ANALYSIS = 200!
7010200TIME_WINDOW_MAX = 2007010203OBSDATA = ../obs_gts.!
3dvar
T
ype
- > Map.csh
+> Map.csh
When the job has completed, you will have a gmeta file gmeta.{analysis_time} corresponding to analysis_time=2007010200. This contains plots of data distribution for each type of observations contained in the OBS data file, obs_gts.3dvar. To view this, type
- > idt gmeta.2007010200
+> idt gmeta.2007010200
It will display (panel by panel) geographical distribution of various types of data that are listed in the header of obs_gts.3dvar. The geographical distribution of sonde observations for this test case are shown in the figure below.
@@ -326,55 +307,38 @@
Additional WRF-Var Exercises:
(a) Single Observation response in WRF-Var:
In WRF-Var, when you activate the namelist option pseudo=1 by defining
-export NL_NUM_PSEUDO=1
-WRF-Var generates a single observation with a pre-specified innovation (Observation First Guess) value at a specified location, e.g., at (in terms of grid co-ordinate) 23x23, level 14 for U observation with error characteristics 1 m/s, innovation size = 1.0 m/s, include the following options in your da_run_suite_wrapper_con200.ksh script and run it. A shot-cut is export SINGLE_OBS=true.
export NL_NUM_PSEUDO=1
-export NL_PSEUDO_VAR="u" #Can be "u v t p q"
-export NL_PSEUDO_X=23.0
-export NL_PSEUDO_Y=23.0
-export NL_PSEUDO_Z=14.0
-export NL_PSEUDO_ERR=1.0 #Should be "1.0 1.0 1.0 1.0 0.001"
-export NL_PSEUDO_VAL=1.0 #Should be "1.0 1.0 1.0 1.0 0.001"
-Also set export runplot_psot=1.
+WRF-Var generates a single observation with a pre-specified in!
novation (Observation First Guess) value at a specified location, e.g., at (in terms of grid co-ordinate) 23x23, level 14 for U observation with error characteristics 1 m/s, innovation size = 1.0 m/s, include the following options in your da_run_suite_wrapper_con200.ksh script and run it. A short-cut is export SINGLE_OBS=true.
+export NL_NUM_PSEUDO=1export NL_PSEUDO_VAR="u" #Can be "u v t p q"export NL_PSEUDO_X=23.0export NL_PSEUDO_Y=23.0export NL_PSEUDO_Z=14.0export NL_PSEUDO_ERR=1.0 #Should be "1.0 1.0 1.0 1.0 0.001"export NL_PSEUDO_VAL=1.0 #Should be "1.0 1.0 1.0 1.0 0.001"
+Also set export runplot_psot=1.
Note: You may also like to change your RUN_DIR to generate output in separate directory. You may also notice that in this sample wrapper script for con200, all these parameters are already set but they are commented. So you need to just remove the undesired comments.
After you have run this new wrap!
per script successfully, look at various diagnostics files to !
understa
nd the response of one single U observation almost at the middle of the domain. You can display the analysis increments as you did previously or run the same wrapper script by setting:
- export runplot_psot=2
-It will activate some standard NCL script residing in WRFDA/var/graphics/ncl and generate following three files in your new $RUN_DIR/plotpsot directory.
-xy_psot1.pdf --- XY cross-section
-xz_psot1.pdf --- XZ cross-section
-yz_psot1.pdf --- YZ cross-section
-
+ export runplot_psot=2
+It will activate some standard NCL script residing in WRFDA/var/graphics/ncl and generate following three files in your new $RUN_DIR/plotpsot directory.
+xy_psot1.pdf (XY cross-section)xz_psot1.pdf (XZ cross-section)yz_psot1.pdf (YZ cross-section)
Note: You may like to repeat this exercise for other observations like temperature (t), pressure ps, specific humidity, etc.
(b) Response of BE length scaling parameter:
Run single observation !
test with following additional parameters
-export NL_LEN_SCALING1=0.5 # reduce length psi-scale by 50%
-export NL_LEN_SCALING2=0.5 # reduce length chi_u-scale by 50%
-export NL_LEN_SCALING3=0.5 # reduce length T-scale by 50%
-export NL_LEN_SCALING4=0.5 # reduce length Q-scale by 50%
-export NL_LEN_SCALING5=0.5 # reduce length ps-scale by 50%
+export NL_LEN_SCALING1=0.5        # reduce length psi-scale by 50% export NL_LEN_SCALING2=0.5        # reduce length chi_u-scale by 50% export NL_LEN_SCALING3=0.5        # reduce length T-scale by 50% export NL_LEN_SCALING4=0.5        # reduce length Q-scale by 50% export NL_LEN_SCALING5=0.5        # reduce length ps-scale by 50%
Note: You may like to try the response of individual variable by setting one parameter at one time. See the spread of analysis increment.
(c) Response of changing BE variance:
Run single observation test with following additional parameters
-export NL_VAR_SCALING1=0.25 # reduce psi-variance by 75%
-export NL_VAR!
_SCALING2=0.25 # reduce chi_u-variance by 75%
-export NL_V!
AR_SCALI
NG3=0.25 # reduce T-variance by 75%
-export NL_VAR_SCALING4=0.25 # reduce Q-variance by 75%
-export NL_VAR_SCALING5=0.25 # reduce ps-variance by 75%
+export NL_VAR_SCALING1=0.25        # reduce psi-variance by 75% export NL_VAR_SCALING2=0.25        # reduce chi_u-variance by 75% export NL_VAR_SCALING3=0.25        # reduce T-variance by 75% export NL_VAR_SCALING4=0.25        # reduce Q-variance by 75% export NL_VAR_SCALING5=0.25        # reduce ps-variance by 75%
Note: You may like to try the response of individual variable by setting one parameter at one time. See the magnitude of analysis increments.
(d) Response of convergence criteria:
Run con200 case with
- export NL_EPS=0.0001
- See rsl.out.0000.html and if the solution did not converge in 200 iterations which is the default value for minimization inner iterations loop, increase its limit by setting
- export NL_NTMAX=1000
+export NL_EPS=0.0001
+See rsl.out.0000.html and if the solution did not converge in 200 iterations whi!
ch is the default value for minimization inner iterations loop, increase its limit by setting
+export NL_NTMAX=1000
You may like to compare various diagnostics with earlier run.
(e) Response of outer loop on minimization:
- Run con200 case with
- export NL_MAX_EXT_ITS=2
+Run con200 case with
+export NL_MAX_EXT_ITS=2
With this setting outer loop for the minimization procedure will get activated. You may like to compare various diagnostics with earlier run.
Note: Maximum permissible value for MAX_EXT_ITS is 10
(f) Response of suppressing a particular type of data in WRF-Var:
Suppose if someone wants not to include SYNOP type of data. One way is that do not process it via obsproc by not including it in little_r. However, it can be suppressed in WRF-Var through namelist option by setting
- export NL_USE_SYNOPOBS=false
+export NL_USE_SYNOPOBS=false
Note: grep use_ string in WRFDA/Registry.wrfvar to learn about all types of data used in!
WRF-Var.
Description of Namelist Variables
@@ -467,7 +4!
31,7 @@
-WRF-ARW V3: Users Guide        6- PAGE 26
+WRF-ARW V3: Users Guide        6- PAGE 20
WRF-ARW V3: Users Guide        6- PAGE 1
@@ -491,1164 +455,1163 @@
-
-h1q
-
+he
+
-&
+
+&
-h1q
-&
+he
+&
+&
+)
++
-Px4 #\'*.25@9
-)
-h1q
-;
+he
l
-l
l
-l
l
-l
l
-l
-h1q
-|
-|
-
-
-
-h1q
-h1q
+l
+he
+i
+&
+
+&
+he
+he
#
-l
-/
l
-
-
-h1q
+
#
-l
+l
#
-l
+l
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-
+l
#
-l
-
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
+
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
+
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
-
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
+
#
-l
+l
#
-l
+l
#
-l
+l
+he
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-
-h1q
+l
#
-l
+l
#
-l
+l
#
-l
+he
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
-h1q
l
-
+
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
l
-
+
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
+l
#
-l
+l
+
#
-l
+l
+
+he
+
#
-l
+l
        
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
#
-l
+l
        
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
-h1q
+l
#
-l
+l
#
-l
+l
+he
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
-
+
#
-l
-
+
#
-l
+l
+he
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
+l
#
-l
-h1q
-
-
+l
+
+he
+
+
)].w
)].wPNG
@@ -1883,8 +1846,8 @@
l
l
-
-
+
+
u(lH<CX.Ip=#H@6YYY999- _Q*<yIiRHuea{233]+5y;wѣGK"ʦV6_|^xA
-
-
+
+
JyK
-
-
-
+
+
@@ -3824,8 +3786,8 @@
9ܹsoOO/|ߕq|/ڳgOGGǑ#G[ZZ
G'c{O<!xdko{w''wwK?Oo{4(
ot;"K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K"""K""!
;"K"""K"""K"""K"""K"""K"""?%
-
-
+
"鬠8y#gJBOx46cPP?7qltaӺ1揝<|w9{ErO;pZBTg-}w@i<7
@@ -5186,7 +5148,8 @@
r
        
r8rXg+Y6
-
+
+
+
+
-v
-
-
-
-#
-5
-v
-
-
-
y
0
-
-#
-5
-v
-
-
-
̀
-@
-@
+
+
+
+
+
+
+
ʀ
c
y
0
+
lt;
+
+
+
+@
@
@
@
@@ -6717,16 +6728,45 @@
@
@
@
-@
-@
-@
-@
-@
-@
-@
-@
-@
-@
@
+@
@
@
@
@@ -6740,10 +6780,6 @@
@
@
@
-@
-@
-@
-@
@
@1N5
@1N5
@@ -6857,49 +6893,50 @@
@N5
-
-
-
-
+
+
+
+
-
+
-
-
-!
-D
-`
-n
<font color="red">
-
-
-n
<font color="gray">
-
-
-
:
+
+
+%
+*
+
+
+
+
+
+
+;
+
+
+
l,6
+(VP
)
@@ -6931,7 +6968,16 @@
-
P
OJ
^`OJ
`
+
P
OJ
^`OJ
+
+
+
+
+
+
+
+
+
uot;
@@ -7120,9 +7166,9 @@
-
+
^Z
-^Z
+^Z
@@ -7130,43 +7176,45 @@
-
+
-
-5
-
-
-        
-F
-
+
+
+
+
+        
+F
+
+
-
+
+
wwo~wo~o~ww
ZR^g9VZ^Vg9R^VkZNsR
swo{wo{o{ww
wwwww
+
-
+
+
+
+
-
\ No newline at end of file
+
+
\ No newline at end of file
</font>
</pre>