Skip to content

Commit

Permalink
Add initial GSI-based soil analysis capability (#2263)
Browse files Browse the repository at this point in the history
First set of changes for adding the new soil analysis, from the
assimilation of screen-level T and q. The changes here enable the
screen-level observations to be assimilated in the Hybrid (Var and EnKF)
update, and the soil temperature and soil moisture updates to be made in
the EnKF only. The functionality is turned on by setting GSI_SOILANAL to
YES in config.base.

Resolves #1479
  • Loading branch information
ClaraDraper-NOAA committed Mar 18, 2024
1 parent e9700d8 commit fa855ba
Show file tree
Hide file tree
Showing 9 changed files with 46 additions and 11 deletions.
7 changes: 7 additions & 0 deletions parm/config/gfs/config.anal
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ export OZINFO=${FIXgfs}/gsi/global_ozinfo.txt
export SATINFO=${FIXgfs}/gsi/global_satinfo.txt
export OBERROR=${FIXgfs}/gsi/prepobs_errtable.global

if [[ ${GSI_SOILANAL} = "YES" ]]; then
export hofx_2m_sfcfile=".true."
export reducedgrid=".false." # not possible for sfc analysis, Jeff Whitaker says it's not useful anyway
export paranc=".false." # temporary until sfc io coded for parance (PR being prepared by T. Gichamo)
export CONVINFO=${FIXgfs}/gsi/global_convinfo_2mObs.txt
export ANAVINFO=${FIXgfs}/gsi/global_anavinfo_soilanal.l127.txt
fi

# Use experimental dumps in EMC GFS v16 parallels
if [[ ${RUN_ENVIR} == "emc" ]]; then
Expand Down
2 changes: 2 additions & 0 deletions parm/config/gfs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,8 @@ fi

if [[ "${DOIAU_ENKF}" = "NO" ]]; then export IAUFHRS_ENKF="6"; fi

export GSI_SOILANAL=@GSI_SOILANAL@

# turned on nsst in anal and/or fcst steps, and turn off rtgsst
export DONST="YES"
if [[ ${DONST} = "YES" ]]; then export FNTSFA=" "; fi
Expand Down
8 changes: 7 additions & 1 deletion parm/config/gfs/config.esfc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ echo "BEGIN: config.esfc"
# Set DOSFCANL_ENKF=NO to prevent creation of sfcanl at
# center of analysis window.

if [ $DOIAU_ENKF = "YES" ]; then
if [[ ${DOIAU_ENKF} = "YES" ]]; then
export DOSFCANL_ENKF="NO"
fi

Expand All @@ -21,4 +21,10 @@ if [[ "${DO_JEDIATMENS}" == "YES" ]]; then
export DONST="NO"
fi

# set up soil analysis
if [[ ${GSI_SOILANAL} = "YES" ]]; then
export DO_LNDINC=".true."
export LND_SOI_FILE="lnd_incr"
fi

echo "END: config.esfc"
1 change: 1 addition & 0 deletions parm/config/gfs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ base:
DO_GOES: "NO"
FHMAX_GFS: 120
DO_VRFY_OCEANDA: "NO"
GSI_SOILANAL: "NO"

atmanl:
LAYOUT_X_ATMANL: 8
Expand Down
13 changes: 10 additions & 3 deletions scripts/exgdas_enkf_sfc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ pwd=$(pwd)

# Base variables
DONST=${DONST:-"NO"}
GSI_SOILANAL=${GSI_SOILANAL:-"NO"}
DOSFCANL_ENKF=${DOSFCANL_ENKF:-"YES"}
export CASE=${CASE:-384}
ntiles=${ntiles:-6}
Expand Down Expand Up @@ -61,7 +62,6 @@ export DELTSFC=${DELTSFC:-6}
APRUN_ESFC=${APRUN_ESFC:-${APRUN:-""}}
NTHREADS_ESFC=${NTHREADS_ESFC:-${NTHREADS:-1}}


################################################################################
# Preprocessing
mkdata=NO
Expand Down Expand Up @@ -142,8 +142,10 @@ if [ $DOIAU = "YES" ]; then
MEMDIR=${memchar} RUN="enkfgdas" YMD=${gPDY} HH=${gcyc} generate_com \
COM_ATMOS_RESTART_MEM_PREV:COM_ATMOS_RESTART_TMPL

[[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}"
MEMDIR=${memchar} YMD=${PDY} HH=${cyc} generate_com \
COM_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL

[[ ${TILE_NUM} -eq 1 ]] && mkdir -p "${COM_ATMOS_RESTART_MEM}"
${NCP} "${COM_ATMOS_RESTART_MEM_PREV}/${bPDY}.${bcyc}0000.sfc_data.tile${n}.nc" \
"${COM_ATMOS_RESTART_MEM}/${bPDY}.${bcyc}0000.sfcanl_data.tile${n}.nc"
${NLN} "${COM_ATMOS_RESTART_MEM_PREV}/${bPDY}.${bcyc}0000.sfc_data.tile${n}.nc" \
Expand All @@ -153,7 +155,12 @@ if [ $DOIAU = "YES" ]; then
${NLN} "${FIXgfs}/orog/${CASE}/${CASE}_grid.tile${n}.nc" "${DATA}/fngrid.${cmem}"
${NLN} "${FIXgfs}/orog/${CASE}/${CASE}.mx${OCNRES}_oro_data.tile${n}.nc" "${DATA}/fnorog.${cmem}"

done
if [[ ${GSI_SOILANAL} = "YES" ]]; then
FHR=6
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX_ENS}sfci00${FHR}.nc" \
"${DATA}/lnd_incr.${cmem}"
fi
done # ensembles

CDATE="${PDY}${cyc}" ${CYCLESH}
export err=$?; err_chk
Expand Down
19 changes: 14 additions & 5 deletions scripts/exgdas_enkf_update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ else
DO_CALC_INCREMENT=${DO_CALC_INCREMENT:-"NO"}
fi
INCREMENTS_TO_ZERO=${INCREMENTS_TO_ZERO:-"'NONE'"}
GSI_SOILANAL=${GSI_SOILANAL:-"NO"}

################################################################################

Expand Down Expand Up @@ -203,6 +204,10 @@ for imem in $(seq 1 $NMEM_ENS); do
for FHR in $nfhrs; do
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \
"sfg_${PDY}${cyc}_fhr0${FHR}_${memchar}"
if [ $GSI_SOILANAL = "YES" ]; then
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \
"bfg_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
if [ $cnvw_option = ".true." ]; then
${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \
"sfgsfc_${PDY}${cyc}_fhr0${FHR}_${memchar}"
Expand All @@ -224,6 +229,10 @@ for imem in $(seq 1 $NMEM_ENS); do
"incr_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
fi
if [ $GSI_SOILANAL = "YES" ]; then
${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \
"sfcincr_${PDY}${cyc}_fhr0${FHR}_${memchar}"
fi
done
done

Expand All @@ -238,10 +247,10 @@ for FHR in $nfhrs; do
fi
done

if [ $USE_CFP = "YES" ]; then
if [[ $USE_CFP = "YES" ]]; then
chmod 755 $DATA/mp_untar.sh
ncmd=$(cat $DATA/mp_untar.sh | wc -l)
if [ $ncmd -gt 0 ]; then
if [[ $ncmd -gt 0 ]]; then
ncmd_max=$((ncmd < npe_node_max ? ncmd : npe_node_max))
APRUNCFP=$(eval echo $APRUNCFP)
$APRUNCFP $DATA/mp_untar.sh
Expand Down Expand Up @@ -398,8 +407,8 @@ cat stdout stderr > "${COM_ATMOS_ANALYSIS_STAT}/${ENKFSTAT}"

################################################################################
# Postprocessing
cd $pwd
[[ $mkdata = "YES" ]] && rm -rf $DATA
cd "$pwd"
[[ $mkdata = "YES" ]] && rm -rf "${DATA}"


exit $err
exit ${err}
3 changes: 3 additions & 0 deletions scripts/exglobal_atmos_analysis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ SENDDBN=${SENDDBN:-"NO"}
RUN_GETGES=${RUN_GETGES:-"NO"}
GETGESSH=${GETGESSH:-"getges.sh"}
export gesenvir=${gesenvir:-${envir}}

export hofx_2m_sfcfile=${hofx_2m_sfcfile:-".false."}

# Observations
OPREFIX=${OPREFIX:-""}
Expand Down Expand Up @@ -748,6 +750,7 @@ cat > gsiparm.anl << EOF
/
&OBS_INPUT
dmesh(1)=145.0,dmesh(2)=150.0,dmesh(3)=100.0,dmesh(4)=50.0,time_window_max=3.0,
hofx_2m_sfcfile=${hofx_2m_sfcfile},
${OBSINPUT}
/
OBS_INPUT::
Expand Down
2 changes: 1 addition & 1 deletion versions/fix.ver
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export gdas_fv3jedi_ver=20220805
export gdas_gsibec_ver=20221031
export gdas_obs_ver=20240213
export glwu_ver=20220805
export gsi_ver=20230911
export gsi_ver=20240208
export lut_ver=20220805
export mom6_ver=20231219
export orog_ver=20231027
Expand Down

0 comments on commit fa855ba

Please sign in to comment.