From cc8eafbe51c48072aed2f88ad226d2ae4689e4eb Mon Sep 17 00:00:00 2001 From: hongli-wang Date: Mon, 14 Nov 2022 21:31:50 +0000 Subject: [PATCH] Add PM2.5 DA for RRFS-SD --- fix/gsi/anavinfo.rrfs_sd | 65 +++++++ fix/gsi/convinfo.rrfs_sd | 234 ++++++++++++++++++++++++ fix/gsi/gsiparm.anl.sh | 7 +- scripts/exregional_run_analysis.sh | 75 ++++++++ ush/config.sh.RRFS-SD_PM25DA_CONUS_3km | 241 +++++++++++++++++++++++++ ush/config_defaults.sh | 13 +- ush/generate_FV3LAM_wflow.sh | 3 + ush/set_rrfs_config.sh | 2 + ush/setup.sh | 2 + ush/templates/FV3LAM_wflow.xml | 72 ++++++++ ush/valid_param_vals.sh | 1 + 11 files changed, 712 insertions(+), 3 deletions(-) create mode 100644 fix/gsi/anavinfo.rrfs_sd create mode 100644 fix/gsi/convinfo.rrfs_sd create mode 100644 ush/config.sh.RRFS-SD_PM25DA_CONUS_3km diff --git a/fix/gsi/anavinfo.rrfs_sd b/fix/gsi/anavinfo.rrfs_sd new file mode 100644 index 000000000..03306d04b --- /dev/null +++ b/fix/gsi/anavinfo.rrfs_sd @@ -0,0 +1,65 @@ +met_guess:: +!var level crtm_use desc orig_name + ps 1 -1 surface_pressure ps + z 1 -1 geopotential_height phis + u 65 2 zonal_wind u + v 65 2 meridional_wind v + tv 65 2 virtual_temperature tv + q 65 2 specific_humidity sphu + oz 65 2 ozone ozone + delp 65 -1 fv3 del pressure delp +:: + +state_derivatives:: +!var level src + ps 1 met_guess + u 65 met_guess + v 65 met_guess + tv 65 met_guess + q 65 met_guess + oz 65 met_guess + cw 65 met_guess + prse 66 met_guess +:: + +state_tendencies:: +!var levels source + u 65 met_guess + v 65 met_guess + tv 65 met_guess + q 65 met_guess + oz 65 met_guess + prse 66 met_guess +:: + +state_vector:: +!var level itracer source funcof + u 65 0 met_guess u + v 65 0 met_guess v + tv 65 0 met_guess tv + tsen 65 0 met_guess tv,q + q 65 1 met_guess q + oz 65 1 met_guess oz + prse 66 0 met_guess prse + ps 1 0 met_guess prse + smoke 65 1 chem_guess smoke + dust 65 1 chem_guess dust +:: + +control_vector:: +!var level itracer as/tsfc_sdv an_amp0 source funcof + sf 65 0 0.90 -1.0 state u,v + vp 65 0 0.90 -1.0 state u,v + ps 1 0 1.00 -1.0 state prse + t 65 0 1.40 -1.0 state tv + q 65 1 0.80 -1.0 state q + smoke 65 1 1.00 -1.0 state smoke + dust 65 1 1.00 -1.0 state dust +:: + +chem_guess:: +!var level itracer crtm_use type orig_name + smoke 65 1 12 smoke smoke + dust 65 1 12 dust dust + pm2_5 65 1 10 pm2_5 pm2_5 +:: diff --git a/fix/gsi/convinfo.rrfs_sd b/fix/gsi/convinfo.rrfs_sd new file mode 100644 index 000000000..9f30a92b2 --- /dev/null +++ b/fix/gsi/convinfo.rrfs_sd @@ -0,0 +1,234 @@ +! otype = observation type (a7, t, uv, q, etc.) +! type = prepbufr observation type (if available) +! sub = prepbufr subtype (not yet available) +! iuse = flag if to use/not use / monitor data +! = 1 use data +! = 0 do not use data +! = -1 monitor data +! twindow = time window (+/- hours) +! numgrp = cross validation parameter - number of groups +! ngroup = cross validation parameter - group to remove from data use +! nmiter = cross validation parameter - external iteration to introduce removed data +! gross = gross error parameter - gross error +! ermax = gross error parameter - max error +! ermin = gross error parameter - min error +! var_b = variational quality control parameter - b parameter +! var_pg ithin rmesh npred = variational quality control parameter - pg parameter +! pmot: the optione to keep thinned datai as monitored, 0: not to keep, other values: to keep +! ptime: time interval for thinning, 0, no temporal thinning, other values define time interval (less than 6) +!otype type sub iuse twindow numgrp ngroup nmiter gross ermax ermin var_b var_pg ithin rmesh pmesh npred pmot ptime + tcp 112 0 1 1.5 0 0 0 75.0 3.0 1.0 75.0 0.000 0 0. 0. 0 0. 0. + ps 111 0 -1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 120 0 1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 132 0 -1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 180 0 1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 181 0 1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 182 0 1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 183 0 -1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 187 0 1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + ps 188 0 1 0.1 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 120 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 126 0 1 0.40 0 0 0 5.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 130 0 1 0.75 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 131 0 1 1.0 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 132 0 1 0.75 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 133 0 1 0.75 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 134 0 1 0.75 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 135 0 1 0.75 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + t 180 0 1 1.5 0 0 0 7.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 181 0 1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 182 0 1 1.5 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 183 0 1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 187 0 1 0.25 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + t 188 0 1 0.1 0 0 0 5.0 3.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + q 111 0 -1 1.5 0 0 0 7.0 75.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 120 0 1 1.5 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 130 0 -1 0.75 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 131 0 -1 1.0 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 132 0 1 0.75 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 133 0 1 0.75 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 134 0 1 0.75 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 135 0 1 0.75 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 180 0 1 1.5 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 181 0 1 0.25 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 182 0 1 1.5 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 183 0 1 0.25 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 187 0 1 0.25 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + q 188 0 1 0.1 0 0 0 7.0 50.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 152 0 -1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 153 0 1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 156 0 -1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 157 0 -1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 158 0 -1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + pw 159 0 -1 1.5 0 0 0 7.0 8.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + sst 120 0 -1 1.5 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 180 0 -1 1.5 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 181 0 -1 1.5 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 182 0 -1 1.5 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 183 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 184 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 185 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 186 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 187 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 188 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 189 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 190 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 191 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 192 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 193 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 194 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 195 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 196 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 197 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 198 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 199 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 200 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 201 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + sst 202 0 -1 0.25 0 0 0 7.0 2.0 0.2 10.0 0.000 0 0. 0. 0 0. 0. + uv 210 0 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 220 0 1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 221 0 1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 223 0 1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 224 0 1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 227 0 1 0.40 0 0 0 5.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 228 0 -1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 229 0 1 1.5 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 230 0 1 0.75 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 231 0 1 1.0 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 232 0 1 0.75 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 233 0 1 0.75 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 234 0 1 0.75 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 235 0 1 0.75 0 0 0 10.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 240 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 240 257 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 240 259 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 240 270 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 240 271 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 241 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 242 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 242 171 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 242 172 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 242 173 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 242 174 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 54 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 55 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 56 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 57 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 243 70 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 3 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 4 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 206 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 207 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 209 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 244 223 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 245 0 -1 1.5 0 0 0 2.0 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 245 257 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 245 259 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 245 270 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 245 271 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 246 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 246 257 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 246 259 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 246 270 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 246 271 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 247 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 247 257 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 247 259 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 247 270 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 247 271 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 248 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 248 224 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 249 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 250 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 250 171 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 250 172 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 250 173 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 250 174 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 251 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 251 257 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 251 259 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 251 270 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 251 271 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 252 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 252 171 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 252 172 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 252 173 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 252 174 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 54 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 55 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 56 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 57 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 253 70 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 0 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 54 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 55 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 56 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 57 -1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 254 70 1 1.5 0 0 0 2.5 5.0 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 256 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 257 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 257 783 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 257 784 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 258 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 258 783 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 258 784 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 259 0 -1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 259 783 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 259 784 1 1.5 0 0 0 7.0 6.1 1.4 10.0 0.000 0 0. 0. 0 0. 0. + uv 260 0 -1 1.5 0 0 0 1.5 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 260 224 -1 1.5 0 0 0 1.5 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 260 225 -1 1.5 0 0 0 1.5 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 261 0 1 1.5 0 0 0 1.5 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 280 0 1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 281 0 1 0.25 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 282 0 1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 284 0 1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 285 0 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 286 0 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 287 0 1 0.25 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 288 0 1 0.1 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 289 0 1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 290 4 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 290 3 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 290 6 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 291 0 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + uv 296 0 -1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + spd 260 0 1 1.5 0 0 0 1.5 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + spd 283 0 1 1.5 0 0 0 5.0 5.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + dw 999 0 -1 1.5 0 0 0 7.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + dw 201 0 -1 1.5 0 0 0 7.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + dw 202 0 -1 1.5 0 0 0 7.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + dw 100 0 -1 1.5 0 0 0 7.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + dw 101 0 -1 1.5 0 0 0 7.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + srw 999 0 -1 1.5 0 0 0 7.0 10.0 1.0 10.0 0.000 0 0. 0. 0 0. 0. + rw 999 0 1 1.5 0 0 0 5.0 10.0 2.0 10.0 0.000 0 0. 0. 0 0. 0. + gps 004 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 041 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 722 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 723 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 740 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 741 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 742 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 743 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 744 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 745 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 820 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 042 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 043 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 786 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 421 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 003 0 1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 821 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + gps 440 0 -1 3.0 0 0 0 10.0 10.0 1.0 10.0 0.000000 0 0. 0. 0 0. 0. + pm2_5 102 0 1 3.0 0 0 0 900.0 1.5 0.75 10.0 0.000000 0 0. 0. 0 0. 0. + mta_cld 181 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + mta_cld 183 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + mta_cld 187 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + gos_ctp 151 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + rad_ref 999 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + lghtn 999 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + larccld 999 0 1 1.5 0 0 0 7.0 5.6 1.3 10.0 0.000 0 0. 0. 0 0. 0. + dbz 888 0 1 0.5 0 0 0 8.0 80.0 5.0 10.0 0.000 0 0. 0. 0 0. 0. diff --git a/fix/gsi/gsiparm.anl.sh b/fix/gsi/gsiparm.anl.sh index 2ed7d4c56..997bd7d1b 100755 --- a/fix/gsi/gsiparm.anl.sh +++ b/fix/gsi/gsiparm.anl.sh @@ -47,6 +47,7 @@ gsi_namelist=" / OBS_INPUT:: ! dfile dtype dplat dsis dval dthin dsfcalc + pm25bufr pm2_5 null TEOM 1.0 0 0 dbzobs.nc dbz null dbz 1.0 0 0 prepbufr ps null ps 1.0 0 0 prepbufr t null t 1.0 0 0 @@ -188,8 +189,8 @@ OBS_INPUT:: build_cloud_frac_p=0.50, clear_cloud_frac_p=0.10, iclean_hydro_withRef_allcol=1, - i_use_2mQ4B=2, - i_use_2mT4B=1, + i_use_2mQ4B=${ii_use_2mq4b}, + i_use_2mT4B=${ii_use_2mt4b}, i_gsdcldanal_type=0, i_gsdsfc_uselist=1, i_lightpcp=1, @@ -198,6 +199,8 @@ OBS_INPUT:: i_gsdqc=2, / &CHEM + laeroana_fv3smoke=.true., + berror_fv3_cmaq_regional = .true., / &NST / diff --git a/scripts/exregional_run_analysis.sh b/scripts/exregional_run_analysis.sh index e6cc168e6..9871fe860 100755 --- a/scripts/exregional_run_analysis.sh +++ b/scripts/exregional_run_analysis.sh @@ -333,6 +333,8 @@ niter2=50 lread_obs_save=.false. lread_obs_skip=.false. if_model_dbz=.false. +ii_use_2mq4b=2 +ii_use_2mt4b=1 # Determine if hybrid option is available memname='atmf009' @@ -484,6 +486,12 @@ else fi + + if [ ${ob_type} == "AERO" ]; then + obs_files_source[0]=${OBSPATH_PM}/${YYYYMMDD}/pm25.airnow.${YYYYMMDD}${HH}.bufr + obs_files_target[0]=pm25bufr + fi + fi # @@ -616,6 +624,25 @@ HYBENSINFO=${FIX_GSI}/${HYBENSINFO_FN} OBERROR=${FIX_GSI}/${OBERROR_FN} BERROR=${FIX_GSI}/${BERROR_FN} + +if [[ ${gsi_type} == "ANALYSIS" && ${ob_type} == "AERO" ]]; then + ANAVINFO=${FIX_GSI}/${ANAVINFO_SD_FN} + CONVINFO=${FIX_GSI}/${CONVINFO_SD_FN} + BERROR=${FIX_GSI}/${BERROR_SD_FN} + miter=1 + niter1=100 + niter2=0 + ifhyb=.false. + ifsd_da=.true. + l_hyb_ens=.false. + nummem=0 + beta1_inv=0.0 + ii_use_2mq4b=0 + ii_use_2mt4b=0 + netcdf_diag=.true. + binary_diag=.false. +fi + SATINFO=${FIX_GSI}/global_satinfo.txt OZINFO=${FIX_GSI}/global_ozinfo.txt PCPINFO=${FIX_GSI}/global_pcpinfo.txt @@ -805,6 +832,14 @@ cat << EOF > gsiparm.anl $gsi_namelist EOF +if [[ ${gsi_type} == "ANALYSIS" && ${ob_type} != "AERO" ]]; then +# base_e GSI can't handle the below two parameter for RRFS-SD DA. So delete them. + mv gsiparm.anl gsiparm.anl.sd + sed '/laeroana_fv3smoke/d' gsiparm.anl.sd > gsiparm.anl.1 + sed '/berror_fv3_cmaq_regional/d' gsiparm.anl.1 > gsiparm.anl + rm -fr gsiparm.anl.sd gsiparm.anl.1 +fi + # #----------------------------------------------------------------------- # @@ -814,6 +849,11 @@ EOF # gsi_exec="${EXECDIR}/gsi.x" +if [[ ${gsi_type} == "ANALYSIS" && ${ob_type} == "AERO" ]]; then + gsi_exec="${EXECDIR}/gsi.x.sd" +fi + + if [ -f $gsi_exec ]; then print_info_msg "$VERBOSE" " Copying the GSI executable to the run directory..." @@ -842,6 +882,40 @@ fi #----------------------------------------------------------------------- # # comment out for testing +if [[ ${gsi_type} == "ANALYSIS" && ${ob_type} == "AERO" ]]; then + +if [ ${BKTYPE} -eq 1 ]; then + print_info_msg "$VERBOSE" " + Coldstart skip GSI SD DA" +else +# backup background + if [ "${IO_LAYOUT_Y}" == "1" ]; then + cp -fr ${bkpath}/fv_tracer.res.tile1.nc ${bkpath}/fv_tracer.res.tile1.nc.org + else + for ii in ${list_iolayout} + do + iii=`printf %4.4i $ii` + cp -fr ${bkpath}/fv_tracer.res.tile1.nc.${iii} ${bkpath}/fv_tracer.res.tile1.nc.${iii}.org + done + fi + + $APRUN ./gsi.x < gsiparm.anl > stdout 2>&1 || print_err_msg_exit "\ + Call to executable to run GSI returned with nonzero exit code." + +# copy updated fv3_tracer back to restart + if [ "${IO_LAYOUT_Y}" == "1" ]; then + cp -fr fv3_tracer ${bkpath}/fv_tracer.res.tile1.nc + else + for ii in ${list_iolayout} + do + iii=`printf %4.4i $ii` + cp -fr fv3_tracer.${iii} ${bkpath}/fv_tracer.res.tile1.nc.${iii} + done + fi +fi + +else + $APRUN ./gsi.x < gsiparm.anl > stdout 2>&1 || print_err_msg_exit "\ Call to executable to run GSI returned with nonzero exit code." @@ -855,6 +929,7 @@ sed -e 's/ asm all/rw asm 900/; s/ rej all/rw rej 900/; s/ mon all/rw mon cat fit_p1 fit_w1 fit_t1 fit_q1 fit_pw1 fit_rad1 fit_rw1 > $comout/rrfs_a.t${HH}z.fits.tm00 cat fort.208 fort.210 fort.211 fort.212 fort.213 fort.220 > $comout/rrfs_a.t${HH}z.fits2.tm00 +fi # #----------------------------------------------------------------------- # diff --git a/ush/config.sh.RRFS-SD_PM25DA_CONUS_3km b/ush/config.sh.RRFS-SD_PM25DA_CONUS_3km new file mode 100644 index 000000000..196e887f8 --- /dev/null +++ b/ush/config.sh.RRFS-SD_PM25DA_CONUS_3km @@ -0,0 +1,241 @@ +MACHINE="jet" +ACCOUNT="nrtrr" +#MACHINE="hera" +#ACCOUNT="wrfruc" +#RESERVATION="rrfsdet" +#RESERVATION_POST="rrfsdet" +EXPT_BASEDIR="/mnt/lfs1/BMC/wrfruc/hwang/base_e/RRFS-SD_T4" +EXPT_SUBDIR="RRFS_CONUS_3km_rt" + +if [[ -n $RESERVATION ]] ; then + ACCOUNT=rtrr + SERVICE_ACCOUNT=rtrr + PARTITION_DEFAULT=kjet + PARTITION_FCST=kjet + PARTITION_GRAPHICS=kjet + PARTITION_ANALYSIS=kjet + PARTITION_WGRIB2=kjet + + QUEUE_DEFAULT="rth" + QUEUE_FCST="rth" + QUEUE_ANALYSIS="rth" + QUEUE_WGRIB2="rt" + QUEUE_GRAPHICS="rt" + QUEUE_HPSS="rt" +fi + +if [[ $MACHINE == "hera" ]] ; then + ACCOUNT="wrfruc" + PARTITION_DEFAULT="" + PARTITION_FCST="" + QUEUE_ANALYSIS="batch" + QUEUE_WGRIB2="batch" + QUEUE_GRAPHICS="batch" +fi + +if [[ $MACHINE == "orion" ]] ; then + ACCOUNT=wrfruc + QUEUE_ANALYSIS="batch" + QUEUE_WGRIB2="batch" + QUEUE_GRAPHICS="batch" + QUEUE_POST="batch" + NCORES_PER_NODE=24 +fi + +if [[ $MACHINE == "wcoss2" ]] ; then + ACCOUNT=RRFS-DEV + QUEUE_DEFAULT="dev" + QUEUE_ANALYSIS="dev" + QUEUE_FCST="dev" + QUEUE_HPSS="dev_transfer" + QUEUE_WGRIB2="dev" + QUEUE_GRAPHICS="dev" +fi + +VERBOSE="TRUE" + +RUN_ENVIR="nco" + +PREDEF_GRID_NAME=RRFS_CONUS_3km +ADDNL_OUTPUT_GRIDS=() + +TILE_LABELS="CONUS REGIONS" +TILE_SETS="full NE,NC,NW,SE,SC,SW" + +DO_DACYCLE="TRUE" +DO_SDDACYCLE="TRUE" +DO_SURFACE_CYCLE="TRUE" +DO_SPINUP="TRUE" +DO_RETRO="TRUE" +DO_NONVAR_CLDANAL="FALSE" +DO_SMOKE_DUST="TRUE" +DO_REFL2TTEN="FALSE" +RADARREFL_TIMELEVEL=(0) +FH_DFI_RADAR="0.0,0.25,0.5" +DO_SOIL_ADJUST="TRUE" +DO_RADDA="FALSE" +DO_BUFRSND="FALSE" + +BERROR_SD_FN="berror.rrfs_sd" #under $FIX_GSI +ANAVINFO_SD_FN="anavinfo.rrfs_sd" +CONVINFO_SD_FN="convinfo.rrfs_sd" + +QUILTING="TRUE" +CCPP_PHYS_SUITE="FV3_HRRR" + +EXTRN_MDL_ICS_OFFSET_HRS="3" +LBC_SPEC_INTVL_HRS="1" +EXTRN_MDL_LBCS_OFFSET_HRS="6" +BOUNDARY_LEN_HRS="18" + +# avaialble retro period: +# 20210511-20210531; 20210718-20210801 +#DATE_FIRST_CYCL="20210511" +#DATE_LAST_CYCL="20210512" +DATE_FIRST_CYCL="20221018" +DATE_LAST_CYCL="20221019" +CYCL_HRS=( "00" "12" ) +CYCL_HRS_SPINSTART=("03" "15") +CYCL_HRS_PRODSTART=("09" "21") +CYCLEMONTH="10" +CYCLEDAY="18-19" + +PREEXISTING_DIR_METHOD="upgrade" # "rename" +INITIAL_CYCLEDEF="${DATE_FIRST_CYCL}0300 ${DATE_LAST_CYCL}2300 12:00:00" +BOUNDARY_CYCLEDEF="${DATE_FIRST_CYCL}0000 ${DATE_LAST_CYCL}2300 06:00:00" +PROD_CYCLEDEF="${DATE_FIRST_CYCL}0900 ${DATE_LAST_CYCL}2300 01:00:00" +POSTPROC_CYCLEDEF="${DATE_FIRST_CYCL}0900 ${DATE_LAST_CYCL}2300 01:00:00" +POSTPROC_LONG_CYCLEDEF="${DATE_FIRST_CYCL}0900 ${DATE_LAST_CYCL}2300 03:00:00" +#ARCHIVE_CYCLEDEF="${DATE_FIRST_CYCL}0700 ${DATE_LAST_CYCL}2300 24:00:00" +if [[ $DO_SPINUP == "TRUE" ]] ; then + SPINUP_CYCLEDEF="00 03-08,15-20 ${CYCLEDAY} ${CYCLEMONTH} 2022 *" +fi + +FCST_LEN_HRS="3" +FCST_LEN_HRS_SPINUP="1" +POSTPROC_LEN_HRS="3" +POSTPROC_LONG_LEN_HRS="12" +#FCST_LEN_HRS_CYCLES=(48 18 18 18 18 18 48 18 18 18 18 18 48 18 18 18 18 18 48 18 18 18 18 18) +for i in {0..23}; do FCST_LEN_HRS_CYCLES[$i]=3; done +for i in {0..23..3}; do FCST_LEN_HRS_CYCLES[$i]=12; done +DA_CYCLE_INTERV="1" +RESTART_INTERVAL="1" + +SST_update_hour=01 +GVF_update_hour=04 +SNOWICE_update_hour=00 +SOIL_SURGERY_time=2022072404 + +DT_ATMOS=60 +NCORES_RUN_ANAL=240 +NCORES_RUN_OBSERVER=80 +HYBENSMEM_NMIN=66 +HALO_BLEND=20 +IO_LAYOUT_Y=1 +PPN_RUN_REF2TTEN=1 +PPN_RUN_NONVARCLDANL=${IO_LAYOUT_Y} + +PRINT_DIFF_PGR="TRUE" + +if [[ -n $RESERVATION ]] ; then + NNODES_MAKE_ICS="3" + PPN_MAKE_ICS="20" + NNODES_MAKE_LBCS="3" + PPN_MAKE_LBCS="20" + NNODES_RUN_POST="1" + PPN_RUN_POST="40" +fi + +WTIME_RUN_FCST="02:45:00" +WTIME_MAKE_LBCS="02:00:00" + +EXTRN_MDL_NAME_ICS="FV3GFS" +EXTRN_MDL_NAME_LBCS="FV3GFS" + +FV3GFS_FILE_FMT_ICS="grib2" +FV3GFS_FILE_FMT_LBCS="grib2" + +envir="para" + +NET="RRFS_CONUS" +TAG="RRFS_CONUS_3km" + +USE_CUSTOM_POST_CONFIG_FILE="TRUE" +TESTBED_FIELDS_FN="testbed_fields_bgdawp.txt" +TESTBED_FIELDS_FN2="testbed_fields_bgrd3d.txt" +CUSTOM_POST_CONFIG_FP="$(cd "$( dirname "${BASH_SOURCE[0]}" )/.." &>/dev/null&&pwd)/fix/upp/postxconfig-NT-fv3lam_rrfs.txt" +CUSTOM_POST_PARAMS_FP="$(cd "$( dirname "${BASH_SOURCE[0]}" )/.." &>/dev/null&&pwd)/fix/upp/params_grib2_tbl_new" +ARCHIVEDIR="/1year/BMC/wrfruc/rrfs_dev1" +NCARG_ROOT="/apps/ncl/6.5.0-CentOS6.10_64bit_nodap_gnu447" +NCL_HOME="/home/rtrr/RRFS/graphics" +NCL_REGION="conus" +MODEL="RRFS_conus_3km" + +# +# In NCO mode, the following don't need to be explicitly set to "FALSE" +# in this configuration file because the experiment generation script +# will do this (along with printing out an informational message). +# +#RUN_TASK_MAKE_GRID="FALSE" +#RUN_TASK_MAKE_OROG="FALSE" +#RUN_TASK_MAKE_SFC_CLIMO="FALSE" + +if [[ $MACHINE == "wcoss2" ]] ; then + LAYOUT_X="42" + LAYOUT_Y="40" + PPN_MAKE_ICS="32" + PPN_MAKE_LBCS="64" + NNODES_MAKE_ICS="2" + NNODES_MAKE_LBCS="1" + PPN_RUN_ANAL="32" + NNODES_RUN_ANAL="10" + PPN_RUN_FCST="64" + NNODES_RUN_FCST="31" + PPN_RUN_POST="64" + NNODES_RUN_POST="1" + + MAXTRIES_MAKE_ICS="2" + MAXTRIES_MAKE_LBCS="2" + MAXTRIES_RUN_PREPSTART="2" + MAXTRIES_RUN_FCST="2" + MAXTRIES_ANAL_GSI="2" + MAXTRIES_ANAL_ENKF="2" + MAXTRIES_RUN_POST="2" + MAXTRIES_RUN_WGRIB2="2" + MAXTRIES_RUN_ANAL="2" + + FV3GFS_FILE_FMT_ICS="netcdf" + FV3GFS_FILE_FMT_LBCS="netcdf" +fi + +if [[ $MACHINE == "orion" ]] ; then + LAYOUT_X="30" + LAYOUT_Y="40" + PPN_RUN_FCST="40" + WTIME_RUN_WGRIB2="00:20:00" +fi + +RUN="RRFS_conus_3km" +COMINgfs="" + +. set_rrfs_config.sh + +STMP="/mnt/lfs1/BMC/wrfruc/hwang/base_e/RRFS-SD_T4/NCO_dirs/stmp" # Path to directory STMP that mostly contains input files. +PTMP="/mnt/lfs1/BMC/wrfruc/hwang/base_e/RRFS-SD_T4/NCO_dirs/ptmp" # Path to directory STMP that mostly contains input files. +NWGES="/mnt/lfs1/BMC/wrfruc/hwang/base_e/RRFS-SD_T4/NCO_dirs/nwges" # Path to directory NWGES that save boundary, cold initial, restart files +if [[ ${regional_ensemble_option} == "5" ]]; then + RRFSE_NWGES="/mnt/lfs1/BMC/wrfruc/hwang/RRFS-SD_T4/NCO_dirs/nwges" # Path to RRFSE directory NWGES that mostly contains ensemble restart files for GSI hybrid. + NUM_ENS_MEMBERS=10 # FV3LAM ensemble size for GSI hybrid analysis +fi + + +if [[ ${DO_ENSEMBLE} == "TRUE" ]]; then + NUM_ENS_MEMBERS=9 +# DO_SPPT=TRUE +# SPPT_MAG=0.5 +# DO_ENSCONTROL="TRUE" + DO_GSIOBSERVER="TRUE" + DO_ENKFUPDATE="TRUE" + ARCHIVEDIR="/5year/BMC/wrfruc/rrfs_ens" +fi + diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh index 0f00bbedd..c5abb8e6d 100644 --- a/ush/config_defaults.sh +++ b/ush/config_defaults.sh @@ -305,6 +305,7 @@ EXPT_SUBDIR="" # # Setup default locations for FIRE_RRFS files and update time # FIRE_RAVE_DIR +# FIRE_RRFS_ROOT # FIRE_RRFS_update_hour #----------------------------------------------------------------------- # @@ -331,6 +332,7 @@ MODEL="NO MODEL CHOSEN" OBSPATH="/public/data/grids/rap/obs" OBSPATH_NSSLMOSIAC="/public/data/radar/mrms" +OBSPATH_PM="/mnt/lfs1/BMC/wrfruc/hwang/rrfs_sd/pm" LIGHTNING_ROOT="/public/data/lightning" ENKF_FCST="/lfs4/BMC/public/data/grids/enkf/atm" FFG_DIR="/public/data/grids/ncep/ffg/grib2" @@ -343,6 +345,7 @@ SNOWICE_update_hour=99 RAPHRR_SOIL_ROOT="/mnt/lfs4/BMC/rtwbl/mhu/wcoss/nco/com" SOIL_SURGERY_time=9999999999 FIRE_RAVE_DIR="/lfs4/BMC/public/data/grids/nesdis/3km_fire_emissions" +FIRE_RRFS_ROOT="/mnt/lfs4/BMC/gsd-fv3-dev/FIRE_RRFS_ROOT" FIRE_RRFS_update_hour=99 # @@ -708,11 +711,14 @@ i_precip_vertical_check=0 # HYBENSMEM_NMIN=80 ANAVINFO_FN="anavinfo.rrfs" +ANAVINFO_SD_FN="anavinfo.rrfs_sd" ANAVINFO_DBZ_FN="anavinfo.rrfs_dbz" ENKF_ANAVINFO_FN="anavinfo.rrfs" ENKF_ANAVINFO_DBZ_FN="anavinfo.enkf.rrfs_dbz" CONVINFO_FN="convinfo.rrfs" +CONVINFO_SD_FN="convinfo.rrfs_sd" BERROR_FN="rap_berror_stats_global_RAP_tune" #under $FIX_GSI +BERROR_SD_FN="berror.rrfs_sd" # for test only OBERROR_FN="errtable.rrfs" HYBENSINFO_FN="hybens_info.rrfs" AIRCRAFT_REJECT="" @@ -1639,6 +1645,7 @@ RUN_WGRIB2_TN="run_wgrib2" RUN_BUFRSND_TN="run_bufrsnd" ANAL_GSI_TN="anal_gsi_input" +ANAL_SD_GSI_TN="anal_sd_gsi_input" POSTANAL_TN="postanal_input" OBSERVER_GSI_ENSMEAN_TN="observer_gsi_ensmean" OBSERVER_GSI_TN="observer_gsi" @@ -1790,7 +1797,7 @@ MAXTRIES_POSTANAL="1" MAXTRIES_ANAL_ENKF="1" MAXTRIES_RUN_POST="1" MAXTRIES_RUN_WGRIB2="1" -#MAXTRIES_RUN_ANAL="1" +MAXTRIES_RUN_ANAL="1" MAXTRIES_RUN_POSTANAL="1" MAXTRIES_RECENTER="1" MAXTRIES_PROCESS_RADARREF="1" @@ -1988,6 +1995,9 @@ DO_ENSINIT="FALSE" # DO_DACYCLE: # Flag that determines whether to run a data assimilation cycle. # +# DO_SDDACYCLE: +# Flag that determines whether to run a SMOKE and DUST data assimilation cycle. +# # DO_SURFACE_CYCLE: # Flag that determines whether to continue cycle surface fields. # @@ -2018,6 +2028,7 @@ DO_ENSINIT="FALSE" # Flag turn on smoke and dust for RRFS-SD #----------------------------------------------------------------------- DO_DACYCLE="FALSE" +DO_SDDACYCLE="FALSE" DO_SURFACE_CYCLE="FALSE" SURFACE_CYCLE_DELAY_HRS="1" DO_SOIL_ADJUST="FALSE" diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh index eadabcdbd..5cb216f72 100755 --- a/ush/generate_FV3LAM_wflow.sh +++ b/ush/generate_FV3LAM_wflow.sh @@ -206,6 +206,7 @@ settings="\ 'run_post_tn': ${RUN_POST_TN} 'run_wgrib2_tn': ${RUN_WGRIB2_TN} 'anal_gsi': ${ANAL_GSI_TN} + 'anal_sd_gsi': ${ANAL_SD_GSI_TN} 'post_anal': ${POSTANAL_TN} 'observer_gsi_ensmean': ${OBSERVER_GSI_ENSMEAN_TN} 'observer_gsi': ${OBSERVER_GSI_TN} @@ -394,6 +395,7 @@ settings="\ 'ensctrl_comout_dir': ${ENSCTRL_COMOUT_DIR} 'rrfse_nwges_basedir': ${RRFSE_NWGES_BASEDIR} 'obspath': ${OBSPATH} + 'obspath_pm': ${OBSPATH_PM} 'global_var_defns_fp': ${GLOBAL_VAR_DEFNS_FP} 'load_modules_run_task_fp': ${LOAD_MODULES_RUN_TASK_FP} # @@ -476,6 +478,7 @@ settings="\ # data assimilation related parameters. # 'do_dacycle': ${DO_DACYCLE} + 'do_sddacycle': ${DO_SDDACYCLE} 'do_surface_cycle': ${DO_SURFACE_CYCLE} 'da_cycle_interval_hrs': ${DA_CYCLE_INTERV} 'do_nonvar_cldanal': ${DO_NONVAR_CLDANAL} diff --git a/ush/set_rrfs_config.sh b/ush/set_rrfs_config.sh index a0c611802..0ff14b0ec 100644 --- a/ush/set_rrfs_config.sh +++ b/ush/set_rrfs_config.sh @@ -19,6 +19,7 @@ if [[ $MACHINE == "hera" ]] ; then # observations OBSPATH=/scratch2/BMC/public/data/grids/rap/obs OBSPATH_NSSLMOSIAC=/scratch2/BMC/public/data/radar/nssl/mrms/conus + OBSPATH_PM=/mnt/lfs1/BMC/wrfruc/hwang/rrfs_sd/pm LIGHTNING_ROOT=/scratch2/BMC/public/data/lightning ENKF_FCST=/scratch1/NCEPDEV/rstprod/com/gfs/prod fi @@ -53,6 +54,7 @@ if [[ $DO_RETRO == "TRUE" ]] ; then EXTRN_MDL_SOURCE_BASEDIR_LBCS="/mnt/lfs4/HFIP/gsihyb/Chunhua.Zhou/data/FV3GFS/0p25deg/grib2" fi OBSPATH=/mnt/lfs4/HFIP/gsihyb/Chunhua.Zhou/data/obs + OBSPATH_PM=/mnt/lfs1/BMC/wrfruc/hwang/rrfs_sd/pm else # EXTRN_MDL_SOURCE_BASEDIR_ICS=/mnt/lfs4/BMC/wrfruc/Ruifang.Li/data/hrrr/conus/wrfnat/grib2 # EXTRN_MDL_SOURCE_BASEDIR_LBCS=/mnt/lfs4/BMC/wrfruc/Ruifang.Li/data/rap/full/wrfnat/grib2 diff --git a/ush/setup.sh b/ush/setup.sh index a49344e31..6433cba79 100755 --- a/ush/setup.sh +++ b/ush/setup.sh @@ -483,6 +483,7 @@ optionList[11]=DO_BUFRSND optionList[12]=USE_RRFSE_ENS optionList[13]=DO_JEDI_ENVAR_IODA optionList[14]=DO_SMOKE_DUST +optionList[15]=DO_SDDACYCLE obs_number=${#optionList[@]} for (( i=0; i<${obs_number}; i++ )); @@ -2741,6 +2742,7 @@ FV3_NML_ENSMEM_FPS=( $( printf "\"%s\" " "${FV3_NML_ENSMEM_FPS[@]}" )) # for data assimilation OBSPATH="${OBSPATH}" +OBSPATH_PM="${OBSPATH_PM}" OBSPATH_NSSLMOSIAC="${OBSPATH_NSSLMOSIAC}" LIGHTNING_ROOT="${LIGHTNING_ROOT}" ENKF_FCST="${ENKF_FCST}" diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml index e8f790a82..2b7060a7e 100644 --- a/ush/templates/FV3LAM_wflow.xml +++ b/ush/templates/FV3LAM_wflow.xml @@ -42,6 +42,7 @@ Workflow task names. + @@ -95,6 +96,7 @@ Directories and files. + @@ -1140,6 +1142,73 @@ MODULES_RUN_TASK_FP script. {%- endif %} +{%- if do_sddacycle %} + + + + &RSRV_ANALYSIS; + &WALL_LIMIT_ANAL; + + &LOAD_MODULES_RUN_TASK_FP; "&RUN_ANAL_TN;" "&JOBSDIR;/JREGIONAL_RUN_ANAL" + {% if machine in ["JET", "HERA"] -%} + {{ ncores_run_anal }} + {{ native_run_anal }} &RRFS_RESERVE; + {% else -%} + {{ nnodes_run_anal }}:ppn={{ ppn_run_anal }} + &NCORES_PER_NODE; + {% endif -%} + {{ wtime_run_anal }} + &TAG;_&ANAL_SD_GSI_TN;_#type#{{ uscore_ensmem_name }} + &LOGDIR;/&ANAL_SD_GSI_TN;{{ uscore_ensmem_name }}_#type#_@Y@m@d@H.log + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + CDATE@Y@m@d@H + CYCLE_DIR&CYCLE_BASEDIR;/@Y@m@d@H + CYCLE_ROOT&CYCLE_BASEDIR; + RRFSE_FG_ROOT&RRFSE_FG_ROOT; + CYCLE_TYPE#type# + GSI_TYPEANALYSIS + OB_TYPEAERO + MEM_TYPEMEMBER + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + SATBIAS_DIR&NWGES_BASEDIR;/satbias + nens{{ num_ens_members }} + + + + @Y@m@d@H@M00 + + {%- if use_rrfse_ens %} + + + + {%- for h in cycl_hrs_hyb_fv3lam_ens %} + {{ h }}@H + {%- endfor %} + + {% for h in range(1, num_ens_members+1) %} + &RRFSE_FG_ROOT;/@Y@m@d@H/mem{{ "%04d" % h }}/fcst_fv3lam/RESTART/@Y@m@d.@H0000.coupler.res + {%- endfor %} + + + {%- for h in cycl_hrs_hyb_fv3lam_ens %} + {{ h }}@H + {%- endfor %} + + + {%- endif %} + + + + +{%- endif %} + + {%- if do_dacycle %}