From 79e564a7f073c0f128b63c2100d1773dbc59085b Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Mon, 9 Jan 2023 10:33:02 -0500 Subject: [PATCH] Move member up in directory hierarchy (#1201) Moves the member directory one higher level in the directory hierarchy in anticipation of additionally components being run for the members in addition to atmos. This results in COM directories that are arranged as `memXXX/atmos` instead of `atmos/memXXX`. This PR also adds a "hack" to allow the success for the `gdaspostanl` job in the first half cycle (see #1034). The "hack" will be removed with the refactoring of the post jobs in the (near) future. Fixes #1196 Refs #1034 --- jobs/JGDAS_ATMOS_ANALYSIS_DIAG | 19 +++++----- jobs/JGDAS_ATMOS_CHGRES_FORENKF | 22 +++++------ jobs/JGDAS_ATMOS_GLDAS | 8 ++-- jobs/JGDAS_ENKF_DIAG | 4 +- jobs/JGDAS_ENKF_ECEN | 16 ++++---- jobs/JGDAS_ENKF_FCST | 2 +- jobs/JGDAS_ENKF_POST | 4 +- jobs/JGDAS_ENKF_SELECT_OBS | 4 +- jobs/JGDAS_ENKF_SFC | 18 ++++----- jobs/JGDAS_ENKF_UPDATE | 4 +- jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP | 4 +- jobs/JGLOBAL_ATMOS_ANALYSIS | 18 ++++----- jobs/JGLOBAL_ATMOS_ANALYSIS_CALC | 18 ++++----- jobs/JGLOBAL_ATMOS_POST | 15 +++++++- jobs/JGLOBAL_ATMOS_POST_MANAGER | 5 +-- jobs/JGLOBAL_ATMOS_SFCANL | 14 +++---- scripts/exgdas_atmos_chgres_forenkf.sh | 2 +- scripts/exgdas_atmos_gldas.sh | 13 +++---- scripts/exgdas_enkf_earc.sh | 12 +++--- scripts/exgdas_enkf_ecen.sh | 42 +++++++++------------ scripts/exgdas_enkf_fcst.sh | 2 +- scripts/exgdas_enkf_post.sh | 6 +-- scripts/exgdas_enkf_sfc.sh | 12 +++--- scripts/exgdas_enkf_update.sh | 18 ++++----- scripts/exgdas_global_atmos_analysis_run.sh | 6 +-- scripts/exglobal_atmos_analysis.sh | 39 ++++--------------- scripts/exglobal_atmos_sfcanl.sh | 1 - ush/calcinc_gfs.py | 12 ++---- ush/forecast_predet.sh | 4 +- ush/hpssarch_gen.sh | 4 +- workflow/setup_expt.py | 2 +- 31 files changed, 159 insertions(+), 191 deletions(-) diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 11fc1553c2..0922286f86 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -51,7 +51,6 @@ status=$? ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -export COMPONENT="atmos" export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -72,19 +71,19 @@ export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index f3848e544d..9bd0314e8b 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -72,21 +72,21 @@ export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkfgdas.${PDY}/${cyc}/${COMPONENT}} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT_ENS=${COMOUT_ENS:-${ROTDIR}/enkfgdas.${PDY}/${cyc}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMOUT_ENS="${ROTDIR}/enkfgdas.${PDY}/${cyc}/${COMPONENT}" - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMOUT_ENS="${ROTDIR}/enkfgdas.${PDY}/${cyc}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" ############################################################### # Run relevant script diff --git a/jobs/JGDAS_ATMOS_GLDAS b/jobs/JGDAS_ATMOS_GLDAS index 996daf12de..a2058d3a5b 100755 --- a/jobs/JGDAS_ATMOS_GLDAS +++ b/jobs/JGDAS_ATMOS_GLDAS @@ -81,11 +81,11 @@ 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}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} else - export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" fi if [[ ! -d ${COMOUT} ]]; then mkdir -p "${COMOUT}" diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index b144a72bb3..183b74068c 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -85,9 +85,9 @@ fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script COMIN_GES_CTL="${ROTDIR}/gdas.${gPDY}/${gcyc}/${COMPONENT}" export COMIN_ANL="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export COMIN_GES=${COMIN_GES_ENS} -export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index d3d4f8fe7e..de527cbce4 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -81,18 +81,18 @@ export GSUFFIX=${GSUFFIX:-${SUFFIX}} export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script -export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}/${COMPONENT}" -export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" +export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}" +export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}" ############################################################### diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index e5d949577b..b8ba97bd36 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -61,7 +61,7 @@ export rCDUMP="gdas" export CASE=${CASE_ENKF} # COMOUT is used in script -export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" # Forecast length for EnKF forecast diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 02d2741d16..8caa9d893e 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -62,8 +62,8 @@ export GFS_NCIO=${GFS_NCIO:-"YES"} export PREFIX="${CDUMP}.t${cyc}z." # COMIN, COMOUT are used in script -export COMIN="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" export LEVS=$((LEVS-1)) diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index b0b149080f..092c467d9a 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -85,9 +85,9 @@ fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script COMIN_GES_CTL="${ROTDIR}/gdas.${gPDY}/${gcyc}/${COMPONENT}" export COMIN_ANL="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export COMIN_GES=${COMIN_GES_ENS} -export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMOUT="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" export ATMGES_ENSMEAN="${COMIN_GES_ENS}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 85313002a6..634cfa49ea 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -81,19 +81,19 @@ export GSUFFIX=${GSUFFIX:-${SUFFIX}} export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script -export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}/${COMPONENT}" -export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_ENS="${ROTDIR}/enkf${CDUMP_ENKF}.${PDY}/${cyc}" +export COMOUT_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" +export COMIN_GES_ENS="${ROTDIR}/enkf${GDUMP}.${gPDY}/${gcyc}" ############################################################### diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index e97016b630..11122398d8 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -69,8 +69,8 @@ export GSUFFIX=${GSUFFIX:-${SUFFIX}} # COMIN_GES_ENS and COMOUT_ANL_ENS are used in script -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" -export COMOUT_ANL_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${COMPONENT}" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" +export COMOUT_ANL_ENS="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}" ############################################################### diff --git a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP index d7bede1b7e..f5b4233594 100755 --- a/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_OCEAN_ANALYSIS_PREP @@ -69,12 +69,12 @@ export APREFIX="${CDUMP}.t${cyc}z." export GSUFFIX=${GSUFFIX:-${SUFFIX}} export ASUFFIX=${ASUFFIX:-${SUFFIX}} -export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/ocean} mkdir -p "${COMOUT}" # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/ocean" ############################################################### # Run relevant script diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index a557fd81a5..cfc0398949 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -74,19 +74,19 @@ export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 97dfd8079b..a30737d332 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -72,19 +72,19 @@ export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_OBS=${COMIN_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" - export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_OBS="${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos" + export COMIN_GES_OBS="${DMPDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" fi mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/jobs/JGLOBAL_ATMOS_POST b/jobs/JGLOBAL_ATMOS_POST index c0327a8311..534eb62872 100755 --- a/jobs/JGLOBAL_ATMOS_POST +++ b/jobs/JGLOBAL_ATMOS_POST @@ -62,6 +62,17 @@ export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT="atmos" +############################################## +# TODO: Remove this egregious HACK +############################################## +if [[ "${SDATE:-}" = "${CDATE}" ]]; then + if [[ ${post_times} = "anl" ]]; then + echo "No offline post-processing in the first half cycle for analysis" + exit 0 + fi +fi + + ############################################## # Begin JOB SPECIFIC work ############################################## @@ -72,8 +83,8 @@ export FIXCRTM=${CRTM_FIX:-${HOMECRTM}/fix} export PARMpost=${PARMpost:-${HOMEgfs}/parm/post} export INLINE_POST=${WRITE_DOPOST:-".false."} -export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} -export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} +export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} # shellcheck disable=SC2174 [[ ! -d "${COMOUT}" ]] && mkdir -m 775 -p "${COMOUT}" diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index 88aca2896f..6a9bde08cf 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -55,7 +55,6 @@ status=$? #################################### export NET=${NET:-gfs} export RUN=${RUN:-gfs} -export COMPONENT="atmos" #################################### @@ -78,8 +77,8 @@ export USHgfs=${HOMEgfs:-${HOMEgfs}/ush} export EXT_FCST=NO export ROTDIR=${ROTDIR:-${COMROOT:?}/${NET}/${envir}} -export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} -export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} +export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} +export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} ######################################################## diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index c574f9d0e3..42e5a88272 100755 --- a/jobs/JGLOBAL_ATMOS_SFCANL +++ b/jobs/JGLOBAL_ATMOS_SFCANL @@ -73,19 +73,19 @@ export ASUFFIX=${ASUFFIX:-${SUFFIX}} if [ ${RUN_ENVIR} = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_OBS=${COMIN_OBS:-${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT}} - export COMIN_GES_OBS=${COMIN_GES_OBS:-${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}} + export COMIN=${COMIN:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMOUT=${COMOUT:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_OBS=${COMIN_OBS:-${ROTDIR}/${RUN}.${PDY}/${cyc}/atmos} + export COMIN_GES_OBS=${COMIN_GES_OBS:-${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos} else - export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/${COMPONENT}" + export COMOUT="${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos" export COMIN_OBS="${DMPDIR}/${CDATE}/${CDUMP}" export COMIN_GES_OBS="${DMPDIR}/${GDATE}/${GDUMP}" fi mkdir -m 775 -p ${COMOUT} # COMIN_GES and COMIN_GES_ENS are used in script -export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/${COMPONENT}" -export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}/${COMPONENT}" +export COMIN_GES="${ROTDIR}/${GDUMP}.${gPDY}/${gcyc}/atmos" +export COMIN_GES_ENS="${ROTDIR}/enkfgdas.${gPDY}/${gcyc}" export ATMGES="${COMIN_GES}/${GPREFIX}atmf006${GSUFFIX}" diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh index db628915df..254ab206f6 100755 --- a/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/scripts/exgdas_atmos_chgres_forenkf.sh @@ -80,7 +80,7 @@ ATMF06ENS=${ATMF06ENS:-${COMOUT}/${APREFIX}atmf006.ensres${ASUFFIX}} ATMF07ENS=${ATMF07ENS:-${COMOUT}/${APREFIX}atmf007.ensres${ASUFFIX}} ATMF08ENS=${ATMF08ENS:-${COMOUT}/${APREFIX}atmf008.ensres${ASUFFIX}} ATMF09ENS=${ATMF09ENS:-${COMOUT}/${APREFIX}atmf009.ensres${ASUFFIX}} -ATMFCST_ENSRES=${ATMFCST_ENSRES:-${COMOUT_ENS}/mem001/${APREFIX}atmf006${ASUFFIX}} +ATMFCST_ENSRES=${ATMFCST_ENSRES:-${COMOUT_ENS}/mem001/atmos/${APREFIX}atmf006${ASUFFIX}} # Set script / GSI control parameters DOHYBVAR=${DOHYBVAR:-"NO"} diff --git a/scripts/exgdas_atmos_gldas.sh b/scripts/exgdas_atmos_gldas.sh index c06989b947..596e049c3a 100755 --- a/scripts/exgdas_atmos_gldas.sh +++ b/scripts/exgdas_atmos_gldas.sh @@ -4,7 +4,7 @@ #### UNIX Script Documentation Block # . . # Script name: exgdas_atmos_gldas.sh -# Script description: Runs the global land analysis +# Script description: Runs the global land analysis # ################################################################################ @@ -31,7 +31,6 @@ export ERRSCRIPT=${ERRSCRIPT:-"eval [[ ${err} = 0 ]]"} # Set up the running environment ################################# export USE_CFP=${USE_CFP:-"NO"} -export COMPONENT=${COMPONENT:-atmos} export assim_freq=${assim_freq:-6} export gldas_spinup_hours=${gldas_spinup_hours:-72} @@ -77,8 +76,8 @@ export RUNDIR=${DATA} GDAS=${RUNDIR}/force mkdir -p "${GDAS}" -input1=${COMINgdas}/gdas.${gldas_symd}/${gldas_scyc}/${COMPONENT}/RESTART -input2=${COMINgdas}/gdas.${gldas_eymd}/${gldas_ecyc}/${COMPONENT}/RESTART +input1=${COMINgdas}/gdas.${gldas_symd}/${gldas_scyc}/atmos/RESTART +input2=${COMINgdas}/gdas.${gldas_eymd}/${gldas_ecyc}/atmos/RESTART [[ -d ${RUNDIR} ]] && rm -fr "${RUNDIR}/FIX" [[ -f ${RUNDIR}/LIS ]] && rm -fr "${RUNDIR}/LIS" [[ -d ${RUNDIR}/input ]] && rm -fr "${RUNDIR}/input" @@ -169,11 +168,11 @@ ${ERRSCRIPT} || exit 4 #--------------------------------------------------------------- -### 3) Produce initials noah.rst from 6-tile gdas restart files +### 3) Produce initials noah.rst from 6-tile gdas restart files #--------------------------------------------------------------- rm -f fort.41 fort.141 fort.11 fort.12 -# 3a) create gdas2gldas input file +# 3a) create gdas2gldas input file cat >> fort.141 << EOF &config @@ -190,7 +189,7 @@ EOF cp fort.141 fort.41 -# 3b) Use gdas2gldas to generate nemsio file +# 3b) Use gdas2gldas to generate nemsio file export OMP_NUM_THREADS=1 export pgm=gdas2gldas diff --git a/scripts/exgdas_enkf_earc.sh b/scripts/exgdas_enkf_earc.sh index 7962946034..4df4dc82c7 100755 --- a/scripts/exgdas_enkf_earc.sh +++ b/scripts/exgdas_enkf_earc.sh @@ -7,7 +7,7 @@ source "${HOMEgfs}/ush/preamble.sh" ############################################## export n=$((10#${ENSGRP})) export CDUMP_ENKF=$(echo "${EUPD_CYC:-"gdas"}" | tr a-z A-Z) -export ARCH_LIST="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/atmos/earc${ENSGRP}" +export ARCH_LIST="${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/earc${ENSGRP}" # ICS are restarts and always lag INC by $assim_freq hours. EARCINC_CYC=${ARCH_CYC} @@ -122,12 +122,12 @@ if [ "${ENSGRP}" -eq 0 ]; then [[ ! -d ${ARCDIR} ]] && mkdir -p "${ARCDIR}" cd "${ARCDIR}" - nb_copy "${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/atmos/${CDUMP}.t${cyc}z.enkfstat" "enkfstat.${CDUMP}.${CDATE}" - nb_copy "${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/atmos/${CDUMP}.t${cyc}z.gsistat.ensmean" "gsistat.${CDUMP}.${CDATE}.ensmean" + nb_copy "${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${CDUMP}.t${cyc}z.enkfstat" "enkfstat.${CDUMP}.${CDATE}" + nb_copy "${ROTDIR}/enkf${CDUMP}.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsistat.ensmean" "gsistat.${CDUMP}.${CDATE}.ensmean" if [ "${CDUMP_ENKF}" != "GDAS" ]; then - nb_copy "${ROTDIR}/enkfgfs.${PDY}/${cyc}/atmos/${CDUMP}.t${cyc}z.enkfstat" "enkfstat.gfs.${CDATE}" - nb_copy "${ROTDIR}/enkfgfs.${PDY}/${cyc}/atmos/${CDUMP}.t${cyc}z.gsistat.ensmean" "gsistat.gfs.${CDATE}.ensmean" + nb_copy "${ROTDIR}/enkfgfs.${PDY}/${cyc}/${CDUMP}.t${cyc}z.enkfstat" "enkfstat.gfs.${CDATE}" + nb_copy "${ROTDIR}/enkfgfs.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsistat.ensmean" "gsistat.gfs.${CDATE}.ensmean" fi fi @@ -152,7 +152,7 @@ if [ "${ENSGRP}" -eq 0 ]; then # Loop over GDAS and GFS EnKF directories separately. clist="gdas gfs" for ctype in ${clist}; do - COMIN_ENS="${ROTDIR}/enkf${ctype}.${gPDY}/${gcyc}/atmos" + COMIN_ENS="${ROTDIR}/enkf${ctype}.${gPDY}/${gcyc}" if [ -d "${COMIN_ENS}" ]; then rocotolog="${EXPDIR}/logs/${GDATE}.log" if [ -f "${rocotolog}" ]; then diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh index c964e1dc7e..a5603eee6a 100755 --- a/scripts/exgdas_enkf_ecen.sh +++ b/scripts/exgdas_enkf_ecen.sh @@ -31,7 +31,6 @@ ntiles=${ntiles:-6} # Utilities NCP=${NCP:-"/bin/cp -p"} NLN=${NLN:-"/bin/ln -sf"} -NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} # Scripts @@ -108,32 +107,32 @@ for FHR in $(seq $FHMIN $FHOUT $FHMAX); do for imem in $(seq 1 $NMEM_ENKF); do memchar="mem"$(printf %03i $imem) - $NLN $COMIN_GES_ENS/$memchar/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}$GSUFFIX ./atmges_$memchar + $NLN $COMIN_GES_ENS/$memchar/atmos/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}$GSUFFIX ./atmges_$memchar if [ $DO_CALC_INCREMENT = "YES" ]; then if [ $FHR -eq 6 ]; then - $NLN $COMIN_ENS/$memchar/${APREFIX_ENKF}atmanl$ASUFFIX ./atmanl_$memchar + $NLN $COMIN_ENS/$memchar/atmos/${APREFIX_ENKF}atmanl$ASUFFIX ./atmanl_$memchar else - $NLN $COMIN_ENS/$memchar/${APREFIX_ENKF}atma00${FHR}$ASUFFIX ./atmanl_$memchar + $NLN $COMIN_ENS/$memchar/atmos/${APREFIX_ENKF}atma00${FHR}$ASUFFIX ./atmanl_$memchar fi fi mkdir -p $COMOUT_ENS/$memchar if [ $FHR -eq 6 ]; then - $NLN $COMOUT_ENS/$memchar/${APREFIX}atminc.nc ./atminc_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}atminc.nc ./atminc_$memchar else - $NLN $COMOUT_ENS/$memchar/${APREFIX}atmi00${FHR}.nc ./atminc_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}atmi00${FHR}.nc ./atminc_$memchar fi if [[ $RECENTER_ENKF = "YES" ]]; then if [ $DO_CALC_INCREMENT = "YES" ]; then if [ $FHR -eq 6 ]; then - $NLN $COMOUT_ENS/$memchar/${APREFIX}ratmanl$ASUFFIX ./ratmanl_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}ratmanl$ASUFFIX ./ratmanl_$memchar else - $NLN $COMOUT_ENS/$memchar/${APREFIX}ratma00${FHR}$ASUFFIX ./ratmanl_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}ratma00${FHR}$ASUFFIX ./ratmanl_$memchar fi else if [ $FHR -eq 6 ]; then - $NLN $COMOUT_ENS/$memchar/${APREFIX}ratminc$ASUFFIX ./ratminc_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}ratminc$ASUFFIX ./ratminc_$memchar else - $NLN $COMOUT_ENS/$memchar/${APREFIX}ratmi00${FHR}$ASUFFIX ./ratminc_$memchar + $NLN $COMOUT_ENS/$memchar/atmos/${APREFIX}ratmi00${FHR}$ASUFFIX ./ratminc_$memchar fi fi fi @@ -198,23 +197,16 @@ else fi fi -if [ ${SUFFIX} = ".nc" ]; then - if [ $DO_CALC_INCREMENT = "YES" ]; then - LONB_ENKF=${LONB_ENKF:-$($NCLEN atmanl_ensmean grid_xt)} # get LONB - LATB_ENKF=${LATB_ENKF:-$($NCLEN atmanl_ensmean grid_yt)} # get LATB - LEVS_ENKF=${LEVS_ENKF:-$($NCLEN atmanl_ensmean pfull)} # get LEVS - else - LONB_ENKF=${LONB_ENKF:-$($NCLEN atminc_ensmean lon)} # get LONB - LATB_ENKF=${LATB_ENKF:-$($NCLEN atminc_ensmean lat)} # get LATB - LEVS_ENKF=${LEVS_ENKF:-$($NCLEN atminc_ensmean lev)} # get LEVS - fi - JCAP_ENKF=${JCAP_ENKF:--9999} # there is no jcap in these files +if [ $DO_CALC_INCREMENT = "YES" ]; then + LONB_ENKF=${LONB_ENKF:-$($NCLEN atmanl_ensmean grid_xt)} # get LONB + LATB_ENKF=${LATB_ENKF:-$($NCLEN atmanl_ensmean grid_yt)} # get LATB + LEVS_ENKF=${LEVS_ENKF:-$($NCLEN atmanl_ensmean pfull)} # get LEVS else - LONB_ENKF=${LONB_ENKF:-$($NEMSIOGET atmanl_ensmean dimx | awk '{print $2}')} - LATB_ENKF=${LATB_ENKF:-$($NEMSIOGET atmanl_ensmean dimy | awk '{print $2}')} - LEVS_ENKF=${LEVS_ENKF:-$($NEMSIOGET atmanl_ensmean dimz | awk '{print $2}')} - JCAP_ENKF=${JCAP_ENKF:-$($NEMSIOGET atmanl_ensmean jcap | awk '{print $2}')} + LONB_ENKF=${LONB_ENKF:-$($NCLEN atminc_ensmean lon)} # get LONB + LATB_ENKF=${LATB_ENKF:-$($NCLEN atminc_ensmean lat)} # get LATB + LEVS_ENKF=${LEVS_ENKF:-$($NCLEN atminc_ensmean lev)} # get LEVS fi +JCAP_ENKF=${JCAP_ENKF:--9999} # there is no jcap in these files [ $JCAP_ENKF -eq -9999 -a $LATB_ENKF -ne -9999 ] && JCAP_ENKF=$((LATB_ENKF-2)) [ $LONB_ENKF -eq -9999 -o $LATB_ENKF -eq -9999 -o $LEVS_ENKF -eq -9999 -o $JCAP_ENKF -eq -9999 ] && exit -9999 diff --git a/scripts/exgdas_enkf_fcst.sh b/scripts/exgdas_enkf_fcst.sh index 5b00243012..d75678a552 100755 --- a/scripts/exgdas_enkf_fcst.sh +++ b/scripts/exgdas_enkf_fcst.sh @@ -185,7 +185,7 @@ for imem in $(seq $ENSBEG $ENSEND); do while [ $fhr -le $FHMAX ]; do FH3=$(printf %03i $fhr) if [ $(expr $fhr % 3) -eq 0 ]; then - $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/$memchar/${CDUMP}.t${cyc}z.sfcf${FH3}${GSUFFIX} + $DBNROOT/bin/dbn_alert MODEL GFS_ENKF $job $COMOUT/$memchar/atmos/${CDUMP}.t${cyc}z.sfcf${FH3}${GSUFFIX} fi fhr=$((fhr+FHOUT)) done diff --git a/scripts/exgdas_enkf_post.sh b/scripts/exgdas_enkf_post.sh index 970dbce6f5..64447da841 100755 --- a/scripts/exgdas_enkf_post.sh +++ b/scripts/exgdas_enkf_post.sh @@ -79,8 +79,8 @@ for imem in $(seq 1 $NMEM_ENKF); do memchar="mem"$(printf %03i $imem) for fhr in $(seq $FHMIN $FHOUT $FHMAX); do fhrchar=$(printf %03i $fhr) - $NLN $COMIN/$memchar/${PREFIX}sfcf$fhrchar${SUFFIX} sfcf${fhrchar}_$memchar - $NLN $COMIN/$memchar/${PREFIX}atmf$fhrchar${SUFFIX} atmf${fhrchar}_$memchar + $NLN $COMIN/$memchar/atmos/${PREFIX}sfcf$fhrchar${SUFFIX} sfcf${fhrchar}_$memchar + $NLN $COMIN/$memchar/atmos/${PREFIX}atmf$fhrchar${SUFFIX} atmf${fhrchar}_$memchar done done @@ -92,7 +92,7 @@ for fhr in $(seq $FHMIN $FHOUT $FHMAX); do if [ $SMOOTH_ENKF = "YES" ]; then for imem in $(seq 1 $NMEM_ENKF); do memchar="mem"$(printf %03i $imem) - $NLN $COMOUT/$memchar/${PREFIX}atmf${fhrchar}${ENKF_SUFFIX}${SUFFIX} atmf${fhrchar}${ENKF_SUFFIX}_$memchar + $NLN $COMOUT/$memchar/atmos/${PREFIX}atmf${fhrchar}${ENKF_SUFFIX}${SUFFIX} atmf${fhrchar}${ENKF_SUFFIX}_$memchar done fi [[ $ENKF_SPREAD = "YES" ]] && $NLN $COMOUT/${PREFIX}atmf${fhrchar}.ensspread${SUFFIX} atmf${fhrchar}.ensspread diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 044030c494..4029e040d4 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -145,10 +145,10 @@ if [ $DOIAU = "YES" ]; then cmem=$(printf %03i $imem) memchar="mem$cmem" - [[ $TILE_NUM -eq 1 ]] && mkdir -p $COMOUT_ENS/$memchar/RESTART + [[ $TILE_NUM -eq 1 ]] && mkdir -p $COMOUT_ENS/$memchar/atmos/RESTART - $NLN $COMIN_GES_ENS/$memchar/RESTART/$bPDY.${bcyc}0000.sfc_data.tile${n}.nc $DATA/fnbgsi.$cmem - $NLN $COMOUT_ENS/$memchar/RESTART/$bPDY.${bcyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.$cmem + $NLN $COMIN_GES_ENS/$memchar/atmos/RESTART/$bPDY.${bcyc}0000.sfc_data.tile${n}.nc $DATA/fnbgsi.$cmem + $NLN $COMOUT_ENS/$memchar/atmos/RESTART/$bPDY.${bcyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.$cmem $NLN $FIXfv3/$CASE/${CASE}_grid.tile${n}.nc $DATA/fngrid.$cmem $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile${n}.nc $DATA/fnorog.$cmem @@ -171,10 +171,10 @@ if [ $DOSFCANL_ENKF = "YES" ]; then cmem=$(printf %03i $imem) memchar="mem$cmem" - [[ $TILE_NUM -eq 1 ]] && mkdir -p $COMOUT_ENS/$memchar/RESTART + [[ $TILE_NUM -eq 1 ]] && mkdir -p $COMOUT_ENS/$memchar/atmos/RESTART - $NLN $COMIN_GES_ENS/$memchar/RESTART/$PDY.${cyc}0000.sfc_data.tile${n}.nc $DATA/fnbgsi.$cmem - $NLN $COMOUT_ENS/$memchar/RESTART/$PDY.${cyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.$cmem + $NLN $COMIN_GES_ENS/$memchar/atmos/RESTART/$PDY.${cyc}0000.sfc_data.tile${n}.nc $DATA/fnbgsi.$cmem + $NLN $COMOUT_ENS/$memchar/atmos/RESTART/$PDY.${cyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.$cmem $NLN $FIXfv3/$CASE/${CASE}_grid.tile${n}.nc $DATA/fngrid.$cmem $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile${n}.nc $DATA/fnorog.$cmem diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index 253a64443f..6b32226bba 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -161,7 +161,7 @@ for ftype in \$flist; do if [ \$memchar = "ensmean" ]; then fname=$COMOUT_ANL_ENS/\${ftype}.ensmean else - fname=$COMOUT_ANL_ENS/\$memchar/\$ftype + fname=$COMOUT_ANL_ENS/\$memchar/atmos/\$ftype fi tar -xvf \$fname done @@ -195,28 +195,28 @@ for imem in $(seq 1 $NMEM_ENKF); do fi else for ftype in $flist; do - fname=$COMOUT_ANL_ENS/$memchar/$ftype + fname=$COMOUT_ANL_ENS/$memchar/atmos/$ftype tar -xvf $fname done fi fi - mkdir -p $COMOUT_ANL_ENS/$memchar + mkdir -p $COMOUT_ANL_ENS/$memchar/atmos for FHR in $nfhrs; do - $NLN $COMIN_GES_ENS/$memchar/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}${GSUFFIX} sfg_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMIN_GES_ENS/$memchar/atmos/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}${GSUFFIX} sfg_${CDATE}_fhr0${FHR}_${memchar} if [ $cnvw_option = ".true." ]; then - $NLN $COMIN_GES_ENS/$memchar/${GPREFIX}sfcf00${FHR}${GSUFFIX} sfgsfc_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMIN_GES_ENS/$memchar/atmos/${GPREFIX}sfcf00${FHR}${GSUFFIX} sfgsfc_${CDATE}_fhr0${FHR}_${memchar} fi if [ $FHR -eq 6 ]; then if [ $DO_CALC_INCREMENT = "YES" ]; then - $NLN $COMOUT_ANL_ENS/$memchar/${APREFIX}atmanl${ASUFFIX} sanl_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMOUT_ANL_ENS/$memchar/atmos/${APREFIX}atmanl${ASUFFIX} sanl_${CDATE}_fhr0${FHR}_${memchar} else - $NLN $COMOUT_ANL_ENS/$memchar/${APREFIX}atminc${ASUFFIX} incr_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMOUT_ANL_ENS/$memchar/atmos/${APREFIX}atminc${ASUFFIX} incr_${CDATE}_fhr0${FHR}_${memchar} fi else if [ $DO_CALC_INCREMENT = "YES" ]; then - $NLN $COMOUT_ANL_ENS/$memchar/${APREFIX}atma00${FHR}${ASUFFIX} sanl_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMOUT_ANL_ENS/$memchar/atmos/${APREFIX}atma00${FHR}${ASUFFIX} sanl_${CDATE}_fhr0${FHR}_${memchar} else - $NLN $COMOUT_ANL_ENS/$memchar/${APREFIX}atmi00${FHR}${ASUFFIX} incr_${CDATE}_fhr0${FHR}_${memchar} + $NLN $COMOUT_ANL_ENS/$memchar/atmos/${APREFIX}atmi00${FHR}${ASUFFIX} incr_${CDATE}_fhr0${FHR}_${memchar} fi fi done diff --git a/scripts/exgdas_global_atmos_analysis_run.sh b/scripts/exgdas_global_atmos_analysis_run.sh index bcf1907378..45ccdf525b 100755 --- a/scripts/exgdas_global_atmos_analysis_run.sh +++ b/scripts/exgdas_global_atmos_analysis_run.sh @@ -90,16 +90,16 @@ if [ $DOHYBVAR = "YES" ]; then if [ $l4densvar = ".true." ]; then fhrs="03 04 05 06 07 08 09" fi - + for imem in $(seq 1 $NMEM_ENKF); do memchar="mem"$(printf %03i $imem) for fhr in $fhrs; do - $NLN ${COMIN_GES_ENS}/$memchar/RESTART $DATA/ens/$memchar + $NLN ${COMIN_GES_ENS}/$memchar/atmos/RESTART $DATA/ens/$memchar done done fi - + ################################################################################ # link fix files to $DATA # static B diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index 17a9c9984a..71c4e303bc 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -42,7 +42,6 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} export NCLEN=${NCLEN:-${HOMEgfs}/ush/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} @@ -82,7 +81,6 @@ export CHGRESINCEXEC=${CHGRESINCEXEC:-${HOMEgfs}/exec/interp_inc.x} CHGRESEXEC=${CHGRESEXEC:-${HOMEgfs}/exec/enkf_chgres_recenter.x} export NTHREADS_CHGRES=${NTHREADS_CHGRES:-24} CALCINCPY=${CALCINCPY:-${HOMEgfs}/ush/calcinc_gfs.py} -CALCANLPY=${CALCANLPY:-${HOMEgfs}/ush/calcanl_gfs.py} # OPS flags RUN=${RUN:-""} @@ -237,17 +235,10 @@ export INCREMENTS_TO_ZERO=${INCREMENTS_TO_ZERO:-"'NONE'"} USE_CORRELATED_OBERRS=${USE_CORRELATED_OBERRS:-"YES"} # Get header information from Guess files -if [ ${SUFFIX} = ".nc" ]; then - LONB=${LONB:-$(${NCLEN} ${ATMGES} grid_xt)} # get LONB - LATB=${LATB:-$(${NCLEN} ${ATMGES} grid_yt)} # get LATB - LEVS=${LEVS:-$(${NCLEN} ${ATMGES} pfull)} # get LEVS - JCAP=${JCAP:--9999} # there is no jcap in these files -else - LONB=${LONB:-$(${NEMSIOGET} ${ATMGES} dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB - LATB=${LATB:-$(${NEMSIOGET} ${ATMGES} dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB - LEVS=${LEVS:-$(${NEMSIOGET} ${ATMGES} dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS - JCAP=${JCAP:-$(${NEMSIOGET} ${ATMGES} jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP -fi +LONB=${LONB:-$(${NCLEN} ${ATMGES} grid_xt)} # get LONB +LATB=${LATB:-$(${NCLEN} ${ATMGES} grid_yt)} # get LATB +LEVS=${LEVS:-$(${NCLEN} ${ATMGES} pfull)} # get LEVS +JCAP=${JCAP:--9999} # there is no jcap in these files [ ${JCAP} -eq -9999 -a ${LATB} -ne -9999 ] && JCAP=$((LATB-2)) [ ${LONB} -eq -9999 -o ${LATB} -eq -9999 -o ${LEVS} -eq -9999 -o ${JCAP} -eq -9999 ] && exit -9999 @@ -260,11 +251,6 @@ if [ ${DOHYBVAR} = "YES" ]; then LATB_ENKF=${LATB_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} grid_yt)} # get LATB_ENFK LEVS_ENKF=${LEVS_ENKF:-$(${NCLEN} ${ATMGES_ENSMEAN} pfull)} # get LATB_ENFK JCAP_ENKF=${JCAP_ENKF:--9999} # again, no jcap in the netcdf files - else - LONB_ENKF=${LONB_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimx | grep -i "dimx" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LONB_ENKF - LATB_ENKF=${LATB_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimy | grep -i "dimy" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LATB_ENKF - LEVS_ENKF=${LEVS_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} dimz | grep -i "dimz" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get LEVS_ENKF - JCAP_ENKF=${JCAP_ENKF:-$(${NEMSIOGET} ${ATMGES_ENSMEAN} jcap | grep -i "jcap" | awk -F"= " '{print $2}' | awk -F" " '{print $1}')} # 'get JCAP_ENKF fi NLON_ENKF=${NLON_ENKF:-${LONB_ENKF}} NLAT_ENKF=${NLAT_ENKF:-$((${LATB_ENKF}+2))} @@ -295,17 +281,6 @@ NLAT_A=${NLAT_A:-$((${LATA}+2))} DELTIM=${DELTIM:-$((3600/(${JCAP_A}/20)))} -# logic for netCDF I/O -if [ ${SUFFIX} = ".nc" ]; then - # GSI namelist options to use netCDF background - use_gfs_nemsio=".false." - use_gfs_ncio=".true." -else - # GSI namelist options to use NEMSIO background - use_gfs_nemsio=".true." - use_gfs_ncio=".false." -fi - # determine if writing or calculating increment if [ ${DO_CALC_INCREMENT} = "YES" ]; then write_fv3_increment=".false." @@ -563,9 +538,9 @@ if [ ${DOHYBVAR} = "YES" ]; then for imem in $(seq 1 ${NMEM_ENKF}); do memchar="mem"$(printf %03i ${imem}) for fhr in ${fhrs}; do - ${NLN} ${COMIN_GES_ENS}/${memchar}/${GPREFIX}atmf0${fhr}${ENKF_SUFFIX}${GSUFFIX} ./ensemble_data/sigf${fhr}_ens_${memchar} + ${NLN} ${COMIN_GES_ENS}/${memchar}/atmos/${GPREFIX}atmf0${fhr}${ENKF_SUFFIX}${GSUFFIX} ./ensemble_data/sigf${fhr}_ens_${memchar} if [ ${cnvw_option} = ".true." ]; then - ${NLN} ${COMIN_GES_ENS}/${memchar}/${GPREFIX}sfcf0${fhr}${GSUFFIX} ./ensemble_data/sfcf${fhr}_ens_${memchar} + ${NLN} ${COMIN_GES_ENS}/${memchar}/atmos/${GPREFIX}sfcf0${fhr}${GSUFFIX} ./ensemble_data/sfcf${fhr}_ens_${memchar} fi done done @@ -729,7 +704,7 @@ cat > gsiparm.anl << EOF tzr_qc=${TZR_QC}, oneobtest=.false.,retrieval=.false.,l_foto=.false., use_pbl=.false.,use_compress=.true.,nsig_ext=12,gpstop=50.,commgpstop=45.,commgpserrinf=1.0, - use_gfs_nemsio=${use_gfs_nemsio},use_gfs_ncio=${use_gfs_ncio},sfcnst_comb=.true., + use_gfs_nemsio=.false.,use_gfs_ncio=.true.,sfcnst_comb=.true., use_readin_anl_sfcmask=${USE_READIN_ANL_SFCMASK}, lrun_subdirs=${lrun_subdirs}, crtm_coeffs_path='./crtm_coeffs/', diff --git a/scripts/exglobal_atmos_sfcanl.sh b/scripts/exglobal_atmos_sfcanl.sh index 34eb863614..337677d805 100755 --- a/scripts/exglobal_atmos_sfcanl.sh +++ b/scripts/exglobal_atmos_sfcanl.sh @@ -42,7 +42,6 @@ export NCP=${NCP:-"/bin/cp"} export NMV=${NMV:-"/bin/mv"} export NLN=${NLN:-"/bin/ln -sf"} export CHGRP_CMD=${CHGRP_CMD:-"chgrp ${group_name:-rstprod}"} -export NEMSIOGET=${NEMSIOGET:-${NWPROD}/exec/nemsio_get} export NCLEN=${NCLEN:-$HOMEgfs/ush/getncdimlen} COMPRESS=${COMPRESS:-gzip} UNCOMPRESS=${UNCOMPRESS:-gunzip} diff --git a/ush/calcinc_gfs.py b/ush/calcinc_gfs.py index b3562d3880..6ed1e50422 100755 --- a/ush/calcinc_gfs.py +++ b/ush/calcinc_gfs.py @@ -14,7 +14,7 @@ # main function -def calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, IAUHrs, +def calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, IAUHrs, NThreads, IMP_Physics, Inc2Zero, RunDir, Exec, ExecCMD): # run the calc_increment_ens executable @@ -72,22 +72,16 @@ def calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, IAUHrs, Write4Danl = gsi_utils.isTrue(os.getenv('lwrite4danl', 'NO')) ComOut = os.getenv('COMOUT', './') APrefix = os.getenv('APREFIX', '') - ASuffix = os.getenv('ASUFFIX', '') NThreads = os.getenv('NTHREADS_CALCINC', 1) IMP_Physics = os.getenv('imp_physics', 11) RunDir = os.getenv('DATA', './') ExecNC = os.getenv('CALCINCNCEXEC', './calc_increment_ens_ncio.x') - ExecNEMS = os.getenv('CALCINCEXEC', './calc_increment_ens.x') Inc2Zero = os.getenv('INCREMENTS_TO_ZERO', '"NONE"') ExecCMD = os.getenv('APRUN_CALCINC', '') IAUHrs = list(map(int, os.getenv('IAUFHRS', '6').split(','))) - # determine if the analysis is in netCDF or NEMSIO - if ASuffix == ".nc": - Exec = ExecNC - else: - Exec = ExecNEMS + Exec = ExecNC print(locals()) - calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, IAUHrs, + calcinc_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, IAUHrs, NThreads, IMP_Physics, Inc2Zero, RunDir, Exec, ExecCMD) diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index ed2997cf0f..f3ed57292e 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -241,13 +241,13 @@ FV3_GFS_predet(){ rprefix=enkf$rCDUMP memchar=mem$(printf %03i $MEMBER) fi - memdir=$ROTDIR/${prefix}.$PDY/$cyc/atmos/$memchar + memdir=$ROTDIR/${prefix}.$PDY/$cyc/$memchar/atmos if [ ! -d $memdir ]; then mkdir -p $memdir; fi GDATE=$($NDATE -$assim_freq $CDATE) gPDY=$(echo $GDATE | cut -c1-8) gcyc=$(echo $GDATE | cut -c9-10) - gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/atmos/$memchar + gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/$memchar/atmos if [[ "$DOIAU" = "YES" ]]; then sCDATE=$($NDATE -3 $CDATE) diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 245a402692..b3f5e4f819 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -425,7 +425,7 @@ if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then ##NTARS2=$((NTARS/2)) # number of earc groups to include analysis/increments NTARS2=$NTARS - dirpath="enkf${CDUMP}.${PDY}/${cyc}/atmos/" + dirpath="enkf${CDUMP}.${PDY}/${cyc}/" dirname="./${dirpath}" head="${CDUMP}.t${cyc}z." @@ -504,7 +504,7 @@ if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then while [ $m -le $NMEM_EARCGRP ]; do nm=$(((n-1)*NMEM_EARCGRP+m)) mem=$(printf %03i $nm) - dirpath="enkf${CDUMP}.${PDY}/${cyc}/atmos/mem${mem}/" + dirpath="enkf${CDUMP}.${PDY}/${cyc}/mem${mem}/atmos/" dirname="./${dirpath}" head="${CDUMP}.t${cyc}z." diff --git a/workflow/setup_expt.py b/workflow/setup_expt.py index 3a0f8e50dd..df2f47703e 100755 --- a/workflow/setup_expt.py +++ b/workflow/setup_expt.py @@ -66,7 +66,7 @@ def fill_COMROT_cycled(host, inputs): # Link atmospheric files (ocean, ice, coming TBD ...) for ii in range(1, inputs.nens + 1): - memdir = f'atmos/mem{ii:03d}' + memdir = f'mem{ii:03d}/atmos' dst_dir = os.path.join(comrot, enkfdir, memdir, 'INPUT') src_dir = os.path.join(inputs.icsdir, enkfdir, memdir, 'INPUT') makedirs_if_missing(dst_dir)