From cca59439f1c2f5b692a67f9d874ddfbf3d500f92 Mon Sep 17 00:00:00 2001 From: Michael Lueken Date: Fri, 29 Apr 2022 11:00:52 +0000 Subject: [PATCH] GitHub Issue NOAA-EMC/GSI#368. WCOSS2 port. --- jobs/JGDAS_ATMOS_ANALYSIS_DIAG | 19 +++++-------- jobs/JGDAS_ATMOS_CHGRES_FORENKF | 19 +++++-------- jobs/JGDAS_ENKF_DIAG | 29 ++++++++------------ jobs/JGDAS_ENKF_ECEN | 19 +++++-------- jobs/JGDAS_ENKF_FCST | 13 +++------ jobs/JGDAS_ENKF_POST | 11 +++----- jobs/JGDAS_ENKF_SELECT_OBS | 29 ++++++++------------ jobs/JGDAS_ENKF_SFC | 20 ++++++-------- jobs/JGDAS_ENKF_UPDATE | 11 +++----- jobs/JGLOBAL_ATMOS_ANALYSIS | 36 ++++++++++++------------- jobs/JGLOBAL_ATMOS_ANALYSIS_CALC | 19 +++++-------- scripts/exgdas_atmos_chgres_forenkf.sh | 2 +- scripts/exgdas_enkf_ecen.sh | 2 +- scripts/exgdas_enkf_fcst.sh | 2 +- scripts/exgdas_enkf_post.sh | 2 +- scripts/exgdas_enkf_select_obs.sh | 5 ++-- scripts/exgdas_enkf_sfc.sh | 12 ++++----- scripts/exgdas_enkf_update.sh | 2 +- scripts/exglobal_atmos_analysis.sh | 18 ++++++------- scripts/exglobal_atmos_analysis_calc.sh | 2 +- scripts/exglobal_diag.sh | 2 +- ush/calcanl_gfs.py | 19 +++++++++++++ 22 files changed, 129 insertions(+), 164 deletions(-) diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 59d33e1d4b..5d8b0b6912 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -59,9 +59,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -84,12 +81,12 @@ 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_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} else export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi mkdir -m 775 -p $COMOUT # COMIN_GES and COMIN_GES_ENS are used in script @@ -125,8 +122,7 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -147,8 +143,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index 78a1d384bd..e4757277f7 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -59,9 +59,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -85,13 +82,13 @@ 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:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$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} else export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export COMOUT_ENS="$ROTDIR/enkfgdas.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi mkdir -m 775 -p $COMOUT # COMIN_GES and COMIN_GES_ENS are used in script @@ -101,8 +98,7 @@ export COMIN_GES_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -123,8 +119,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 612e5a633a..f6423b5fd9 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -82,11 +79,11 @@ export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$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} else - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script @@ -105,15 +102,13 @@ fi # Link observational data -export PREPQC="$COMIN_ANL/${OPREFIX}prepbufr" +export PREPQC="$COMIN_OBS/${OPREFIX}prepbufr" if [ ! -f $PREPQC ]; then - echo "WARNING: PREPBUFR FILE $PREPQC MISSING" - msg="WARNING : Global PREPBUFR file is missing" - postmsg "$jlogfile" "$msg" + echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" fi -export PREPQCPF="$COMIN_ANL/${OPREFIX}prepbufr.acft_profiles" +export PREPQCPF="$COMIN_OBS/${OPREFIX}prepbufr.acft_profiles" export TCVITL="$COMIN_ANL/${OPREFIX}syndata.tcvitals.tm00" -[[ $DONST = "YES" ]] && export NSSTBF="$COMIN_ANL/${OPREFIX}nsstbufr" +[[ $DONST = "YES" ]] && export NSSTBF="$COMIN_OBS/${OPREFIX}nsstbufr" # Guess Bias correction coefficients related to control export GBIAS=${COMIN_GES_CTL}/${GPREFIX}abias @@ -153,8 +148,7 @@ done ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -175,8 +169,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index c185ed7c3b..1df650ce76 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -90,11 +87,11 @@ export GSUFFIX=${GSUFFIX:-$SUFFIX} export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$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} else - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script @@ -107,8 +104,7 @@ export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc/$COMPONENT" ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -129,8 +125,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 60da5e7063..88d61c0870 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -80,15 +77,14 @@ export FHMAX=$FHMAX_ENKF # Get ENSBEG/ENSEND from ENSGRP and NMEM_EFCSGRP -export ENSEND=$((NMEM_EFCSGRP * ENSGRP)) +export ENSEND=$((NMEM_EFCSGRP * 10#${ENSGRP})) export ENSBEG=$((ENSEND - NMEM_EFCSGRP + 1)) ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -131,8 +127,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index 0aaac99afe..7309305c0f 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -81,8 +78,7 @@ export LEVS=$((LEVS-1)) ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -103,8 +99,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 4dc7948223..fc455ee8e4 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -82,11 +79,11 @@ export GSUFFIX="${GSUFFIX:-".ensmean${SUFFIX}"}" export ASUFFIX="${ASUFFIX:-"${SUFFIX}"}" if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$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} else - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi # COMIN_GES, COMIN_ANL COMIN_GES_ENS, and COMOUT are used in script @@ -108,15 +105,13 @@ status=$? [[ $status -ne 0 ]] && exit $status # Link observational data -export PREPQC="$COMIN_ANL/${OPREFIX}prepbufr" +export PREPQC="$COMIN_OBS/${OPREFIX}prepbufr" if [ ! -f $PREPQC ]; then - echo "WARNING: PREPBUFR FILE $PREPQC MISSING" - msg="WARNING : Global PREPBUFR file is missing" - postmsg "$jlogfile" "$msg" + echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" fi -export PREPQCPF="$COMIN_ANL/${OPREFIX}prepbufr.acft_profiles" +export PREPQCPF="$COMIN_OBS/${OPREFIX}prepbufr.acft_profiles" export TCVITL="$COMIN_ANL/${OPREFIX}syndata.tcvitals.tm00" -[[ $DONST = "YES" ]] && export NSSTBF="$COMIN_ANL/${OPREFIX}nsstbufr" +[[ $DONST = "YES" ]] && export NSSTBF="$COMIN_OBS/${OPREFIX}nsstbufr" # Guess Bias correction coefficients related to control export GBIAS=${COMIN_GES_CTL}/${GPREFIX}abias @@ -155,8 +150,7 @@ done ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -185,8 +179,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index a143b829dc..043e8ecde4 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -90,15 +87,16 @@ export GSUFFIX=${GSUFFIX:-$SUFFIX} export ASUFFIX=${ASUFFIX:-$SUFFIX} if [ $RUN_ENVIR = "nco" -o ${ROTDIR_DUMP:-NO} = "YES" ]; then - export COMIN_OBS=${COMIN_OBS:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} - export COMIN_GES_OBS=${COMIN_GES_OBS:-$ROTDIR/$GDUMP.$gPDY/$gcyc/$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} else - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi # COMIN, COMIN_ENS and COMIN_GES_ENS are used in script export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMIN_GES="$ROTDIR/$CDUMP.$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$CDUMP.$gPDY/$gcyc/$COMPONENT" @@ -107,8 +105,7 @@ export COMIN_GES_ENS="$ROTDIR/enkf$CDUMP.$gPDY/$gcyc/$COMPONENT" ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -129,8 +126,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 56c4c6027d..07bf37f7f8 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -58,9 +58,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gdas"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -85,8 +82,7 @@ export COMOUT_ANL_ENS="$ROTDIR/enkf$CDUMP.$PDY/$cyc/$COMPONENT" ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT ${ENKFUPDSH:-$SCRgfs/exgdas_enkf_update.sh} @@ -114,8 +110,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index 5644c75305..e81ab13c36 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -59,9 +59,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -84,12 +81,12 @@ 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_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} else export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi mkdir -m 775 -p $COMOUT # COMIN_GES and COMIN_GES_ENS are used in script @@ -125,15 +122,13 @@ fi # Link observational data -export PREPQC="${COMOUT}/${OPREFIX}prepbufr" +export PREPQC="${COMIN_OBS}/${OPREFIX}prepbufr" if [ ! -f $PREPQC ]; then - echo "WARNING: PREPBUFR FILE $PREPQC MISSING" - msg="WARNING : Global PREPBUFR file is missing" - postmsg "$jlogfile" "$msg" + echo "WARNING: Global PREPBUFR FILE $PREPQC MISSING" fi -export PREPQCPF="${COMOUT}/${OPREFIX}prepbufr.acft_profiles" +export PREPQCPF="${COMIN_OBS}/${OPREFIX}prepbufr.acft_profiles" export TCVITL="${COMOUT}/${OPREFIX}syndata.tcvitals.tm00" -[[ $DONST = "YES" ]] && export NSSTBF="${COMOUT}/${OPREFIX}nsstbufr" +[[ $DONST = "YES" ]] && export NSSTBF="${COMIN_OBS}/${OPREFIX}nsstbufr" # Update surface fields with global_cycle @@ -144,11 +139,17 @@ export DOGCYCLE=${DOGCYCLE:-"YES"} export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} +# Copy fix file for obsproc +if [ $RUN = "gfs" ]; then + mkdir -p $ROTDIR/fix + cp $FIXgsi/prepobs_errtable.global $ROTDIR/fix/ +fi + + ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -179,8 +180,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 7233684cc2..142a6fa746 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash set -x export RUN_ENVIR=${RUN_ENVIR:-"nco"} @@ -59,9 +59,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export DO_CALC_ANALYSIS=${DO_CALC_ANALYSIS:-"YES"} @@ -84,12 +81,12 @@ 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_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} else export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export COMIN_OBS="$DMPDIR/$CDATE/$CDUMP" - export COMIN_GES_OBS="$DMPDIR/$GDATE/$GDUMP" + export COMIN_OBS="$DMPDIR/$CDUMP.$PDY/$cyc" + export COMIN_GES_OBS="$DMPDIR/$GDUMP.$gPDY/$gcyc" fi mkdir -m 775 -p $COMOUT # COMIN_GES and COMIN_GES_ENS are used in script @@ -136,8 +133,7 @@ export DOGAUSFCANL=${DOGAUSFCANL:-"YES"} ############################################################### # Run relevant script env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" +echo "HAS BEGUN on $(hostname)" $LOGSCRIPT @@ -158,8 +154,7 @@ if [ -e "$pgmout" ] ; then fi -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" +echo "ENDED NORMALLY." ########################################## diff --git a/scripts/exgdas_atmos_chgres_forenkf.sh b/scripts/exgdas_atmos_chgres_forenkf.sh index 416d58a2cc..805b8be6d0 100755 --- a/scripts/exgdas_atmos_chgres_forenkf.sh +++ b/scripts/exgdas_atmos_chgres_forenkf.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exgdas_enkf_ecen.sh b/scripts/exgdas_enkf_ecen.sh index d15d568ebc..f3671968ff 100755 --- a/scripts/exgdas_enkf_ecen.sh +++ b/scripts/exgdas_enkf_ecen.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exgdas_enkf_fcst.sh b/scripts/exgdas_enkf_fcst.sh index 2730055f19..3263115057 100755 --- a/scripts/exgdas_enkf_fcst.sh +++ b/scripts/exgdas_enkf_fcst.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exgdas_enkf_post.sh b/scripts/exgdas_enkf_post.sh index 2987e51d62..ebf877b3cc 100755 --- a/scripts/exgdas_enkf_post.sh +++ b/scripts/exgdas_enkf_post.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exgdas_enkf_select_obs.sh b/scripts/exgdas_enkf_select_obs.sh index 9be02ff768..4a0f0d3ee3 100755 --- a/scripts/exgdas_enkf_select_obs.sh +++ b/scripts/exgdas_enkf_select_obs.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . @@ -71,8 +71,7 @@ cd $DATA || exit 8 ################################################################################ # ObsInput file from ensemble mean -rm -f obs_input* -rm -f obsinput.tar +rm -f obs*input* $NLN $SELECT_OBS obsinput.tar # Whether to save or skip obs diff --git a/scripts/exgdas_enkf_sfc.sh b/scripts/exgdas_enkf_sfc.sh index 2be78dc060..407a6097a7 100755 --- a/scripts/exgdas_enkf_sfc.sh +++ b/scripts/exgdas_enkf_sfc.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . @@ -105,11 +105,11 @@ LONB_CASE=$((res*4)) # Global cycle requires these files export FNTSFA=${FNTSFA:-' '} -export FNACNA=${FNACNA:-$COMIN_OBS/${OPREFIX}seaice.5min.blend.grb} -export FNSNOA=${FNSNOA:-$COMIN_OBS/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} -[[ ! -f $FNSNOA ]] && export FNSNOA="$COMIN_OBS/${OPREFIX}snogrb_t1534.3072.1536" -FNSNOG=${FNSNOG:-$COMIN_GES_OBS/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} -[[ ! -f $FNSNOG ]] && FNSNOG="$COMIN_GES_OBS/${GPREFIX}snogrb_t1534.3072.1536" +export FNACNA=${FNACNA:-$COMIN/${OPREFIX}seaice.5min.blend.grb} +export FNSNOA=${FNSNOA:-$COMIN/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +[[ ! -f $FNSNOA ]] && export FNSNOA="$COMIN/${OPREFIX}snogrb_t1534.3072.1536" +FNSNOG=${FNSNOG:-$COMIN_GES/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} +[[ ! -f $FNSNOG ]] && FNSNOG="$COMIN_GES/${GPREFIX}snogrb_t1534.3072.1536" # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [ ${RUN_GETGES:-"NO"} = "YES" ]; then diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index 2a35234217..248912ae46 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exglobal_atmos_analysis.sh b/scripts/exglobal_atmos_analysis.sh index 77400c4e1e..9cdde41ce0 100755 --- a/scripts/exglobal_atmos_analysis.sh +++ b/scripts/exglobal_atmos_analysis.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . @@ -462,8 +462,8 @@ fi # CRTM Spectral and Transmittance coefficients mkdir -p crtm_coeffs for file in $(awk '{if($1!~"!"){print $1}}' satinfo | sort | uniq); do - $NLN $RTMFIX/${file}.SpcCoeff.bin ./crtm_coeffs/ - $NLN $RTMFIX/${file}.TauCoeff.bin ./crtm_coeffs/ + $NLN $RTMFIX/${file}.SpcCoeff.bin ./crtm_coeffs/${file}.SpcCoeff.bin + $NLN $RTMFIX/${file}.TauCoeff.bin ./crtm_coeffs/${file}.TauCoeff.bin done $NLN $RTMFIX/amsua_metop-a_v2.SpcCoeff.bin ./crtm_coeffs/amsua_metop-a_v2.SpcCoeff.bin @@ -627,7 +627,7 @@ if [ $GENDIAG = "YES" ] ; then rm -rf $DIAG_DIR fi npe_m1="$(($npe_gsi-1))" - for pe in {0..$npe_m1}; do + for pe in $(seq 0 $npe_m1); do pedir="dir."$(printf %04i $pe) mkdir -p $DIAG_DIR/$pedir $NLN $DIAG_DIR/$pedir $pedir @@ -998,11 +998,11 @@ if [ $DOGCYCLE = "YES" ]; then # Global cycle requires these files export FNTSFA=${FNTSFA:-$COMIN_OBS/${OPREFIX}rtgssthr.grb} - export FNACNA=${FNACNA:-$COMIN_OBS/${OPREFIX}seaice.5min.blend.grb} - export FNSNOA=${FNSNOA:-$COMIN_OBS/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} - [[ ! -f $FNSNOA ]] && export FNSNOA="$COMIN_OBS/${OPREFIX}snogrb_t1534.3072.1536" - FNSNOG=${FNSNOG:-$COMIN_GES_OBS/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} - [[ ! -f $FNSNOG ]] && FNSNOG="$COMIN_GES_OBS/${GPREFIX}snogrb_t1534.3072.1536" + export FNACNA=${FNACNA:-$COMIN/${OPREFIX}seaice.5min.blend.grb} + export FNSNOA=${FNSNOA:-$COMIN/${OPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} + [[ ! -f $FNSNOA ]] && export FNSNOA="$COMIN/${OPREFIX}snogrb_t1534.3072.1536" + FNSNOG=${FNSNOG:-$COMIN_GES/${GPREFIX}snogrb_t${JCAP_CASE}.${LONB_CASE}.${LATB_CASE}} + [[ ! -f $FNSNOG ]] && FNSNOG="$COMIN_GES/${GPREFIX}snogrb_t1534.3072.1536" # Set CYCLVARS by checking grib date of current snogrb vs that of prev cycle if [ $RUN_GETGES = "YES" ]; then diff --git a/scripts/exglobal_atmos_analysis_calc.sh b/scripts/exglobal_atmos_analysis_calc.sh index 13e53874fa..5160815b44 100755 --- a/scripts/exglobal_atmos_analysis_calc.sh +++ b/scripts/exglobal_atmos_analysis_calc.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/scripts/exglobal_diag.sh b/scripts/exglobal_diag.sh index 748f15c74f..c36d5328e5 100755 --- a/scripts/exglobal_diag.sh +++ b/scripts/exglobal_diag.sh @@ -1,4 +1,4 @@ -#!/bin/ksh +#!/bin/bash ################################################################################ #### UNIX Script Documentation Block # . . diff --git a/ush/calcanl_gfs.py b/ush/calcanl_gfs.py index bf328aaa06..b1bf77a9f6 100755 --- a/ush/calcanl_gfs.py +++ b/ush/calcanl_gfs.py @@ -163,6 +163,25 @@ def calcanl_gfs(DoIAU, l4DEnsVar, Write4Danl, ComOut, APrefix, ASuffix, ExecCMDMPILevs_nohost = 'mpirun -np '+str(levs) ExecCMDMPI1_host = 'mpirun -np 1 --hostfile hosts' ExecCMDMPI10_host = 'mpirun -np 10 --hostfile hosts' + elif launcher == 'mpiexec': + hostfile = os.getenv('PBS_NODEFILE','') + with open(hostfile) as f: + hosts_tmp = f.readlines() + hosts_tmp = [x.strip() for x in hosts_tmp] + hosts = [] + [hosts.append(x) for x in hosts_tmp if x not in hosts] + nhosts = len(hosts) + ExecCMDMPI_host = 'mpiexec -l -n '+str(nFH) + tasks = int(os.getenv('ntasks',1)) + print('nhosts,tasks=', nhosts, tasks) + if levs > tasks: + ExecCMDMPILevs_host = 'mpiexec -l -n '+str(tasks) + ExecCMDMPILevs_nohost = 'mpiexec -l -n '+str(tasks) + else: + ExecCMDMPILevs_host = 'mpiexec -l -n '+str(levs) + ExecCMDMPILevs_nohost = 'mpiexec -l -n '+str(levs) + ExecCMDMPI1_host = 'mpiexec -l -n 1 --cpu-bind depth --depth '+str(NThreads) + ExecCMDMPI10_host = 'mpiexec -l -n 10 --cpu-bind depth --depth '+str(NThreads) elif launcher == 'srun': nodes = os.getenv('SLURM_JOB_NODELIST','') hosts_tmp = subprocess.check_output('scontrol show hostnames '+nodes, shell=True)