Skip to content

Commit

Permalink
Merge branch 'NOAA-EMC:develop' into IASI-NG
Browse files Browse the repository at this point in the history
  • Loading branch information
wx20jjung authored Nov 26, 2024
2 parents 2aa4f76 + e41eff2 commit fbf5be3
Show file tree
Hide file tree
Showing 42 changed files with 627 additions and 570 deletions.
2 changes: 1 addition & 1 deletion ci/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ def cases = ''
def GH = 'none'
// Location of the custom workspaces for each machine in the CI system. They are persitent for each iteration of the PR.
def NodeName = [hera: 'Hera-EMC', orion: 'Orion-EMC', hercules: 'Hercules-EMC', gaea: 'Gaea']
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaea: '/gpfs/f5/epic/proj-shared/global/CI']
def custom_workspace = [hera: '/scratch1/NCEPDEV/global/CI_dh', orion: '/work2/noaa/stmp/CI/ORION', hercules: '/work2/noaa/global/CI/HERCULES', gaea: '/gpfs/f5/epic/proj-shared/global/CI']
def repo_url = '[email protected]:NOAA-EMC/global-workflow.git'
def STATUS = 'Passed'

Expand Down
1 change: 1 addition & 0 deletions ci/cases/gfsv17/ocnanal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ base:
DO_VRFY_OCEANDA: "NO"
FHMAX_GFS: 240
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_TEST_MODE: "YES"

marineanl:
SOCA_INPUT_FIX_DIR: {{ HOMEgfs }}/fix/gdas/soca/1440x1080x75/soca
Expand Down
1 change: 1 addition & 0 deletions ci/cases/yamls/atmaerosnowDA_defaults_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ defaults:
base:
DO_JEDISNOWDA: "YES"
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_TEST_MODE: "YES"
1 change: 1 addition & 0 deletions ci/cases/yamls/gfs_defaults_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ defaults:
!INC {{ HOMEgfs }}/parm/config/gfs/yaml/defaults.yaml
base:
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_TEST_MODE: "YES"
1 change: 1 addition & 0 deletions ci/cases/yamls/gfs_extended_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ base:
FCST_BREAKPOINTS: 192
FHMAX_GFS: 384
FHMAX_HF_GFS: 120
DO_TEST_MODE: "YES"
1 change: 1 addition & 0 deletions ci/cases/yamls/soca_gfs_defaults_ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ defaults:
base:
ACCOUNT: {{ 'HPC_ACCOUNT' | getenv }}
DO_JEDIOCNVAR: "YES"
DO_TEST_MODE: "YES"
2 changes: 1 addition & 1 deletion jobs/JGLOBAL_FORECAST
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ if [[ "${DO_ICE}" == "YES" ]]; then
COMIN_ICE_RESTART_PREV:COM_ICE_RESTART_TMPL
fi

if [[ "${DO_AERO}" == "YES" ]]; then
if [[ "${DO_AERO_FCST}" == "YES" ]]; then
YMD="${PDY}" HH="${cyc}" declare_from_tmpl -rx \
COMOUT_CHEM_HISTORY:COM_CHEM_HISTORY_TMPL
fi
Expand Down
2 changes: 1 addition & 1 deletion parm/archive/gdas.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ gdas:
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}oznstat"
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}radstat"
{% endif %}
{% if AERO_ANL_RUN == "gdas" or AERO_ANL_RUN == "both" %}
{% if DO_AERO_ANL %}
- "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat"
{% endif %}
{% if DO_PREP_OBS_AERO %}
Expand Down
2 changes: 1 addition & 1 deletion parm/archive/gfs_arcdir.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
ARCDIR ~ "/snowstat." ~ RUN ~ "." ~ cycle_YMDH ~ ".tgz"]) %}
{% endif %}

{% if AERO_ANL_RUN == RUN or AERO_ANL_RUN == "both" %}
{% if DO_AERO_ANL %}
{% do det_anl_files.append([COMIN_CHEM_ANALYSIS ~ "/" ~ head ~ "aerostat",
ARCDIR ~ "/aerostat." ~ RUN ~ "." ~ cycle_YMDH ]) %}
{% endif %}
Expand Down
2 changes: 1 addition & 1 deletion parm/archive/gfsa.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ gfsa:
{% else %}
- "{{ COMIN_ATMOS_ANALYSIS | relpath(ROTDIR) }}/{{ head }}gsistat"
{% endif %}
{% if AERO_ANL_RUN == "gfs" or AERO_ANL_RUN == "both" %}
{% if DO_AERO_ANL %}
- "{{ COMIN_CHEM_ANALYSIS | relpath(ROTDIR) }}/{{ head }}aerostat"
{% endif %}
{% if DO_PREP_OBS_AERO %}
Expand Down
2 changes: 1 addition & 1 deletion parm/archive/master_gfs.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ datasets:
{% endfilter %}
{% endif %}

