3 Features and advantages of observational nudging are discussed in (*) below.
4 The method uses relaxation terms based on the model error at observational
5 stations, and the relaxation is such as to reduce this error.
6 Each observation has a radius of influence, a time window, and a relaxation
7 time scale determined by user-specified input. These determine where, when,
8 and how much it affects the model solution. Typical model grid points may
9 be within the radius of influence of several observations, and their
10 contributions are weighted according to the distance from the observation(s).
11 Before performing obs-nudging, you will need to generate an observation
12 input file for each WRF domain. The observation file(s) contain chronological
13 lists of the 3D positions and values of each observation, in a specific format.
14 It is critical that your observations be listed in chronological time order!
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.
21 How to use the obs-data converter
22 -------------------------------------
23 A utility program for converting observation data to the format required by
24 WRF has been provided (RT_fdda_reformat_obsnud.pl). The converter assumes
25 that your observation data is in standard LITTLE_R format.
27 To convert your data that is in LITTLE_R format:
29 RT_fdda_reformat_obsnud.pl yourfilename
31 where "yourfilename" is the obs-data in LITTLE_R format. The converter will
32 produce a file named yourfilename.obsnud, in the format required by the WRF
35 Note that during the conversion process:
37 1). P,T,U,V and RH fields are extracted.
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).
42 3). SPD, DIR and Td fields are ignored.
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.
51 Naming your obs-nudge input files
52 ---------------------------------
53 After you have converted your obs data file to the proper format for WRF,
54 you will need to rename it according to the naming convention for the WRF
55 domain on which the obs-nudging is to be performed. For example, for
56 observations to be used in Domain 1, use the naming convention OBS_DOMAIN101,
57 for Domain 2, OBS_DOMAIN201, etc.
59 These files must be present in your WRF run directory, along with the usual
60 WRF input and boundary files.
64 How to activate obs-nudging
65 ---------------------------
66 To activate the observational nudging option in WRF, you will need to set
67 the obs_nudge_opt flag(s) in the WRF "fdda" namelist. Note that there is
68 a unique flag for each WRF domain in which you want to activate obs-nudging.
70 To activate the print statements within the obs-nudging subroutines ERROB,
71 NUDOB, and IN4DOB, set the respective print flags obs_ipf_errob,
72 obs_ipf_nudob, and obs_ipf_in4dob to ".true." You can then easily verify that
73 you have activated observational nudging by observing text in your WRF
74 "standard out" that tell you how many obs stations are being processed at
75 given model timesteps. This information will look something like:
77 0****** CALL IN4DOB AT KTAU = 8 AND XTIME = 24.00: NSTA = 11040 ******
78 ++++++CALL ERROB AT KTAU = 8 AND INEST = 1: NSTA = 11040 ++++++
80 These lines will print out for each nest in which you have activated nudging,
81 while nudging is active on that domain.
83 Below is an example of a namelist set up to activate obs-nudging on domains
87 obs_nudge_opt = 1,1,1,0,0
89 fdda_start = 0., 0., 0., 0., 0.
90 fdda_end = 99999., 99999., 99999., 99999., 99999.
91 obs_nudge_wind = 1,1,1,1,1
92 obs_coef_wind = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
93 obs_nudge_temp = 1,1,1,1,1
94 obs_coef_temp = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
95 obs_nudge_mois = 1,1,1,1,1
96 obs_coef_mois = 6.E-4,6.E-4,6.E-4,6.E-4,6.E-4
97 obs_rinxy = 240.,240.,180.,180,180
99 obs_twindo = 0.6666667,0.6666667,0.6666667,0.6666667,0.6666667,
101 obs_ionf = 2, 2, 2, 2, 2,
104 obs_prt_freq = 10, 10, 10, 10, 10,
106 obs_ipf_errob = .true.
107 obs_ipf_nudob = .true.
108 obs_ipf_in4dob = .true.
109 obs_ipf_init = .true.
111 In addition, add the following in &time_control:
113 auxinput11_interval_s = 180, 180, 180, 180, 180,
114 auxinput11_end_h = 6, 6, 6, 6, 6,
117 *********************
119 *********************
121 1) Enhanced diagnostics
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
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)
131 For example, specifying:
134 obs_prt_freq = 1000, 500, 100,
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.
142 ++++++CALL ERROB AT KTAU = 0 AND INEST = 1: NSTA = 17090 ++++++
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
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
155 ++++++CALL ERROB AT KTAU = 0 AND INEST = 2: NSTA = 3504 ++++++
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
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
168 ++++++CALL ERROB AT KTAU = 0 AND INEST = 3: NSTA = 606 ++++++
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
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
181 With this report, the user can verify the WRF mapping of each reported observation.
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
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:
198 ++++++CALL ERROB AT KTAU = 0 AND INEST = 3: NSTA = 606 ++++++
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
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
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.
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!
219 2) Option to input wind vectors in Earth coordinates
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.
229 3) Option for Obs-in-height
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.
237 4) U-, V-, and T-ratios are calculated in all surface schemes
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