Skip to content

Commit

Permalink
Add GLDAS scripts & fix GLDAS job (#1018)
Browse files Browse the repository at this point in the history
Absorb GLDAS scripts into global-workflow and fix GLDAS job by updating scripts to use new GLDAS fix file set.

* Remove GLDAS scripts from .gitignore
* Remove GLDAS script symlinks from link_workflow.sh
* Add GLDAS scripts to global-workflow
* Updates to GLDAS scripts, includes converting GLDAS script to replace machine checks with CFP variables
* Address linter warnings and remove obsolete platforms

Refs #622 #1014
  • Loading branch information
KateFriedman-NOAA committed Sep 22, 2022
1 parent f180a54 commit a665817
Show file tree
Hide file tree
Showing 12 changed files with 785 additions and 53 deletions.
8 changes: 0 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ sorc/wafs_setmissing.fd
# Ignore scripts from externals
#------------------------------
# jobs symlinks
jobs/JGDAS_ATMOS_GLDAS
jobs/JGFS_ATMOS_WAFS
jobs/JGFS_ATMOS_WAFS_BLENDING
jobs/JGFS_ATMOS_WAFS_BLENDING_0P25
Expand All @@ -144,7 +143,6 @@ jobs/JGFS_ATMOS_WAFS_GRIB2
jobs/JGFS_ATMOS_WAFS_GRIB2_0P25
# scripts symlinks
scripts/exemcsfc_global_sfc_prep.sh
scripts/exgdas_atmos_gldas.sh
scripts/exgfs_atmos_wafs_blending.sh
scripts/exgfs_atmos_wafs_blending_0p25.sh
scripts/exgfs_atmos_wafs_gcip.sh
Expand All @@ -160,12 +158,6 @@ ush/fv3gfs_driver_grid.sh
ush/fv3gfs_filter_topo.sh
ush/fv3gfs_make_grid.sh
ush/fv3gfs_make_orog.sh
ush/gldas_archive.sh
ush/gldas_forcing.sh
ush/gldas_get_data.sh
ush/gldas_liscrd.sh
ush/gldas_post.sh
ush/gldas_process_data.sh
ush/global_chgres.sh
ush/global_chgres_driver.sh
ush/global_cycle.sh
Expand Down
3 changes: 3 additions & 0 deletions env/HERA.env
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ elif [ $step = "sfcanl" ]; then

elif [ $step = "gldas" ]; then

export USE_CFP="YES"
export CFP_MP="YES"

nth_max=$(($npe_node_max / $npe_node_gldas))

export NTHREADS_GLDAS=${nth_gldas:-$nth_max}
Expand Down
2 changes: 2 additions & 0 deletions env/ORION.env
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@ elif [ $step = "sfcanl" ]; then

elif [ $step = "gldas" ]; then

export USE_CFP="NO"

nth_max=$(($npe_node_max / $npe_node_gldas))

export NTHREADS_GLDAS=${nth_gldas:-$nth_max}
Expand Down
136 changes: 136 additions & 0 deletions jobs/JGDAS_ATMOS_GLDAS
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
#! /usr/bin/env bash

source "${HOMEgfs:?}/ush/preamble.sh"

export RUN_ENVIR=${RUN_ENVIR:-"nco"}

#############################
# Source relevant config files
#############################
export EXPDIR=${EXPDIR:-${HOMEgfs}/parm/config}
configs="base gldas"
config_path=${EXPDIR:-${NWROOT}/gfs.${gfs_ver}/parm/config}
for config in ${configs}; do
# shellcheck disable=SC1090-SC1091
. "${config_path}/config.${config}"
# shellcheck disable=
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"
done


if [[ "${cyc:?}" -ne "${gldas_cyc:?}" ]]; then
echo "GLDAS only runs for ${gldas_cyc} cycle; Skip GLDAS step for cycle ${cyc}"
exit 0
fi

gldas_spinup_hours=${gldas_spinup_hours-:72}
xtime=$((gldas_spinup_hours+12))
if [[ "${CDATE}" -le "$(${NDATE:?} +"${xtime}" "${SDATE:?}")" ]]; then
echo "GLDAS needs fluxes as forcing from cycles in previous ${xtime} hours"
echo "starting from ${SDATE}. This gldas cycle is skipped"
exit 0
fi

##########################################
# Source machine runtime environment
##########################################
# shellcheck disable=SC1090-SC1091
. "${HOMEgfs}/env/${machine:?}.env" gldas
# shellcheck disable=
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"


##############################################
# Obtain unique process id (pid) and make temp directory
##############################################
export pid=${pid:-$$}
export outid=${outid:-"LL${job}"}

export DATA=${DATA:-${DATAROOT}/${jobid:?}}
mkdir -p "${DATA}"
cd "${DATA}" || exit 1


##############################################
# Run setpdy and initialize PDY variables
##############################################
export cycle="t${cyc}z"
setpdy.sh
# shellcheck disable=SC1091
. ./PDY
# shellcheck disable=


##############################################
# Determine Job Output Name on System
##############################################
export pgmout="OUTPUT.${pid}"
export pgmerr=errfile


##############################################
# Set variables used in the exglobal script
##############################################
export CDATE=${CDATE:-${PDY}${cyc}}
export CDUMP=${CDUMP:-${RUN:-"gdas"}}
export COMPONENT=${COMPONENT:-atmos}


##############################################
# Begin JOB SPECIFIC work
##############################################
export gldas_ver=${gldas_ver:-v2.3.0}
export HOMEgldas=${HOMEgldas:-${HOMEgfs}}
export FIXgldas=${FIXgldas:-${HOMEgldas}/fix/fix_gldas}
export PARMgldas=${PARMgldas:-${HOMEgldas}/parm/gldas}
export EXECgldas=${EXECgldas:-${HOMEgldas}/exec}
export USHgldas=${USHgldas:-${HOMEgldas}/ush}
export PARA_CONFIG=${HOMEgfs}/parm/config/config.gldas

if [[ "${RUN_ENVIR}" = "nco" ]]; then
export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}}
export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}}
else
export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}"
export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}"
fi
if [[ ! -d ${COMOUT} ]]; then
mkdir -p "${COMOUT}"
chmod 775 "${COMOUT}"
fi

export COMINgdas=${COMINgdas:-${ROTDIR}}
export DCOMIN=${DCOMIN:-${DCOMROOT:-"/lfs/h1/ops/prod/dcom"}}

export model=${model:-noah}
export MODEL=${MODEL:-"${model} |tr 'a-z' 'A-Z'"}


###############################################################
# Run relevant exglobal script

${GLDASSH:-${HOMEgldas}/scripts/exgdas_atmos_gldas.sh}
status=$?
[[ ${status} -ne 0 ]] && exit "${status}"

##############################################
# End JOB SPECIFIC work
##############################################

##############################################
# Final processing
##############################################
if [[ -e "${pgmout}" ]] ; then
cat "${pgmout}"
fi

##########################################
# Remove the Temporary working directory
##########################################
cd "${DATAROOT}" || exit 1
[[ ${KEEPDATA:?} = "NO" ]] && rm -rf "${DATA}"

exit 0

1 change: 1 addition & 0 deletions parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ export CCPP_SUITE="FV3_GFS_v17_p8"
export WAVE_CDUMP="" # When to include wave suite: gdas, gfs, or both
export DOBNDPNT_WAVE="NO"
export cplwav2atm=".false."
export FRAC_GRID=".true."

case "${APP}" in
ATM)
Expand Down
Loading

0 comments on commit a665817

Please sign in to comment.