{% if AERO_FCST_RUN == "gfs" or AERO_FCST_RUN == "both" %}
{% if DO_AERO_FCST %}
# Aerosol forecasts
{% filter indent(width=4) %}
{% include "chem.yaml.j2" %}
Expand Down
17 changes: 5 additions & 12 deletions parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export REALTIME="YES"
# Experiment mode (cycled or forecast-only)
export MODE="@MODE@" # cycled/forecast-only
export SFS_POST="@SFS_POST@" # TODO, place holder until RUN=SFS is developed
export DO_TEST_MODE="@DO_TEST_MODE@" # option to change configuration for automated testing

####################################################
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
Expand Down Expand Up @@ -134,11 +135,8 @@ export DO_COUPLED="NO"
export DO_WAVE="NO"
export DO_OCN="NO"
export DO_ICE="NO"
export DO_AERO="NO"
export DO_EXTRACTVARS="@DO_EXTRACTVARS@" # Option to process and extract a subset of products to save on disk
export AERO_FCST_RUN="" # When to run aerosol forecast: gdas, gfs, or both
export AERO_ANL_RUN="" # When to run aerosol analysis: gdas, gfs, or both
export WAVE_RUN="" # When to include wave suite: gdas, gfs, or both
export DO_AERO_FCST="NO"
export DOBNDPNT_WAVE="NO" # The GEFS buoys file does not currently have any boundary points
export DOIBP_WAV="NO" # Option to create point outputs from input boundary points
export FRAC_GRID=".true."
Expand Down Expand Up @@ -183,14 +181,11 @@ case "${APP}" in
ATM)
;;
ATMA)
export DO_AERO="YES"
export AERO_ANL_RUN="both"
export AERO_FCST_RUN="gdas"
export DO_AERO_FCST="YES"
;;
ATMW)
export DO_COUPLED="YES"
export DO_WAVE="YES"
export WAVE_RUN="both"
;;
NG-GODAS)
export DO_ATM="NO"
Expand All @@ -203,14 +198,11 @@ case "${APP}" in
export DO_ICE="YES"

if [[ "${APP}" =~ A$ ]]; then
export DO_AERO="YES"
export AERO_ANL_RUN="both"
export AERO_FCST_RUN="gdas"
export DO_AERO_FCST="YES"
fi

if [[ "${APP}" =~ ^S2SW ]]; then
export DO_WAVE="YES"
export WAVE_RUN="both"
fi
;;
*)
Expand All @@ -225,6 +217,7 @@ export FHMAX=9
export FHOUT=3 # Will be changed to 1 in config.base if (DOHYBVAR set to NO and l4densvar set to false)
export FHOUT_OCN=3
export FHOUT_ICE=3
export FHOUT_AERO=3

# GFS cycle info
export INTERVAL_GFS=@INTERVAL_GFS@ # Frequency of GFS forecast
Expand Down
4 changes: 2 additions & 2 deletions parm/config/gefs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
echo "BEGIN: config.efcs"

