source: lmdz_wrf/trunk/WRFV3/test/em_real/README.obs_fdda @ 1393

Last change on this file since 1393 was 1, checked in by lfita, 10 years ago
  • -- --- Opening of the WRF+LMDZ coupling repository --- -- -

WRF: version v3.3
LMDZ: version v1818

More details in:

File size: 11.9 KB
Line 
1General description
2-------------------
3Features and advantages of observational nudging are discussed in (*) below.
4The method uses relaxation terms based on the model error at observational
5stations, and the relaxation is such as to reduce this error.
6Each observation has a radius of influence, a time window, and a relaxation
7time scale determined by user-specified input. These determine where, when,
8and how much it affects the model solution.  Typical model grid points may
9be within the radius of influence of several observations, and their
10contributions are weighted according to the distance from the observation(s).
11Before performing obs-nudging, you will need to generate an observation
12input file for each WRF domain. The observation file(s) contain chronological
13lists of the 3D positions and values of each observation, in a specific format.
14It is critical that your observations be listed in chronological time order!
15
16*  Liu, Y., A. Bourgeois, T. Warner, S. Swerdlin and J. Hacker, 2005: An
17  implementation of obs-nudging-based FDDA into WRF for supporting
18  ATEC test operations. 2005 WRF user workshop. Paper 10.7.
19
20
21How to use the obs-data converter
22-------------------------------------
23A utility program for converting observation data to the format required by
24WRF has been provided (RT_fdda_reformat_obsnud.pl). The converter assumes
25that your observation data is in standard LITTLE_R format.
26
27To convert your data that is in LITTLE_R format:
28
29  RT_fdda_reformat_obsnud.pl yourfilename
30
31where "yourfilename" is the obs-data in LITTLE_R format. The converter will
32produce a file named yourfilename.obsnud, in the format required by the WRF
33model.
34
35Note that during the conversion process:
36
37  1). P,T,U,V and RH fields are extracted.
38
39  2). U and V are assumed to be the wind components rotated to
40      the model map-projection (see 3DVAR and MM5 Little_R).
41
42  3). SPD, DIR and Td fields are ignored.
43
44  4). For upper-air data, currently WRF nudging only takes
45      those data with valid pressure records. For obs with
46      height levels (e.g. wind profilers data), users need to
47      calculate or estimate the pressure value. Inaccurate
48      estimate of pressure will lead to bad data assimilation.
49
50
51Naming your obs-nudge input files
52---------------------------------
53After you have converted your obs data file to the proper format for WRF,
54you will need to rename it according to the naming convention for the WRF
55domain on which the obs-nudging is to be performed. For example, for
56observations to be used in Domain 1, use the naming convention OBS_DOMAIN101,
57for Domain 2, OBS_DOMAIN201, etc.
58
59These files must be present in your WRF run directory, along with the usual
60WRF input and boundary files.
61
62
63
64How to activate obs-nudging
65---------------------------
66To activate the observational nudging option in WRF, you will need to set
67the obs_nudge_opt flag(s) in the WRF "fdda" namelist. Note that there is
68a unique flag for each WRF domain in which you want to activate obs-nudging.
69
70To activate the print statements within the obs-nudging subroutines ERROB,
71NUDOB, and IN4DOB, set the respective print flags obs_ipf_errob,
72obs_ipf_nudob, and obs_ipf_in4dob to ".true." You can then easily verify that
73you have activated observational nudging by observing text in your WRF
74"standard out" that tell you how many obs stations are being processed at
75given model timesteps. This information will look something like:
76
770****** CALL IN4DOB AT KTAU =     8 AND XTIME =      24.00:  NSTA =   11040 ******
78++++++CALL ERROB AT KTAU =     8 AND INEST =  1:  NSTA = 11040 ++++++
79
80These lines will print out for each nest in which you have activated nudging,
81while nudging is active on that domain.
82
83Below is an example of a namelist set up to activate obs-nudging on domains
841, 2, and 3:
85
86&fdda
87obs_nudge_opt                       = 1,1,1,0,0   
88max_obs                             = 150000,
89fdda_start                          =     0.,     0.,     0.,     0.,     0.
90fdda_end                            = 99999., 99999., 99999., 99999., 99999.
91obs_nudge_wind                      = 1,1,1,1,1
92obs_coef_wind                       = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
93obs_nudge_temp                      = 1,1,1,1,1
94obs_coef_temp                       = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
95obs_nudge_mois                      = 1,1,1,1,1
96obs_coef_mois                       = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
97obs_rinxy                           = 240.,240.,180.,180,180
98obs_rinsig                          = 0.1,
99obs_twindo                          = 0.6666667,0.6666667,0.6666667,0.6666667,0.6666667,
100obs_npfi                            = 10,
101obs_ionf                            = 2, 2, 2, 2, 2,
102obs_idynin                          = 0,
103obs_dtramp                          = 40.,
104obs_prt_freq                        = 10, 10, 10, 10, 10,
105obs_prt_max                         = 10
106obs_ipf_errob                       = .true.
107obs_ipf_nudob                       = .true.
108obs_ipf_in4dob                      = .true.
109obs_ipf_init                        = .true.
110
111In addition, add the following in &time_control:
112
113auxinput11_interval_s               = 180, 180, 180, 180, 180,
114auxinput11_end_h                    = 6, 6, 6, 6, 6,
115
116
117*********************
118    NEW FOR V3.1
119*********************
120
1211) Enhanced diagnostics
122  --------------------
123  For version 3.1, diagnostics have been enhanced to allow the user to verify
124  grid placement for observations throughout the model run. For v3.1, the fdda namelist
125  variable "nobs_obs_prt" is obsolete, and has been replaced by the two namelist
126  variables:
127
128  obs_prt_max  - maximum allowed obs entries in diagnostic printout (integer)
129  obs_prt_freq - frequency in obs index for diagnostic printout (max_domains integer)
130
131  For example, specifying:
132
133  obs_prt_max         = 5,
134  obs_prt_freq        = 1000, 500, 100,
135
136  allows up to 5 observations and their locations to be reported for each model timestep
137  at which the obs are read and weights calculated (see obs_ionf). For this example, the
138  obs are reported for domain 1 with an obs-index frequency of 1000, on domain 2 with a
139  frequency of 500, and on domain 3 with a frequency of 100. Below is an example of the
140  initial obs diagnostic report produced for each nest, using the namelist values above.
141
142  ++++++CALL ERROB AT KTAU =     0 AND INEST =  1:  NSTA = 17090 ++++++
143
144  REPORTING OBS MASS-PT LOCS FOR NEST    1 AT XTIME=     0.0 MINUTES
145  FREQ=1000, MAX=    5 LOCS, NEWLY READ OBS ONLY, -999 => OBS OFF PROC
146
147      OBS#     I       J       K     OBS LAT  OBS LON   XLAT(I,J)  XLONG(I,J)  TIME(hrs)
148          1   5.282   2.658   1.000   27.580  -97.220     27.580    -97.220     0.00
149       1001  47.851   9.468  32.377   30.380  -84.360     30.380    -84.360     0.00
150       2001  40.728  19.834  26.618   33.160  -86.700     33.160    -86.700     0.00
151       3001  60.866  30.631 -99.000   36.080  -79.950   -999.000   -999.000     0.00
152       4001  73.216  38.315 -99.000   37.930  -75.480   -999.000   -999.000     0.00
153 ...
154
155  ++++++CALL ERROB AT KTAU =     0 AND INEST =  2:  NSTA =  3504 ++++++
156
157  REPORTING OBS MASS-PT LOCS FOR NEST    2 AT XTIME=     0.0 MINUTES
158  FREQ= 500, MAX=    5 LOCS, NEWLY READ OBS ONLY, -999 => OBS OFF PROC
159
160      OBS#     I       J       K     OBS LAT  OBS LON   XLAT(I,J)  XLONG(I,J)  TIME(hrs)
161          1  62.717   3.505   1.000   34.600  -78.580   -999.000   -999.000     0.00
162        501  45.014  30.857  32.102   37.200  -80.410     37.200    -80.410     0.00
163       1001  15.585  54.082 -99.000   39.410  -83.810   -999.000   -999.000     0.00
164       1501  18.822  78.673   1.000   41.690  -83.400   -999.000   -999.000     0.00
165       2001  67.015 103.930   1.000   43.830  -77.150   -999.000   -999.000     0.00
166 ...
167
168  ++++++CALL ERROB AT KTAU =     0 AND INEST =  3:  NSTA =   606 ++++++
169
170  REPORTING OBS MASS-PT LOCS FOR NEST    3 AT XTIME=     0.0 MINUTES
171  FREQ= 100, MAX=    5 LOCS, NEWLY READ OBS ONLY, -999 => OBS OFF PROC
172
173      OBS#     I       J       K     OBS LAT  OBS LON   XLAT(I,J)  XLONG(I,J)  TIME(hrs)
174          1  48.735   3.730   1.000   38.220  -76.040   -999.000   -999.000     0.00
175        101  10.646  25.032  34.295   38.980  -77.460     38.980    -77.460     0.00
176        201  25.010  28.538   9.296   39.050  -76.880     39.050    -76.880     0.00
177        301  28.675  46.438   1.000   39.590  -76.670   -999.000   -999.000     0.15
178        401  12.030  38.804   1.000   39.400  -77.360     39.400    -77.360     0.30
179
180
181  With this report, the user can verify the WRF mapping of each reported observation.
182  The report shows:
183
184  (1) the real-valued WRF grid (I,J,K) location to which the obs is mapped,
185  (2) the input obs latitude and longitude coordinate (OBS LAT, OBS LON), and
186  (3) the corresponding model lat, lon coordinate (XLAT(I,J), XLONG(I,J)) for (I,J,K)
187  (4) the input obs time in hours into the run
188
189  Note that each processor produces a report (rsl.out.0000, rsl.out.0001, etc) for the
190  same set of observations, but that full information for an individual observation is
191  only available in the report from the processor whose grid "patch" contains that
192  observation. A -999.000 entry in the XLAT and XLONG columns indicates that the
193  observation is not located on the processor producing the report. In the example
194  above, the rsl.out.0000 file indicates that OBS#1 for nest 3 is not located on the
195  WRF patch handled by process 0. OBS#1 falls on the patch for process 1, and the
196  report for nest 3 from the rsl.out.0001 file looks like:
197
198  ++++++CALL ERROB AT KTAU =     0 AND INEST =  3:  NSTA =   606 ++++++
199
200  REPORTING OBS MASS-PT LOCS FOR NEST    3 AT XTIME=     0.0 MINUTES
201  FREQ= 100, MAX=    5 LOCS, NEWLY READ OBS ONLY, -999 => OBS OFF PROC
202
203      OBS#     I       J       K     OBS LAT  OBS LON   XLAT(I,J)  XLONG(I,J)  TIME(hrs)
204          1  48.735   3.730   1.000   38.220  -76.040     38.220    -76.040     0.00
205        101  10.646  25.032 -99.000   38.980  -77.460   -999.000   -999.000     0.00
206        201  25.010  28.538 -99.000   39.050  -76.880   -999.000   -999.000     0.00
207        301  28.675  46.438   1.000   39.590  -76.670   -999.000   -999.000     0.15
208        401  12.030  38.804   1.000   39.400  -77.360   -999.000   -999.000     0.30
209
210  which confirms this.
211
212  Note that the namelist variable obs_prt_max can be declared as large as desired, but
213  a value larger than 10^4 might significantly affect performance.
214
215  CAUTION! Depending on how many observations are in your obs-nudge input file, be
216  aware that your diagnostic output can potentially produce obs_prt_max/obs_prt_freq
217  lines of output for each domain, for each obs input step!
218
2192) Option to input wind vectors in Earth coordinates
220
221  In previous WRF versions, input wind vectors were required to be in WRF grid-relative
222  coordinates (that is, already rotated from Earth coordinates to the WRF grid). In
223  WRFV3.1, the user may specify winds in Earth coordinates and have the WRF model
224  internally rotate them to the WRF grid. To activate this capability, the user must
225  specify a u- and v-component QC flag value of 129 for each wind vector that is to be
226  rotated. Otherwise, the model assumes the wind vector to be WRF grid-relative. For
227  future releases, this option will possibly be activated by a namelist variable.
228
2293) Option for Obs-in-height
230
231  I previous WRF versions, the vertical model coordinate for an upper air observation
232  is determined by its input pressure field. In WRFV3.1, the obs height field may be
233  used instead. In the new implementation, if the obs pressure field contains "missing
234  value" -888888 and the obs height field good, the vertical model coordinate for the
235  obs is determined using a geopotential height calculation.
236
2374) U-, V-, and T-ratios are calculated in all surface schemes
238
239  In previous WRF versions, calculations for u-,v-, and t- ratios (from 10 meter winds
240  and 2 meter temperatures) are only done in the SFCLAY surface scheme. These ratios
241  are now calculated for all surface scheme options. (The ratios are used in the
242  obs-nudging routine to correct obs to model sigma level using reverse similarity
243  theory.)
Note: See TracBrowser for help on using the repository browser.