Skip to content

Commit

Permalink
Add PM2.5 DA for RRFS-SD (NOAA-EMC#448)
Browse files Browse the repository at this point in the history
  • Loading branch information
hongli-wang authored Jan 19, 2023
1 parent aeda079 commit 38d4e73
Show file tree
Hide file tree
Showing 11 changed files with 679 additions and 2 deletions.
65 changes: 65 additions & 0 deletions fix/gsi/anavinfo.rrfs_sd
Original file line number Diff line number Diff line change
@@ -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
::
234 changes: 234 additions & 0 deletions fix/gsi/convinfo.rrfs_sd

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions fix/gsi/gsiparm.anl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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=${i_use_2mQ4B},
i_use_2mT4B=${i_use_2mT4B},
i_gsdcldanal_type=0,
i_gsdsfc_uselist=1,
i_lightpcp=1,
Expand All @@ -198,6 +199,8 @@ OBS_INPUT::
i_gsdqc=2,
/
&CHEM
laeroana_fv3smoke=${laeroana_fv3smoke},
berror_fv3_cmaq_regional=${berror_fv3_cmaq_regional},
/
&NST
/
Expand Down
40 changes: 40 additions & 0 deletions scripts/exregional_run_analysis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,8 @@ niter2=50
lread_obs_save=.false.
lread_obs_skip=.false.
if_model_dbz=.false.
i_use_2mQ4B=2
i_use_2mT4B=1

# Determine if hybrid option is available
memname='atmf009'
Expand Down Expand Up @@ -499,6 +501,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

#
Expand Down Expand Up @@ -631,6 +639,32 @@ HYBENSINFO=${FIX_GSI}/${HYBENSINFO_FN}
OBERROR=${FIX_GSI}/${OBERROR_FN}
BERROR=${FIX_GSI}/${BERROR_FN}


if [[ ${gsi_type} == "ANALYSIS" && ${ob_type} == "AERO" ]]; then
if [ ${BKTYPE} -eq 1 ]; then
echo "cold start, skip GSI SD DA"
exit 0
fi
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
i_use_2mQ4B=0
i_use_2mT4B=0
netcdf_diag=.true.
binary_diag=.false.
usenewgfsberror=.false.
laeroana_fv3smoke=.true.
berror_fv3_cmaq_regional=.true.
fi

SATINFO=${FIX_GSI}/global_satinfo.txt
OZINFO=${FIX_GSI}/global_ozinfo.txt
PCPINFO=${FIX_GSI}/global_pcpinfo.txt
Expand Down Expand Up @@ -839,6 +873,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..."
Expand Down Expand Up @@ -867,6 +906,7 @@ fi
#-----------------------------------------------------------------------
#
# comment out for testing

$APRUN ./gsi.x < gsiparm.anl > stdout 2>&1 || print_err_msg_exit "\
Call to executable to run GSI returned with nonzero exit code."

Expand Down
Loading

0 comments on commit 38d4e73

Please sign in to comment.