# Turn off components in ensemble
# export DO_AERO="NO"
# export DO_AERO_FCST="NO"
# export DO_OCN="NO"
# export DO_ICE="NO"
# export DO_WAVE="NO"
Expand All @@ -19,7 +19,7 @@ string="--fv3 ${CASE}"
[[ "${DO_OCN}" == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ "${DO_ICE}" == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ "${DO_WAVE}" == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
[[ "${DO_AERO}" == "YES" ]] && string="${string} --gocart"
[[ "${DO_AERO_FCST}" == "YES" ]] && string="${string} --gocart"
# shellcheck disable=SC2086
source "${EXPDIR}/config.ufs" ${string}

Expand Down
16 changes: 2 additions & 14 deletions parm/config/gefs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,12 @@ echo "BEGIN: config.fcst"
export USE_ESMF_THREADING="YES" # Toggle to use ESMF-managed threading or traditional threading in UFSWM
export COPY_FINAL_RESTARTS="NO" # Toggle to copy restarts from the end of GFS/GEFS Run (GDAS is handled seperately)

# Turn off waves if not used for this RUN
case ${WAVE_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_WAVE="NO" ;; # Turn waves off
esac

# Turn off aerosols if not used for this RUN
case ${AERO_FCST_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_AERO="NO" ;; # Turn waves off
esac

# Source model specific information that is resolution dependent
string="--fv3 ${CASE}"
[[ "${DO_OCN}" == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ "${DO_ICE}" == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ "${DO_WAVE}" == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
[[ "${DO_AERO}" == "YES" ]] && string="${string} --gocart"
[[ "${DO_AERO_FCST}" == "YES" ]] && string="${string} --gocart"
# We are counting on $string being multiple arguments
# shellcheck disable=SC2086
source "${EXPDIR}/config.ufs" ${string}
Expand Down Expand Up @@ -142,7 +130,7 @@ tbp=""
if [[ "${progsigma}" == ".true." ]]; then tbp="_progsigma" ; fi

# Radiation options
if [[ "${DO_AERO}" == "YES" ]]; then
if [[ "${DO_AERO_FCST}" == "YES" ]]; then
export IAER=2011 # spectral band mapping method for aerosol optical properties
else
export IAER=1011
Expand Down
4 changes: 2 additions & 2 deletions parm/config/gefs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ case ${step} in
export ntasks=1
export tasks_per_node=1
export threads_per_task=1
export is_exclusive=True
export memory="4096M"
;;

"waveinit")
Expand Down Expand Up @@ -144,7 +144,7 @@ case ${step} in
echo "MEDIATOR using (threads, PETS) = (${MEDTHREADS}, ${MEDPETS})"

CHMPETS=0; CHMTHREADS=0
if [[ "${DO_AERO}" == "YES" ]]; then
if [[ "${DO_AERO_FCST}" == "YES" ]]; then
# GOCART shares the same grid and forecast tasks as FV3 (do not add write grid component tasks).
(( CHMTHREADS = ATMTHREADS ))
(( CHMPETS = FV3PETS ))
Expand Down
5 changes: 4 additions & 1 deletion parm/config/gefs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ base:
HPSSARCH: "NO"
LOCALARCH: "NO"
SFS_POST: "NO"
DO_TEST_MODE: "NO"
fcst:
reforecast: "NO"
FHZER: 6
Expand All @@ -31,4 +32,6 @@ stage_ic:
USE_ATM_ENS_PERTURB_FILES: "NO"
ocn:
MOM6_INTERP_ICS: "NO"

# config.aero has just a system-specific path to add.
# This is handled by the setup_expt.py, but it has to be told to write to it.
aero: {}
5 changes: 5 additions & 0 deletions parm/config/gfs/config.anal
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ fi
export lobsdiag_forenkf=".false." # anal does not need to write out jacobians
# set to .true. in config.eobs and config.eupd

# Reduce number of iterations for testing mode
if [[ ${DO_TEST_MODE} = "YES" ]]; then
export SETUP="${SETUP:-}niter(1)=5,niter(2)=5,"
fi

# Do not process the following datasets
export GSNDBF=${GSNDBF:-/dev/null}
export AMSREBF=${AMSREBF:-/dev/null}
Expand Down
42 changes: 25 additions & 17 deletions parm/config/gfs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ export REALTIME="YES"

# Experiment mode (cycled or forecast-only)
export MODE="@MODE@" # cycled/forecast-only
export DO_TEST_MODE="@DO_TEST_MODE@" # option to change configuration for automated testing

####################################################
# DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE
Expand Down Expand Up @@ -159,6 +160,7 @@ export APP=@APP@

shopt -s extglob
# Adjust APP based on RUN
# If a component (WAVES, etc) needs to be turned off by RUN, set it here
case "${RUN}" in
enkf*) # Turn off aerosols and waves
APP="${APP/%+([WA])}"
Expand All @@ -174,11 +176,12 @@ export DO_COUPLED="NO"
export DO_WAVE="NO"
export DO_OCN="NO"
export DO_ICE="NO"
export DO_AERO="NO"
DO_AERO="NO"
export DO_PREP_OBS_AERO="NO"
export AERO_FCST_RUN="" # When to run aerosol forecast: gdas, gfs, or both
export AERO_ANL_RUN="" # When to run aerosol analysis: gdas, gfs, or both
export WAVE_RUN="" # When to include wave suite: gdas, gfs, or both
aero_fcst_runs="gdas" # When to run aerosol forecast: gdas, gfs, or both
aero_anl_runs="gdas gfs" # When to run aerosol analysis: gdas, gfs, or both
export DO_AERO_FCST="NO"
export DO_AERO_ANL="NO"
export DOBNDPNT_WAVE="NO"
export DOIBP_WAV="NO" # Option to create point outputs from input boundary points
export FRAC_GRID=".true."
Expand Down Expand Up @@ -220,22 +223,19 @@ case "${CASE}" in
;;
*)
echo "FATAL ERROR: Unrecognized CASE ${CASE}, ABORT!"
exit 1
exit 2
;;
esac

case "${APP}" in
ATM)
;;
ATMA)
export DO_AERO="YES"
export AERO_ANL_RUN="both"
export AERO_FCST_RUN="gdas"
DO_AERO="YES"
;;
ATMW)
export DO_COUPLED="YES"
export DO_WAVE="YES"
export WAVE_RUN="both"
;;
NG-GODAS)
export DO_ATM="NO"
Expand All @@ -248,22 +248,29 @@ case "${APP}" in
export DO_ICE="YES"

if [[ "${APP}" =~ A$ ]]; then
export DO_AERO="YES"
export AERO_ANL_RUN="both"
export AERO_FCST_RUN="gdas"
DO_AERO="YES"
fi

if [[ "${APP}" =~ ^S2SW ]]; then
export DO_WAVE="YES"
export WAVE_RUN="both"
fi
;;
*)
echo "Unrecognized APP: '${APP}'"
exit 2
echo "FATAL ERROR: Unrecognized APP: '${APP}'"
exit 3
;;
esac

# Aerosol forecasts and analyses may be RUN-dependent
if [[ "${DO_AERO}" == "YES" ]]; then
if [[ ${aero_anl_runs} =~ ${RUN} ]]; then
export DO_AERO_ANL="YES"
fi
if [[ ${aero_fcst_runs} =~ ${RUN} ]]; then
export DO_AERO_FCST="YES"
fi
fi

# Surface cycle update frequency
if [[ "${RUN}" =~ "gdas" ]] ; then
export FHCYC=1
Expand All @@ -278,6 +285,7 @@ export FHMAX=9
export FHOUT=3 # Will be changed to 1 in config.base if (DOHYBVAR set to NO and l4densvar set to false)
export FHOUT_OCN=3
export FHOUT_ICE=3
export FHOUT_AERO=3

# Cycle to run EnKF (set to BOTH for both gfs and gdas)
export EUPD_CYC="@EUPD_CYC@"
Expand Down Expand Up @@ -461,8 +469,8 @@ export FHMAX_FITS=132
export HPSSARCH="@HPSSARCH@" # save data to HPSS archive
export LOCALARCH="@LOCALARCH@" # save data to local archive
if [[ ${HPSSARCH} = "YES" ]] && [[ ${LOCALARCH} = "YES" ]]; then
echo "Both HPSS and local archiving selected. Please choose one or the other."
exit 3
echo "FATAL ERROR: Both HPSS and local archiving selected. Please choose one or the other."
exit 4
fi
export ARCH_CYC=00 # Archive data at this cycle for warm_start capability
export ARCH_WARMICFREQ=4 # Archive frequency in days for warm_start capability
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gfs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ string="--fv3 ${CASE}"
[[ "${DO_OCN}" == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ "${DO_ICE}" == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ "${DO_WAVE}" == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
[[ "${DO_AERO}" == "YES" ]] && string="${string} --gocart"
[[ "${DO_AERO_FCST}" == "YES" ]] && string="${string} --gocart"
# We are counting on $string being multiple arguments
# shellcheck disable=SC2086
source "${EXPDIR}/config.ufs" ${string}
Expand Down
16 changes: 2 additions & 14 deletions parm/config/gfs/config.fcst
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,12 @@ echo "BEGIN: config.fcst"
export USE_ESMF_THREADING="YES" # Toggle to use ESMF-managed threading or traditional threading in UFSWM
export COPY_FINAL_RESTARTS="NO" # Toggle to copy restarts from the end of GFS/GEFS Run (GDAS is handled seperately)

# Turn off waves if not used for this RUN
case ${WAVE_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_WAVE="NO" ;; # Turn waves off
esac

# Turn off aerosols if not used for this RUN
case ${AERO_FCST_RUN} in
both | "${RUN/enkf}" ) ;; # Don't change
*) DO_AERO="NO" ;; # Turn aerosols off
esac

# Source model specific information that is resolution dependent
string="--fv3 ${CASE}"
[[ "${DO_OCN}" == "YES" ]] && string="${string} --mom6 ${OCNRES}"
[[ "${DO_ICE}" == "YES" ]] && string="${string} --cice6 ${ICERES}"
[[ "${DO_WAVE}" == "YES" ]] && string="${string} --ww3 ${waveGRD// /;}"
[[ "${DO_AERO}" == "YES" ]] && string="${string} --gocart"
[[ "${DO_AERO_FCST}" == "YES" ]] && string="${string} --gocart"
# We are counting on $string being multiple arguments
# shellcheck disable=SC2086
source "${EXPDIR}/config.ufs" ${string}
Expand Down Expand Up @@ -157,7 +145,7 @@ tbp=""
if [[ "${progsigma}" == ".true." ]]; then tbp="_progsigma" ; fi

# Radiation options
if [[ "${DO_AERO}" == "YES" ]]; then
if [[ "${DO_AERO_FCST}" == "YES" ]]; then
export IAER=2011 # spectral band mapping method for aerosol optical properties
else
export IAER=1011
Expand Down
Loading

0 comments on commit fbf5be3

Please sign in to comment.