From bfea2594207a477ea00e3b7fef95c2d7befd492b Mon Sep 17 00:00:00 2001 From: "Henry R. Winterbottom" <49202169+HenryWinterbottom-NOAA@users.noreply.github.com> Date: Sun, 15 Oct 2023 23:27:47 -0600 Subject: [PATCH 1/2] Remove SENDCOM (#1929) This PR addresses issue #1501. All instances of `SENDCOM` gates have been removed. The workflow was inconsistent in its use of `SENDCOM` to gate movement of files to `COM` and have been removed based on NCO guidelines. Resolves #1501. --- jobs/JGDAS_ATMOS_GEMPAK | 3 +- jobs/JGDAS_ATMOS_GEMPAK_META_NCDC | 4 +- jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG | 2 +- jobs/JGFS_ATMOS_AWIPS_G2 | 4 +- jobs/JGFS_ATMOS_CYCLONE_GENESIS | 2 - jobs/JGFS_ATMOS_CYCLONE_TRACKER | 4 - jobs/JGFS_ATMOS_FBWIND | 4 +- jobs/JGFS_ATMOS_FSU_GENESIS | 2 - jobs/JGFS_ATMOS_GEMPAK | 2 +- jobs/JGFS_ATMOS_GEMPAK_META | 4 +- jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF | 4 +- jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC | 4 +- jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS | 4 +- jobs/JGFS_ATMOS_POSTSND | 1 - jobs/JGLOBAL_WAVE_GEMPAK | 1 - jobs/JGLOBAL_WAVE_INIT | 4 +- jobs/JGLOBAL_WAVE_PRDGEN_BULLS | 1 - jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED | 5 +- parm/config/gefs/config.base.emc.dyn | 1 - parm/config/gfs/config.base.emc.dyn | 1 - parm/config/gfs/config.post | 1 - parm/config/gfs/config.prep | 1 - parm/config/gfs/config.waveawipsbulls | 1 - parm/config/gfs/config.waveawipsgridded | 1 - parm/config/gfs/config.wavegempak | 1 - scripts/exgdas_atmos_nawips.sh | 28 +++-- scripts/exgdas_atmos_post.sh | 52 ++++----- scripts/exgfs_atmos_awips_20km_1p0deg.sh | 55 ++++----- scripts/exgfs_atmos_fbwind.sh | 6 +- scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh | 14 +-- scripts/exgfs_atmos_goes_nawips.sh | 16 ++- scripts/exgfs_atmos_grib2_special_npoess.sh | 49 ++++---- scripts/exgfs_atmos_grib_awips.sh | 24 ++-- scripts/exgfs_atmos_nawips.sh | 10 +- scripts/exgfs_atmos_post.sh | 108 ++++++++---------- scripts/exgfs_wave_nawips.sh | 8 +- scripts/exgfs_wave_prdgen_bulls.sh | 16 ++- scripts/exgfs_wave_prdgen_gridded.sh | 16 ++- ush/gfs_sndp.sh | 12 +- ush/syndat_qctropcy.sh | 31 ++--- ush/tropcy_relocate.sh | 32 +++--- ush/wave_grib2_sbs.sh | 4 +- ush/wave_grid_interp_sbs.sh | 17 ++- ush/wave_prnc_ice.sh | 3 +- ush/wave_tar.sh | 2 +- 45 files changed, 235 insertions(+), 330 deletions(-) diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index b76658d8d7..1535e07ae3 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -27,7 +27,6 @@ export GRIB=pgrb2f export EXT="" export DBN_ALERT_TYPE=GDAS_GEMPAK -export SENDCOM=${SENDCOM:-NO} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} @@ -47,7 +46,7 @@ for grid in 1p00 0p25; do prod_dir="COM_ATMOS_GEMPAK_${grid}" GRID=${grid} YMD=${PDY} HH=${cyc} generate_com -rx "COM_ATMOS_GEMPAK_${grid}:COM_ATMOS_GEMPAK_TMPL" - if [[ ${SENDCOM} == YES && ! -d "${!prod_dir}" ]] ; then + if [[ ! -d "${!prod_dir}" ]] ; then mkdir -m 775 -p "${!prod_dir}" fi done diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index beadb7ccf8..6948d29df6 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -61,9 +61,7 @@ export COMINecmwf=${COMINecmwf:-$(compath.py ${envir}/ecmwf/${ecmwf_ver})/ecmwf} export COMOUTukmet=${COMOUT} export COMOUTecmwf=${COMOUT} -if [ ${SENDCOM} = YES ] ; then - mkdir -m 775 -p ${COMOUT} ${COMOUTncdc} ${COMOUTukmet} ${COMOUTecmwf} -fi +mkdir -m 775 -p ${COMOUT} ${COMOUTncdc} ${COMOUTukmet} ${COMOUTecmwf} export pgmout=OUTPUT.$$ diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index b9228bc5af..516c7a403b 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -32,7 +32,7 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_WMO GRID="0p25" YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_GRIB_0p25:COM_ATMOS_GRIB_GRID_TMPL -if [[ ${SENDCOM} == "YES" && ! -d "${COM_ATMOS_WMO}" ]] ; then +if [[ ! -d "${COM_ATMOS_WMO}" ]] ; then mkdir -m 775 -p "${COM_ATMOS_WMO}" fi diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index 35dfcc8a54..5bd7749997 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -36,9 +36,7 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_WMO GRID="0p25" YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_GRIB_0p25:COM_ATMOS_GRIB_GRID_TMPL -if [[ ${SENDCOM} == "YES" && ! -d "${COM_ATMOS_WMO}" ]] ; then - mkdir -m 775 -p "${COM_ATMOS_WMO}" -fi +mkdir -m 775 -p "${COM_ATMOS_WMO}" export pgmout=OUTPUT.$$ diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS index 89a23d97be..d2d147125c 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -10,10 +10,8 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy" export cmodel=${RUN} #################################### -# SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls #################################### -export SENDCOM=YES export SENDDBN=${SENDDBN:-NO} export SENDECF=${SENDECF:-NO} diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 55a1a119fe..09ec630009 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -15,10 +15,8 @@ export CDUMP=${RUN/enkf} #################################### -# SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls #################################### -export SENDCOM=YES export SENDDBN=${SENDDBN:-NO} export SENDECF=${SENDECF:-NO} @@ -81,7 +79,6 @@ ${USHens_tracker}/extrkr_gfs.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} export err=$?; err_chk -#if [ "$SENDCOM" = 'YES' ]; then # cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ # sed s:AVNX:GFSO:g \ # > ${COMOUT}/gfso.t${cyc}z.cyclone.trackatcfunix @@ -89,7 +86,6 @@ export err=$?; err_chk # cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ # sed s:AVNX:AVNO:g \ # > ${COMOUT}/avn.t${cyc}z.cyclone.trackatcfunix -#fi ############################################## # Final processing diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index f4b94442e8..e04b06c0d6 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -35,9 +35,7 @@ export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ ${SENDCOM} = YES ] ; then - mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} -fi +mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} ######################################################## diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS index 40370ba529..c31037aa08 100755 --- a/jobs/JGFS_ATMOS_FSU_GENESIS +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -14,10 +14,8 @@ export CDUMP=${CDUMP:-${RUN:-"gfs"}} #################################### -# SENDCOM - Copy Files From TMPDIR to $COMOUT # SENDDBN - Issue DBNet Client Calls #################################### -export SENDCOM=YES export SENDDBN=${SENDDBN:-NO} export SENDECF=${SENDECF:-NO} diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 448115af18..ddf10342d2 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -46,7 +46,7 @@ for grid in 1p00 0p50 0p25 40km 35km_atl 35km_pac; do prod_dir="COM_ATMOS_GEMPAK_${grid}" GRID=${grid} YMD=${PDY} HH=${cyc} generate_com -rx "COM_ATMOS_GEMPAK_${grid}:COM_ATMOS_GEMPAK_TMPL" - if [[ ${SENDCOM} == YES && ! -d "${!prod_dir}" ]] ; then + if [[ ! -d "${!prod_dir}" ]] ; then mkdir -m 775 -p "${!prod_dir}" fi done diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index 0a9f5bdd90..b7786b1f49 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -62,9 +62,7 @@ export COMINnam=${COMINnam:-$(compath.py ${envir}/nam/${nam_ver})/nam} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ ${SENDCOM} = YES ] ; then - mkdir -m 775 -p ${COMOUT} -fi +mkdir -m 775 -p ${COMOUT} ######################################################## diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index cc9d445965..58b24c5e49 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -59,9 +59,7 @@ export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ ${SENDCOM} = YES ] ; then - mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} -fi +mkdir -m 775 -p ${COMOUT} ${COMOUTwmo} export pgmout=OUTPUT.$$ diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index a1c2518a44..183465e82d 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -39,9 +39,7 @@ export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${NET}.${PDY})/${cyc}/ export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} -if [ ${SENDCOM} = YES ] ; then - mkdir -m 775 -p ${COMOUT} -fi +mkdir -m 775 -p ${COMOUT} # TODO - Assess what is going on with overwriting $DATA here (#1224) diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index e65b3a4dc1..1cb29be58b 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -36,9 +36,7 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_GOES GRID="0p50" YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_GRIB_0p50:COM_ATMOS_GRIB_GRID_TMPL -if [[ ${SENDCOM} == "YES" ]]; then - mkdir -m 775 -p "${COM_ATMOS_GOES}" -fi +mkdir -m 775 -p "${COM_ATMOS_GOES}" # TODO - This should be in the ex-script (#1226) diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 2318d70e31..721dd27628 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -15,7 +15,6 @@ export CDUMP=${RUN/enkf} ######################################## export model=${model:-gfs} -export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index b7c97ce571..89c389fa11 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -10,7 +10,6 @@ export errchk=${errchk:-err_chk} # Set COM Paths ################################### export DBN_ALERT_TYPE=GFS_WAVE_GEMPAK -export SENDCOM=${SENDCOM:-YES} export SENDDBN=${SENDDBN:-YES} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index 49fccad66f..59df553dc1 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -18,9 +18,7 @@ export EXECwave=${EXECwave:-${HOMEgfs}/exec} # Set COM Paths YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_PREP -if [ ${SENDCOM} = YES ]; then - mkdir -m 775 -p ${COM_WAVE_PREP} -fi +mkdir -m 775 -p ${COM_WAVE_PREP} # Set mpi serial command export wavempexec=${wavempexec:-"mpirun -n"} diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 794258e756..3a2947af56 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -9,7 +9,6 @@ export errchk=${errchk:-err_chk} ################################### # Set COM Paths ################################### -export SENDCOM=${SENDCOM:-YES} export SENDDBN_NTC=${SENDDBN_NTC:-YES} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index a2134461da..4b32c709bf 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -9,7 +9,6 @@ export errchk=${errchk:-err_chk} ################################### # Set COM Paths ################################### -export SENDCOM=${SENDCOM:-YES} export SENDDBN_NTC=${SENDDBN_NTC:-YES} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} @@ -18,9 +17,7 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_WAVE_GRID COM_WAVE_WMO if [[ ! -d ${COM_WAVE_WMO} ]]; then mkdir -p "${COM_WAVE_WMO}"; fi -if [ ${SENDCOM} = YES ]; then - mkdir -p "${COM_WAVE_WMO}" -fi +mkdir -p "${COM_WAVE_WMO}" ################################### # Execute the Script diff --git a/parm/config/gefs/config.base.emc.dyn b/parm/config/gefs/config.base.emc.dyn index 7140ef477b..5f2d826b65 100644 --- a/parm/config/gefs/config.base.emc.dyn +++ b/parm/config/gefs/config.base.emc.dyn @@ -122,7 +122,6 @@ export REDOUT="1>" export REDERR="2>" export SENDECF=${SENDECF:-"NO"} -export SENDCOM=${SENDCOM:-"YES"} export SENDSDM=${SENDSDM:-"NO"} export SENDDBN_NTC=${SENDDBN_NTC:-"NO"} export SENDDBN=${SENDDBN:-"NO"} diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index db4cd22e7f..06db406ddf 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -130,7 +130,6 @@ export REDOUT="1>" export REDERR="2>" export SENDECF=${SENDECF:-"NO"} -export SENDCOM=${SENDCOM:-"YES"} export SENDSDM=${SENDSDM:-"NO"} export SENDDBN_NTC=${SENDDBN_NTC:-"NO"} export SENDDBN=${SENDDBN:-"NO"} diff --git a/parm/config/gfs/config.post b/parm/config/gfs/config.post index 71b0fe79d2..652869e2c9 100644 --- a/parm/config/gfs/config.post +++ b/parm/config/gfs/config.post @@ -31,6 +31,5 @@ export downset=2 export npe_dwn=24 export GRIBVERSION='grib2' -export SENDCOM="YES" echo "END: config.post" diff --git a/parm/config/gfs/config.prep b/parm/config/gfs/config.prep index 332ed87568..d5ac1925f7 100644 --- a/parm/config/gfs/config.prep +++ b/parm/config/gfs/config.prep @@ -14,7 +14,6 @@ export cdate10=${PDY}${cyc} # Relocation and syndata QC export PROCESS_TROPCY=${PROCESS_TROPCY:-NO} export TROPCYQCRELOSH="$HOMEgfs/scripts/exglobal_atmos_tropcy_qc_reloc.sh" -export SENDCOM=YES export COMINtcvital=${COMINtcvital:-${DMPDIR}/${CDUMP}.${PDY}/${cyc}/atmos} export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} diff --git a/parm/config/gfs/config.waveawipsbulls b/parm/config/gfs/config.waveawipsbulls index fd21869355..65a8d5076b 100644 --- a/parm/config/gfs/config.waveawipsbulls +++ b/parm/config/gfs/config.waveawipsbulls @@ -9,6 +9,5 @@ echo "BEGIN: config.waveawipsbulls" . $EXPDIR/config.resources waveawipsbulls export DBNROOT=/dev/null -export SENDCOM="YES" echo "END: config.waveawipsbulls" diff --git a/parm/config/gfs/config.waveawipsgridded b/parm/config/gfs/config.waveawipsgridded index 6896ec8bd2..bd7c7c11e4 100644 --- a/parm/config/gfs/config.waveawipsgridded +++ b/parm/config/gfs/config.waveawipsgridded @@ -9,6 +9,5 @@ echo "BEGIN: config.waveawipsgridded" . $EXPDIR/config.resources waveawipsgridded export DBNROOT=/dev/null -export SENDCOM="YES" echo "END: config.waveawipsgridded" diff --git a/parm/config/gfs/config.wavegempak b/parm/config/gfs/config.wavegempak index da76c364ce..bcbec91f07 100644 --- a/parm/config/gfs/config.wavegempak +++ b/parm/config/gfs/config.wavegempak @@ -8,6 +8,5 @@ echo "BEGIN: config.wavegempak" # Get task specific resources . $EXPDIR/config.resources wavegempak -export SENDCOM="YES" echo "END: config.wavegempak" diff --git a/scripts/exgdas_atmos_nawips.sh b/scripts/exgdas_atmos_nawips.sh index 725cb0223f..94a23f2a85 100755 --- a/scripts/exgdas_atmos_nawips.sh +++ b/scripts/exgdas_atmos_nawips.sh @@ -135,21 +135,19 @@ while [ $fhcnt -le $fend ] ; do EOF export err=$?;err_chk - if [ $SENDCOM = "YES" ] ; then - cp "${GEMGRD}" "${destination}/.${GEMGRD}" - export err=$? - if [[ ${err} -ne 0 ]] ; then - echo " File ${GEMGRD} does not exist." - exit "${err}" - fi - - mv "${destination}/.${GEMGRD}" "${destination}/${GEMGRD}" - if [[ ${SENDDBN} = "YES" ]] ; then - "${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" \ - "${destination}/${GEMGRD}" - else - echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" - fi + cp "${GEMGRD}" "${destination}/.${GEMGRD}" + export err=$? + if [[ ${err} -ne 0 ]] ; then + echo " File ${GEMGRD} does not exist." + exit "${err}" + fi + + mv "${destination}/.${GEMGRD}" "${destination}/${GEMGRD}" + if [[ ${SENDDBN} = "YES" ]] ; then + "${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" \ + "${destination}/${GEMGRD}" + else + echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" fi if [ $fhcnt -ge 240 ] ; then diff --git a/scripts/exgdas_atmos_post.sh b/scripts/exgdas_atmos_post.sh index 305d97a002..4b23200628 100755 --- a/scripts/exgdas_atmos_post.sh +++ b/scripts/exgdas_atmos_post.sh @@ -124,25 +124,23 @@ if [[ "${stime}" = "anl" ]]; then export err=$?; err_chk fi - if [[ "${SENDCOM}" = 'YES' ]]; then - if [[ "${GRIBVERSION}" = 'grib2' ]]; then + if [[ "${GRIBVERSION}" = 'grib2' ]]; then MASTERANL=${PREFIX}master.grb2anl ##########XXW Accord to Boi, fortran index should use *if${fhr}, wgrib index use .idx #MASTERANLIDX=${RUN}.${cycle}.master.grb2${fhr3}.idx MASTERANLIDX=${PREFIX}master.grb2ianl cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERANL}" ${GRB2INDEX} "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERANLIDX}" - fi + fi - if [[ "${SENDDBN}" = 'YES' ]]; then + if [[ "${SENDDBN}" = 'YES' ]]; then run="$(echo "${RUN}" | tr '[:lower:]' '[:upper:]')" if [[ "${GRIBVERSION}" = 'grib2' ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL "${run}_MSC_sfcanl" "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}sfcanl.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "${run}_SA" "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}atmanl.nc" - "${DBNROOT}/bin/dbn_alert" MODEL "GDAS_PGA_GB2" "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl" - "${DBNROOT}/bin/dbn_alert" MODEL "GDAS_PGA_GB2_WIDX" "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl.idx" + "${DBNROOT}/bin/dbn_alert" MODEL "${run}_MSC_sfcanl" "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}sfcanl.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "${run}_SA" "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}atmanl.nc" + "${DBNROOT}/bin/dbn_alert" MODEL "GDAS_PGA_GB2" "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl" + "${DBNROOT}/bin/dbn_alert" MODEL "GDAS_PGA_GB2_WIDX" "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl.idx" fi - fi fi rm pgbfile.grib2 else @@ -281,46 +279,44 @@ else ## not_anl if_stimes fi - if [[ "${SENDCOM}" = 'YES' ]]; then - if [[ "${GRIBVERSION}" = 'grib2' ]]; then + if [[ "${GRIBVERSION}" = 'grib2' ]]; then if [[ "${INLINE_POST}" = ".false." ]]; then - cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFHR}" + cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFHR}" fi ${GRB2INDEX} "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFHRIDX}" - fi + fi - # Model generated flux files will be in nemsio after FY17 upgrade - # use post to generate Grib2 flux files + # Model generated flux files will be in nemsio after FY17 upgrade + # use post to generate Grib2 flux files - if (( OUTTYP == 4 )) ; then + if (( OUTTYP == 4 )) ; then export NEMSINP=${COM_ATMOS_HISTORY}/${PREFIX}atmf${fhr}.nc export FLXINP=${COM_ATMOS_HISTORY}/${PREFIX}sfcf${fhr}.nc if (( d_fhr == 0 )); then - export PostFlatFile=${PARMpost}/postxconfig-NT-GFS-FLUX-F00.txt - export CTLFILE=${PARMpost}/postcntrl_gfs_flux_f00.xml + export PostFlatFile=${PARMpost}/postxconfig-NT-GFS-FLUX-F00.txt + export CTLFILE=${PARMpost}/postcntrl_gfs_flux_f00.xml else - export PostFlatFile=${PARMpost}/postxconfig-NT-GFS-FLUX.txt - export CTLFILE=${PARMpost}/postcntrl_gfs_flux.xml + export PostFlatFile=${PARMpost}/postxconfig-NT-GFS-FLUX.txt + export CTLFILE=${PARMpost}/postcntrl_gfs_flux.xml fi export PGBOUT=fluxfile export FILTER=0 FLUXFL=${PREFIX}sfluxgrbf${fhr}.grib2 FLUXFLIDX=${PREFIX}sfluxgrbf${fhr}.grib2.idx - + if [[ "${INLINE_POST}" = ".false." ]]; then - ${POSTGPSH} - export err=$?; err_chk - mv fluxfile "${COM_ATMOS_MASTER}/${FLUXFL}" + ${POSTGPSH} + export err=$?; err_chk + mv fluxfile "${COM_ATMOS_MASTER}/${FLUXFL}" fi ${WGRIB2} -s "${COM_ATMOS_MASTER}/${FLUXFL}" > "${COM_ATMOS_MASTER}/${FLUXFLIDX}" - fi - - if [[ "${SENDDBN}" = 'YES' ]] && [[ "${RUN}" = 'gdas' ]] && (( d_fhr % 3 == 0 )); then + fi + + if [[ "${SENDDBN}" = 'YES' ]] && [[ "${RUN}" = 'gdas' ]] && (( d_fhr % 3 == 0 )); then "${DBNROOT}/bin/dbn_alert" MODEL "${run}_SF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}atmf${fhr}.nc" "${DBNROOT}/bin/dbn_alert" MODEL "${run}_BF" "${job}" "${COM_ATMOS_HISTORY}/${PREFIX}sfcf${fhr}.nc" "${DBNROOT}/bin/dbn_alert" MODEL "${run}_SGB_GB2" "${job}" "${COM_ATMOS_MASTER}/${PREFIX}sfluxgrbf${fhr}.grib2" "${DBNROOT}/bin/dbn_alert" MODEL "${run}_SGB_GB2_WIDX ""${job}" "${COM_ATMOS_MASTER}/${PREFIX}sfluxgrbf${fhr}.grib2.idx" - fi fi [[ -f pgbfile.grib2 ]] && rm pgbfile.grib2 diff --git a/scripts/exgfs_atmos_awips_20km_1p0deg.sh b/scripts/exgfs_atmos_awips_20km_1p0deg.sh index 279b5003ed..caf7f9cc58 100755 --- a/scripts/exgfs_atmos_awips_20km_1p0deg.sh +++ b/scripts/exgfs_atmos_awips_20km_1p0deg.sh @@ -191,24 +191,22 @@ for GRID in conus ak prico pac 003; do # TODO: Should this be fatal? echo "error from tocgrib2=${err}" - if [[ ${SENDCOM} == "YES" ]]; then - ############################## - # Post Files to ${COM_ATMOS_WMO} - ############################## + ############################## + # Post Files to ${COM_ATMOS_WMO} + ############################## - mv "grib2.awpgfs${fcsthrs}.${GRID}" \ + mv "grib2.awpgfs${fcsthrs}.${GRID}" \ "${COM_ATMOS_WMO}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc}" - ############################## - # Distribute Data - ############################## + ############################## + # Distribute Data + ############################## - if [[ "${SENDDBN}" == 'YES' || "${SENDAWIP}" == 'YES' ]]; then - "${DBNROOT}/bin/dbn_alert" NTC_LOW "${NET}" "${job}" \ - "${COM_ATMOS_WMO}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc}" - else - echo "File ${COM_ATMOS_WMO}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." - fi + if [[ "${SENDDBN}" == 'YES' || "${SENDAWIP}" == 'YES' ]]; then + "${DBNROOT}/bin/dbn_alert" NTC_LOW "${NET}" "${job}" \ + "${COM_ATMOS_WMO}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc}" + else + echo "File ${COM_ATMOS_WMO}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." fi elif [[ ${GRID} != "003" ]]; then export FORT11="awps_file_f${fcsthrs}_${GRID}" @@ -225,25 +223,22 @@ for GRID in conus ak prico pac 003; do ${TOCGRIB2} < "parm_list" >> "${pgmout}" 2> errfile export err=$?; err_chk || exit "${err}" - if [[ ${SENDCOM} = "YES" ]]; then + ############################## + # Post Files to ${COM_ATMOS_WMO} + ############################## - ############################## - # Post Files to ${COM_ATMOS_WMO} - ############################## + mv "grib2.awpgfs_20km_${GRID}_f${fcsthrs}" \ + "${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name}" - mv "grib2.awpgfs_20km_${GRID}_f${fcsthrs}" \ - "${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name}" + ############################## + # Distribute Data + ############################## - ############################## - # Distribute Data - ############################## - - if [[ "${SENDDBN}" = 'YES' || "${SENDAWIP}" = 'YES' ]]; then - "${DBNROOT}/bin/dbn_alert" NTC_LOW "${NET}" "${job}" \ - "${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name}" - else - echo "File ${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name} not posted to db_net." - fi + if [[ "${SENDDBN}" = 'YES' || "${SENDAWIP}" = 'YES' ]]; then + "${DBNROOT}/bin/dbn_alert" NTC_LOW "${NET}" "${job}" \ + "${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name}" + else + echo "File ${COM_ATMOS_WMO}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.${job_name} not posted to db_net." fi fi echo "Awip Processing ${fcsthrs} hour completed normally" diff --git a/scripts/exgfs_atmos_fbwind.sh b/scripts/exgfs_atmos_fbwind.sh index e7d0ff3d82..735a906bff 100755 --- a/scripts/exgfs_atmos_fbwind.sh +++ b/scripts/exgfs_atmos_fbwind.sh @@ -71,10 +71,8 @@ startmsg $EXECgfs/fbwndgfs < $PARMproduct/fbwnd_pacific.stnlist >> $pgmout 2> errfile export err=$?; err_chk -if test "$SENDCOM" = 'YES' -then - cp tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name -fi + +cp tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name if test "$SENDDBN" = 'YES' then diff --git a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh index 64562daeed..2dd7fa886a 100755 --- a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +++ b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh @@ -95,14 +95,12 @@ export filesize=$( ls -l rdbfmsua.out | awk '{print $5}' ) if [ $filesize -gt 40 ] then -if [ $SENDCOM = "YES" ]; then - cp rdbfmsua.out $COMOUT/${RUN}.${cycle}.msupperair - cp sonde.idsms.tbl $COMOUT/${RUN}.${cycle}.msupperairtble - if [ $SENDDBN = "YES" ]; then - $DBNROOT/bin/dbn_alert DATA MSUPPER_AIR $job $COMOUT/${RUN}.${cycle}.msupperair - $DBNROOT/bin/dbn_alert DATA MSUPPER_AIRTBL $job $COMOUT/${RUN}.${cycle}.msupperairtble - fi -fi + cp rdbfmsua.out $COMOUT/${RUN}.${cycle}.msupperair + cp sonde.idsms.tbl $COMOUT/${RUN}.${cycle}.msupperairtble + if [ $SENDDBN = "YES" ]; then + $DBNROOT/bin/dbn_alert DATA MSUPPER_AIR $job $COMOUT/${RUN}.${cycle}.msupperair + $DBNROOT/bin/dbn_alert DATA MSUPPER_AIRTBL $job $COMOUT/${RUN}.${cycle}.msupperairtble + fi fi diff --git a/scripts/exgfs_atmos_goes_nawips.sh b/scripts/exgfs_atmos_goes_nawips.sh index 76ae067280..583593fef8 100755 --- a/scripts/exgfs_atmos_goes_nawips.sh +++ b/scripts/exgfs_atmos_goes_nawips.sh @@ -103,15 +103,13 @@ EOF $GEMEXE/gpend - if [ $SENDCOM = "YES" ] ; then - cp $GEMGRD $COMOUT/.$GEMGRD - mv $COMOUT/.$GEMGRD $COMOUT/$GEMGRD - if [ $SENDDBN = "YES" ] ; then - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ - $COMOUT/$GEMGRD - else - echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" - fi + cp $GEMGRD $COMOUT/.$GEMGRD + mv $COMOUT/.$GEMGRD $COMOUT/$GEMGRD + if [ $SENDDBN = "YES" ] ; then + $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ + $COMOUT/$GEMGRD + else + echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" fi let fhcnt=fhcnt+finc diff --git a/scripts/exgfs_atmos_grib2_special_npoess.sh b/scripts/exgfs_atmos_grib2_special_npoess.sh index 4009a8e66a..23161c2714 100755 --- a/scripts/exgfs_atmos_grib2_special_npoess.sh +++ b/scripts/exgfs_atmos_grib2_special_npoess.sh @@ -90,18 +90,16 @@ for (( fhr=$((10#${SHOUR})); fhr <= $((10#${FHOUR})); fhr = fhr + FHINC )); do ${WGRIB2} tmpfile | grep -F -f ${paramlist} | ${WGRIB2} -i -grib pgb2file tmpfile export err=$?; err_chk - if [[ ${SENDCOM} == "YES" ]]; then - cp pgb2file "${COM_ATMOS_GOES}/${RUN}.${cycle}.pgrb2f${fhr3}.npoess" - - if [[ ${SENDDBN} == "YES" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGBNPOESS "${job}" \ - "${COM_ATMOS_GOES}/${RUN}.${cycle}.pgrb2f${fhr3}.npoess" - else - msg="File ${RUN}.${cycle}.pgrb2f${fhr3}.npoess not posted to db_net." - postmsg "${msg}" || echo "${msg}" - fi - echo "${PDY}${cyc}${fhr3}" > "${COM_ATMOS_GOES}/${RUN}.t${cyc}z.control.halfdeg.npoess" + cp pgb2file "${COM_ATMOS_GOES}/${RUN}.${cycle}.pgrb2f${fhr3}.npoess" + + if [[ ${SENDDBN} == "YES" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGBNPOESS "${job}" \ + "${COM_ATMOS_GOES}/${RUN}.${cycle}.pgrb2f${fhr3}.npoess" + else + msg="File ${RUN}.${cycle}.pgrb2f${fhr3}.npoess not posted to db_net." + postmsg "${msg}" || echo "${msg}" fi + echo "${PDY}${cyc}${fhr3}" > "${COM_ATMOS_GOES}/${RUN}.t${cyc}z.control.halfdeg.npoess" rm tmpfile pgb2file done @@ -161,23 +159,20 @@ for (( fhr=$((10#${SHOUR})); fhr <= $((10#${FHOUR})); fhr = fhr + FHINC )); do ${WGRIB2} pgb2file -s > pgb2ifile - if [[ ${SENDCOM} == "YES" ]]; then - - cp pgb2file "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr3}" - cp pgb2ifile "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr3}.idx" - cp pgb2file2 "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2f${fhr3}.grd221" - - if [[ ${SENDDBN} == "YES" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMPGB2_0P25 "${job}" \ - "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMPGB2_0P25_WIDX "${job}" \ - "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMGRD221_PGB2 "${job}" \ - "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221" - fi - - echo "${PDY}${cyc}${fhr}" > "${COM_ATMOS_GOES}/${RUN}.t${cyc}z.control.goessimpgrb" + cp pgb2file "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr3}" + cp pgb2ifile "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr3}.idx" + cp pgb2file2 "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2f${fhr3}.grd221" + + if [[ ${SENDDBN} == "YES" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMPGB2_0P25 "${job}" \ + "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMPGB2_0P25_WIDX "${job}" \ + "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_GOESSIMGRD221_PGB2 "${job}" \ + "${COM_ATMOS_GOES}/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221" fi + + echo "${PDY}${cyc}${fhr}" > "${COM_ATMOS_GOES}/${RUN}.t${cyc}z.control.goessimpgrb" rm pgb2file2 pgb2ifile if [[ ${SENDECF} == "YES" ]]; then diff --git a/scripts/exgfs_atmos_grib_awips.sh b/scripts/exgfs_atmos_grib_awips.sh index d3d7592745..efdd6beb81 100755 --- a/scripts/exgfs_atmos_grib_awips.sh +++ b/scripts/exgfs_atmos_grib_awips.sh @@ -112,19 +112,17 @@ export err=$?; err_chk # Post Files to ${COM_ATMOS_WMO} ############################## -if [[ "${SENDCOM}" = 'YES' ]]; then - cp "xtrn.awpgfs${fcsthrs}.${GRID}" "${COM_ATMOS_WMO}/xtrn.awpgfs${fcsthrs}.${GRID}.${job_name}" - - ############################## - # Distribute Data - ############################## - - if [[ "${SENDDBN}" == 'YES' || "${SENDAWIP}" == 'YES' ]] ; then - "${DBNROOT}/bin/dbn_alert" "${DBNALERT_TYPE}" "${NET}" "${job}" \ - "${COM_ATMOS_WMO}/xtrn.awpgfs${fcsthrs}.${GRID}.${job_name}" - else - echo "File ${output_grb}.${job_name} not posted to db_net." - fi +cp "xtrn.awpgfs${fcsthrs}.${GRID}" "${COM_ATMOS_WMO}/xtrn.awpgfs${fcsthrs}.${GRID}.${job_name}" + +############################## +# Distribute Data +############################## + +if [[ "${SENDDBN}" == 'YES' || "${SENDAWIP}" == 'YES' ]] ; then + "${DBNROOT}/bin/dbn_alert" "${DBNALERT_TYPE}" "${NET}" "${job}" \ + "${COM_ATMOS_WMO}/xtrn.awpgfs${fcsthrs}.${GRID}.${job_name}" +else + echo "File ${output_grb}.${job_name} not posted to db_net." fi if [[ -e "${pgmout}" ]] ; then diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh index 98c6ddffdc..ebb509d392 100755 --- a/scripts/exgfs_atmos_nawips.sh +++ b/scripts/exgfs_atmos_nawips.sh @@ -145,12 +145,10 @@ r EOF export err=$?;err_chk - if [[ ${SENDCOM} == "YES" ]] ; then - cpfs "${GEMGRD}" "${destination}/${GEMGRD}" - if [[ ${SENDDBN} == "YES" ]] ; then - "${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" \ - "${destination}/${GEMGRD}" - fi + cpfs "${GEMGRD}" "${destination}/${GEMGRD}" + if [[ ${SENDDBN} == "YES" ]] ; then + "${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" \ + "${destination}/${GEMGRD}" fi cd "${DATA_RUN}" || exit 1 else diff --git a/scripts/exgfs_atmos_post.sh b/scripts/exgfs_atmos_post.sh index acf0234e98..88e64fc52d 100755 --- a/scripts/exgfs_atmos_post.sh +++ b/scripts/exgfs_atmos_post.sh @@ -128,35 +128,33 @@ if [[ "${stime}" = "anl" ]]; then export err=$?; err_chk fi - if [[ "${SENDCOM}" = 'YES' ]]; then - export fhr3=anl - if [[ "${GRIBVERSION}" = 'grib2' ]]; then + export fhr3=anl + if [[ "${GRIBVERSION}" = 'grib2' ]]; then MASTERANL=${PREFIX}master.grb2${fhr3} MASTERANLIDX=${PREFIX}master.grb2i${fhr3} cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERANL}" ${GRB2INDEX} "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERANLIDX}" - fi + fi - if [[ "${SENDDBN}" = 'YES' ]]; then + if [[ "${SENDDBN}" = 'YES' ]]; then "${DBNROOT}/bin/dbn_alert" MODEL GFS_MSC_sfcanl "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}sfcanl.nc" "${DBNROOT}/bin/dbn_alert" MODEL GFS_SA "${job}" "${COM_ATMOS_ANALYSIS}/${PREFIX}atmanl.nc" if [[ "${PGBF}" = 'YES' ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.anl.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.anl.idx" - - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.anl.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.anl.idx" - - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.anl" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.anl.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.anl.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.anl.idx" + + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.anl.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.anl.idx" + + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.anl.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.anl" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.anl.idx" fi - fi fi [[ -f pgbfile.grib2 ]] && rm pgbfile.grib2 # ecflow_client --event release_pgrb2_anl @@ -283,42 +281,40 @@ else ## not_anl if_stime export err=$?; err_chk fi - if [[ "${SENDCOM}" = "YES" ]]; then - if [[ "${GRIBVERSION}" = 'grib2' ]]; then - if [[ "${INLINE_POST}" = ".false." ]]; then - cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFL}" - fi - ${GRB2INDEX} "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFLIDX}" + if [[ "${GRIBVERSION}" = 'grib2' ]]; then + if [[ "${INLINE_POST}" = ".false." ]]; then + cp "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFL}" fi + ${GRB2INDEX} "${PGBOUT2}" "${COM_ATMOS_MASTER}/${MASTERFLIDX}" + fi - if [[ "${SENDDBN}" = 'YES' ]]; then - if [[ "${GRIBVERSION}" = 'grib2' ]]; then - if [[ "${PGBF}" = 'YES' ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.f${fhr3}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.f${fhr3}.idx" - - if [[ -s "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.f${fhr3}.idx" - fi - - if [[ -s "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}" ]]; then - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}.idx" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.f${fhr3}" - "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.f${fhr3}.idx" - fi + if [[ "${SENDDBN}" = 'YES' ]]; then + if [[ "${GRIBVERSION}" = 'grib2' ]]; then + if [[ "${PGBF}" = 'YES' ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2.0p25.f${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25 "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P25_WIDX "${job}" "${COM_ATMOS_GRIB_0p25}/${PREFIX}pgrb2b.0p25.f${fhr3}.idx" + + if [[ -s "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2.0p50.f${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5 "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_0P5_WIDX "${job}" "${COM_ATMOS_GRIB_0p50}/${PREFIX}pgrb2b.0p50.f${fhr3}.idx" fi - fi - fi - export fhr - "${USHgfs}/gfs_transfer.sh" + if [[ -s "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}" ]]; then + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2.1p00.f${fhr3}.idx" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0 "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.f${fhr3}" + "${DBNROOT}/bin/dbn_alert" MODEL GFS_PGB2B_1P0_WIDX "${job}" "${COM_ATMOS_GRIB_1p00}/${PREFIX}pgrb2b.1p00.f${fhr3}.idx" + fi + fi + fi fi + + export fhr + "${USHgfs}/gfs_transfer.sh" [[ -f pgbfile.grib2 ]] && rm pgbfile.grib2 @@ -396,13 +392,11 @@ else ## not_anl if_stime SPECIALFLIDX="${PREFIX}special.grb2i" fi - if [[ "${SENDCOM}" = "YES" ]]; then - mv goesfile "${COM_ATMOS_GOES}/${SPECIALFL}f${fhr3}" - mv goesifile "${COM_ATMOS_GOES}/${SPECIALFLIDX}f${fhr3}" + mv goesfile "${COM_ATMOS_GOES}/${SPECIALFL}f${fhr3}" + mv goesifile "${COM_ATMOS_GOES}/${SPECIALFLIDX}f${fhr3}" - if [[ "${SENDDBN}" = "YES" ]]; then + if [[ "${SENDDBN}" = "YES" ]]; then "${DBNROOT}/bin/dbn_alert" MODEL GFS_SPECIAL_GB2 "${job}" "${COM_ATMOS_GOES}/${SPECIALFL}f${fhr3}" - fi fi fi # end of satellite processing @@ -411,8 +405,6 @@ else ## not_anl if_stime #---------------------------------- fi ## end_if_stime - - exit 0 ################## END OF SCRIPT ####################### diff --git a/scripts/exgfs_wave_nawips.sh b/scripts/exgfs_wave_nawips.sh index 09d23ec685..e574ffeabb 100755 --- a/scripts/exgfs_wave_nawips.sh +++ b/scripts/exgfs_wave_nawips.sh @@ -157,13 +157,11 @@ while [ $fhcnt -le $FHMAX_WAV ]; do gpend fi - if [ $SENDCOM = "YES" ] ; then - cpfs "${GEMGRD}" "${COM_WAVE_GEMPAK}/${GEMGRD}" - if [ $SENDDBN = "YES" ] ; then + cpfs "${GEMGRD}" "${COM_WAVE_GEMPAK}/${GEMGRD}" + if [ $SENDDBN = "YES" ] ; then "${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" "${COM_WAVE_GEMPAK}/${GEMGRD}" - else + else echo "##### DBN_ALERT is: MODEL ${DBN_ALERT_TYPE} ${job} ${COM_WAVE_GEMPAK}/${GEMGRD}#####" - fi fi rm grib_$grid done diff --git a/scripts/exgfs_wave_prdgen_bulls.sh b/scripts/exgfs_wave_prdgen_bulls.sh index e75df8dfd1..2e6cb2071b 100755 --- a/scripts/exgfs_wave_prdgen_bulls.sh +++ b/scripts/exgfs_wave_prdgen_bulls.sh @@ -202,18 +202,16 @@ source "$HOMEgfs/ush/preamble.sh" # 3. Send output files to the proper destination set_trace -if [ "$SENDCOM" = YES ]; then - cp "awipsbull.${cycle}.${RUNwave}" "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}" - if [ "$SENDDBN_NTC" = YES ]; then +cp "awipsbull.${cycle}.${RUNwave}" "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}" +if [ "$SENDDBN_NTC" = YES ]; then make_ntc_bull.pl "WMOBH" "NONE" "KWBC" "NONE" "${DATA}/awipsbull.${cycle}.${RUNwave}" \ - "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}" - else + "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}" +else if [ "${envir}" = "para" ] || [ "${envir}" = "test" ] || [ "${envir}" = "dev" ]; then - echo "Making NTC bulletin for parallel environment, but do not alert." - (export SENDDBN=NO; make_ntc_bull.pl "WMOBH" "NONE" "KWBC" "NONE" \ - "${DATA}/awipsbull.${cycle}.${RUNwave}" "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}") + echo "Making NTC bulletin for parallel environment, but do not alert." + (export SENDDBN=NO; make_ntc_bull.pl "WMOBH" "NONE" "KWBC" "NONE" \ + "${DATA}/awipsbull.${cycle}.${RUNwave}" "${COM_WAVE_WMO}/awipsbull.${cycle}.${RUNwave}") fi - fi fi # --------------------------------------------------------------------------- # diff --git a/scripts/exgfs_wave_prdgen_gridded.sh b/scripts/exgfs_wave_prdgen_gridded.sh index de7f2c4974..095856e1e2 100755 --- a/scripts/exgfs_wave_prdgen_gridded.sh +++ b/scripts/exgfs_wave_prdgen_gridded.sh @@ -233,15 +233,13 @@ grids=${grids:-ak_10m at_10m ep_10m wc_10m glo_30m} #set +x echo " Get awips GRIB bulletins out ..." #set_trace - if [ "$SENDCOM" = 'YES' ] - then - #set +x - echo " Saving $AWIPSGRB.$grdOut.f${fhr} as grib2.$cycle.awipsww3_${grdID}.f${fhr}" - echo " in ${COM_WAVE_WMO}" - #set_trace - cp "${AWIPSGRB}.${grdID}.f${fhr}" "${COM_WAVE_WMO}/grib2.${cycle}.f${fhr}.awipsww3_${grdOut}" - #set +x - fi + #set +x + echo " Saving $AWIPSGRB.$grdOut.f${fhr} as grib2.$cycle.awipsww3_${grdID}.f${fhr}" + echo " in ${COM_WAVE_WMO}" + #set_trace + cp "${AWIPSGRB}.${grdID}.f${fhr}" "${COM_WAVE_WMO}/grib2.${cycle}.f${fhr}.awipsww3_${grdOut}" + #set +x + if [ "$SENDDBN" = 'YES' ] then diff --git a/ush/gfs_sndp.sh b/ush/gfs_sndp.sh index 579dd5ae25..99c5c68fa3 100755 --- a/ush/gfs_sndp.sh +++ b/ush/gfs_sndp.sh @@ -57,12 +57,10 @@ EOF rm $DATA/${m}/bufrout done - if [[ ${SENDCOM} == 'YES' ]]; then - if [[ ${SENDDBN} == 'YES' ]] ; then - cp "${DATA}/${m}/gfs_collective${m}.fil" "${COM_ATMOS_WMO}/gfs_collective${m}.postsnd_${cyc}" - "${DBNROOT}/bin/dbn_alert" NTC_LOW BUFR "${job}" \ - "${COM_ATMOS_WMO}/gfs_collective${m}.postsnd_${cyc}" - fi - cp "${DATA}/${m}/gfs_collective${m}.fil" "${COM_ATMOS_BUFR}/." + if [[ ${SENDDBN} == 'YES' ]] ; then + cp "${DATA}/${m}/gfs_collective${m}.fil" "${COM_ATMOS_WMO}/gfs_collective${m}.postsnd_${cyc}" + "${DBNROOT}/bin/dbn_alert" NTC_LOW BUFR "${job}" \ + "${COM_ATMOS_WMO}/gfs_collective${m}.postsnd_${cyc}" fi + cp "${DATA}/${m}/gfs_collective${m}.fil" "${COM_ATMOS_BUFR}/." diff --git a/ush/syndat_qctropcy.sh b/ush/syndat_qctropcy.sh index 5b5b4ba34b..aa98911820 100755 --- a/ush/syndat_qctropcy.sh +++ b/ush/syndat_qctropcy.sh @@ -63,8 +63,6 @@ # copy_back - switch to copy updated files back to archive directory and # to tcvitals directory # (Default: YES) -# SENDCOM switch copy output files to $COMSP -# (Default: YES) # files_override - switch to override default "files" setting for given run # (Default: not set) # TIMEIT - optional time and resource reporting (Default: not set) @@ -83,7 +81,6 @@ PARMSYND=${PARMSYND:-$HOMEgfs/parm/relo} slmask=${slmask:-$FIXSYND/syndat_slmask.t126.gaussian} copy_back=${copy_back:-YES} -SENDCOM=${SENDCOM:-YES} files_override=${files_override:-""} cd $DATA @@ -119,13 +116,11 @@ positional parameter 1" # to remote machine(s) # (Note: Only do so if files don't already exist) - if [ $SENDCOM = YES ]; then - if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" ]]; then - cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" - fi - if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" ]]; then - cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" - fi + if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" ]]; then + cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" + fi + if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" ]]; then + cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" fi exit @@ -296,13 +291,11 @@ if [ "$errqct" -gt '0' ];then # wasting time with multiple attempts to remote machine(s) # (Note: Only do so if files don't already exist) - if [ $SENDCOM = YES ]; then - if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" ]]; then - cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" - fi - if [[ ! -s ${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark} ]]; then - cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" - fi + if [[ ! -s "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" ]]; then + cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" + fi + if [[ ! -s ${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark} ]]; then + cp "/dev/null" "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" fi exit @@ -379,7 +372,7 @@ fi # This is the file that connects to the later RELOCATE and/or PREP scripts -[ $SENDCOM = YES ] && cp current "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" +cp current "${COM_OBS}/${RUN}.${cycle}.syndata.tcvitals.${tmmark}" # Create the DBNet alert if [ $SENDDBN = "YES" ] @@ -388,6 +381,6 @@ then fi # Write JTWC/FNOC Tcvitals to /com path since not saved anywhere else -[ $SENDCOM = YES ] && cp fnoc "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" +cp fnoc "${COM_OBS}/${RUN}.${cycle}.jtwc-fnoc.tcvitals.${tmmark}" exit diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index 9b170ddfd0..01a21bd12c 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -147,8 +147,6 @@ # Default is "$EXECUTIL/gettrk" # BKGFREQ Frequency of background files for relocation # Default is "3" -# SENDCOM String when set to "YES" copies output files to $COMSP -# Default is "YES" # SENDDBN String when set to "YES" alerts output files to $COMSP # NDATE String indicating executable path for NDATE utility program # Default is "$EXECUTIL/ndate" @@ -210,7 +208,6 @@ source "$HOMEgfs/ush/preamble.sh" MACHINE=${MACHINE:-$(hostname -s | cut -c 1-3)} -SENDCOM=${SENDCOM:-YES} export OPSROOT=${OPSROOT:-/lfs/h1/ops/prod} GRIBVERSION=${GRIBVERSION:-"grib2"} @@ -687,21 +684,20 @@ else fi rm -f RELOCATE_GES cmd - if [ "$SENDCOM" = "YES" ]; then - cp "rel_inform1" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" - cp "tcvitals" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" - if [ "$SENDDBN" = "YES" ]; then - if test "$RUN" = "gdas1" - then - "${DBNROOT}/bin/dbn_alert" "MODEL" "GDAS1_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" - "${DBNROOT}/bin/dbn_alert" "MODEL" "GDAS1_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" - fi - if test "$RUN" = "gfs" - then - "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" - "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" - fi - fi + + cp "rel_inform1" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" + cp "tcvitals" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" + if [ "$SENDDBN" = "YES" ]; then + if test "$RUN" = "gdas1" + then + "${DBNROOT}/bin/dbn_alert" "MODEL" "GDAS1_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" + "${DBNROOT}/bin/dbn_alert" "MODEL" "GDAS1_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" + fi + if test "$RUN" = "gfs" + then + "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.inform.relocate.${tmmark}" + "${DBNROOT}/bin/dbn_alert" "MODEL" "GFS_TCI" "${job}" "${COM_OBS}/${RUN}.${cycle}.tcvitals.relocate.${tmmark}" + fi fi # -------------------------------------------------------------------------- diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh index 8511515abb..af28760269 100755 --- a/ush/wave_grib2_sbs.sh +++ b/ush/wave_grib2_sbs.sh @@ -83,8 +83,8 @@ if [[ ! -s "${COM_WAVE_GRID}/${outfile}.idx" ]]; then set_trace if [[ -z "${PDY}" ]] || [[ -z ${cyc} ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECwave}" ]] || \ - [[ -z "${COM_WAVE_GRID}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${SENDCOM}" ]] || \ - [[ -z "${gribflags}" ]] || [[ -z "${GRIDNR}" ]] || [[ -z "${MODNR}" ]] || \ + [[ -z "${COM_WAVE_GRID}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${gribflags}" ]] || \ + [[ -z "${GRIDNR}" ]] || [[ -z "${MODNR}" ]] || \ [[ -z "${SENDDBN}" ]]; then set +x echo ' ' diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh index 7fa8d9d7f3..c11a75f89d 100755 --- a/ush/wave_grid_interp_sbs.sh +++ b/ush/wave_grid_interp_sbs.sh @@ -66,8 +66,8 @@ source "$HOMEgfs/ush/preamble.sh" set_trace if [[ -z "${PDY}" ]] || [[ -z "${cyc}" ]] || [[ -z "${cycle}" ]] || [[ -z "${EXECwave}" ]] || \ - [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${SENDCOM}" ]] || \ - [[ -z "${SENDDBN}" ]] || [ -z "${waveGRD}" ] + [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${SENDDBN}" ]] || \ + [ -z "${waveGRD}" ] then set +x echo ' ' @@ -75,7 +75,7 @@ source "$HOMEgfs/ush/preamble.sh" echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' echo '***************************************************' echo ' ' - echo "${PDY}${cyc} ${cycle} ${EXECwave} ${COM_WAVE_PREP} ${WAV_MOD_TAG} ${SENDCOM} ${SENDDBN} ${waveGRD}" + echo "${PDY}${cyc} ${cycle} ${EXECwave} ${COM_WAVE_PREP} ${WAV_MOD_TAG} ${SENDDBN} ${waveGRD}" set_trace exit 1 fi @@ -172,12 +172,10 @@ source "$HOMEgfs/ush/preamble.sh" # 1.c Save in /com - if [ "$SENDCOM" = 'YES' ] - then - set +x - echo " Saving GRID file as ${COM_WAVE_PREP}/${WAV_MOD_TAG}.out_grd.${grdID}.${PDY}${cyc}" - set_trace - cp "${DATA}/output_${ymdh}0000/out_grd.${grdID}" "${COM_WAVE_PREP}/${WAV_MOD_TAG}.out_grd.${grdID}.${PDY}${cyc}" + set +x + echo " Saving GRID file as ${COM_WAVE_PREP}/${WAV_MOD_TAG}.out_grd.${grdID}.${PDY}${cyc}" + set_trace + cp "${DATA}/output_${ymdh}0000/out_grd.${grdID}" "${COM_WAVE_PREP}/${WAV_MOD_TAG}.out_grd.${grdID}.${PDY}${cyc}" # if [ "$SENDDBN" = 'YES' ] # then @@ -190,7 +188,6 @@ source "$HOMEgfs/ush/preamble.sh" # # fi - fi # --------------------------------------------------------------------------- # # 2. Clean up the directory diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh index a32a2b7e43..5ec1d7fc2e 100755 --- a/ush/wave_prnc_ice.sh +++ b/ush/wave_prnc_ice.sh @@ -56,8 +56,7 @@ source "$HOMEgfs/ush/preamble.sh" if [[ -z "${YMDH}" ]] || [[ -z "${cycle}" ]] || \ [[ -z "${COM_WAVE_PREP}" ]] || [[ -z "${FIXwave}" ]] || [[ -z "${EXECwave}" ]] || \ - [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${WAVEICE_FID}" ]] || [[ -z "${SENDCOM}" ]] || \ - [[ -z "${COM_OBS}" ]]; then + [[ -z "${WAV_MOD_TAG}" ]] || [[ -z "${WAVEICE_FID}" ]] || [[ -z "${COM_OBS}" ]]; then set +x echo ' ' diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh index 9264aac5f3..1a8d6d6cc5 100755 --- a/ush/wave_tar.sh +++ b/ush/wave_tar.sh @@ -77,7 +77,7 @@ source "$HOMEgfs/ush/preamble.sh" # The tested variables should be exported by the postprocessor script. if [[ -z "${cycle}" ]] || [[ -z "${COM_WAVE_STATION}" ]] || [[ -z "${WAV_MOD_TAG}" ]] || \ - [[ -z "${SENDCOM}" ]] || [[ -z "${SENDDBN}" ]] || [[ -z "${STA_DIR}" ]]; then + [[ -z "${SENDDBN}" ]] || [[ -z "${STA_DIR}" ]]; then set +x echo ' ' echo '*****************************************************' From 3de102c28daf9eb50ce65e0afe911f5a416ce861 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Tue, 17 Oct 2023 09:30:18 -0400 Subject: [PATCH 2/2] Updates to CI to clarify HOMEgfs (#1931) * replace HOMEgfs_PR with HOMEgfs, and HOMEgfs with ROOT_DIR. ROOT_DIR is the location where the ci scripts live * update type to system in case yamls * move create_experiment.py to workflow/ * detect HOMEgfs in create_experiment.py based on location. update to use jinja templates in the cases * remove export of HOMEgfs from driver.sh --- ci/cases/pr/C48_ATM.yaml | 10 +-- ci/cases/pr/C48_S2SA_gefs.yaml | 12 ++-- ci/cases/pr/C48_S2SW.yaml | 10 +-- ci/cases/pr/C96C48_hybatmDA.yaml | 12 ++-- ci/cases/pr/C96_atm3DVar.yaml | 10 +-- ci/cases/weekly/C384C192_hybatmda.yaml | 12 ++-- ci/cases/weekly/C384_S2SWA.yaml | 10 +-- ci/cases/weekly/C384_atm3DVar.yaml | 12 ++-- ...s_ci-updates.yaml => gfs_defaults_ci.yaml} | 0 ci/scripts/check_ci.sh | 24 +++---- ci/scripts/clone-build_ci.sh | 4 +- ci/scripts/driver.sh | 72 +++++++++---------- ci/scripts/driver_weekly.sh | 16 ++--- ci/scripts/run_ci.sh | 14 ++-- parm/config/gefs/config.base.emc.dyn | 6 +- parm/config/gfs/config.base.emc.dyn | 10 +-- parm/config/gfs/config.ocnanal | 9 ++- parm/config/gfs/yaml/defaults.yaml | 18 ++--- {ci/scripts => workflow}/create_experiment.py | 40 ++++++----- workflow/setup_expt.py | 4 -- 20 files changed, 153 insertions(+), 152 deletions(-) rename ci/platforms/{gfs_defaults_ci-updates.yaml => gfs_defaults_ci.yaml} (100%) rename {ci/scripts => workflow}/create_experiment.py (62%) diff --git a/ci/cases/pr/C48_ATM.yaml b/ci/cases/pr/C48_ATM.yaml index ccb001d296..fc0b729af6 100644 --- a/ci/cases/pr/C48_ATM.yaml +++ b/ci/cases/pr/C48_ATM.yaml @@ -1,13 +1,13 @@ experiment: - type: gfs + system: gfs mode: forecast-only arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: ATM resdet: 48 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR idate: 2021032312 edate: 2021032312 - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/pr/C48_S2SA_gefs.yaml b/ci/cases/pr/C48_S2SA_gefs.yaml index 4d5f066858..927a979b13 100644 --- a/ci/cases/pr/C48_S2SA_gefs.yaml +++ b/ci/cases/pr/C48_S2SA_gefs.yaml @@ -1,17 +1,17 @@ experiment: - type: gefs + system: gefs mode: forecast-only arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: S2SA resdet: 48 resens: 48 nens: 2 gfs_cyc: 1 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR - icsdir: ${ICSDIR_ROOT}/C48C48mx500 + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR + icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C48C48mx500 idate: 2021032312 edate: 2021032312 - yaml: ${HOMEgfs_PR}/ci/platforms/gefs_ci_defaults.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gefs_ci_defaults.yaml diff --git a/ci/cases/pr/C48_S2SW.yaml b/ci/cases/pr/C48_S2SW.yaml index aba66cb4f3..f4b50ead22 100644 --- a/ci/cases/pr/C48_S2SW.yaml +++ b/ci/cases/pr/C48_S2SW.yaml @@ -1,13 +1,13 @@ experiment: - type: gfs + system: gfs mode: forecast-only arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: S2SW resdet: 48 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR idate: 2021032312 edate: 2021032312 - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/pr/C96C48_hybatmDA.yaml b/ci/cases/pr/C96C48_hybatmDA.yaml index 660291a3be..c3aa6e8892 100644 --- a/ci/cases/pr/C96C48_hybatmDA.yaml +++ b/ci/cases/pr/C96C48_hybatmDA.yaml @@ -1,18 +1,18 @@ experiment: - type: gfs + system: gfs mode: cycled arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: ATM resdet: 96 resens: 48 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR - icsdir: ${ICSDIR_ROOT}/C96C48 + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR + icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C96C48 idate: 2021122018 edate: 2021122106 nens: 2 gfs_cyc: 1 start: cold - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/pr/C96_atm3DVar.yaml b/ci/cases/pr/C96_atm3DVar.yaml index f103f08d1f..5215cb0d90 100644 --- a/ci/cases/pr/C96_atm3DVar.yaml +++ b/ci/cases/pr/C96_atm3DVar.yaml @@ -1,17 +1,17 @@ experiment: - type: gfs + system: gfs mode: cycled arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: ATM resdet: 96 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR icsdir: ${ICSDIR_ROOT}/C96C48 idate: 2021122018 edate: 2021122106 nens: 0 gfs_cyc: 1 start: cold - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/weekly/C384C192_hybatmda.yaml b/ci/cases/weekly/C384C192_hybatmda.yaml index ca62c4e8f9..4c14018e2d 100644 --- a/ci/cases/weekly/C384C192_hybatmda.yaml +++ b/ci/cases/weekly/C384C192_hybatmda.yaml @@ -1,18 +1,18 @@ experiment: - type: gfs + system: gfs mode: cycled arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: ATM resdet: 384 resens: 192 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR - icsdir: ${ICSDIR_ROOT}/C384C192 + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR + icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C384C192 idate: 2023040118 edate: 2023040200 nens: 2 gfs_cyc: 1 start: cold - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/weekly/C384_S2SWA.yaml b/ci/cases/weekly/C384_S2SWA.yaml index d494efb44b..6c624f5698 100644 --- a/ci/cases/weekly/C384_S2SWA.yaml +++ b/ci/cases/weekly/C384_S2SWA.yaml @@ -1,13 +1,13 @@ experiment: - type: gfs + system: gfs mode: forecast-only arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: S2SWA resdet: 384 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR idate: 2016070100 edate: 2016070100 - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/cases/weekly/C384_atm3DVar.yaml b/ci/cases/weekly/C384_atm3DVar.yaml index 99f302b9ca..e7986ef097 100644 --- a/ci/cases/weekly/C384_atm3DVar.yaml +++ b/ci/cases/weekly/C384_atm3DVar.yaml @@ -1,18 +1,18 @@ experiment: - type: gfs + system: gfs mode: cycled arguments: - pslot: ${pslot} + pslot: {{ 'pslot' | getenv }} app: ATM resdet: 384 resens: 192 - comrot: ${RUNTESTS}/COMROT - expdir: ${RUNTESTS}/EXPDIR - icsdir: ${ICSDIR_ROOT}/C384C192 + comrot: {{ 'RUNTESTS' | getenv }}/COMROT + expdir: {{ 'RUNTESTS' | getenv }}/EXPDIR + icsdir: {{ 'ICSDIR_ROOT' | getenv }}/C384C192 idate: 2023040118 edate: 2023040200 nens: 0 gfs_cyc: 1 start: cold - yaml: ${HOMEgfs_PR}/ci/platforms/gfs_defaults_ci-updates.yaml + yaml: {{ HOMEgfs }}/ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/platforms/gfs_defaults_ci-updates.yaml b/ci/platforms/gfs_defaults_ci.yaml similarity index 100% rename from ci/platforms/gfs_defaults_ci-updates.yaml rename to ci/platforms/gfs_defaults_ci.yaml diff --git a/ci/scripts/check_ci.sh b/ci/scripts/check_ci.sh index b2c8129d32..d5cf6a20bd 100755 --- a/ci/scripts/check_ci.sh +++ b/ci/scripts/check_ci.sh @@ -2,13 +2,13 @@ set -eux ##################################################################################### # -# Script description: BASH script for checking for cases in a given PR and +# Script description: BASH script for checking for cases in a given PR and # running rocotostat on each to determine if the experiment has # succeeded or faild. This script is intended # to run from within a cron job in the CI Managers account ##################################################################################### -HOMEgfs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" scriptname=$(basename "${BASH_SOURCE[0]}") echo "Begin ${scriptname} at $(date -u)" || true export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]' @@ -20,11 +20,11 @@ REPO_URL="https://github.com/NOAA-EMC/global-workflow.git" # Set up runtime environment varibles for accounts on supproted machines ######################################################################### -source "${HOMEgfs}/ush/detect_machine.sh" +source "${ROOT_DIR}/ush/detect_machine.sh" case ${MACHINE_ID} in hera | orion) echo "Running Automated Testing on ${MACHINE_ID}" - source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}" + source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}" ;; *) echo "Unsupported platform. Exiting with error." @@ -32,8 +32,8 @@ case ${MACHINE_ID} in ;; esac set +x -source "${HOMEgfs}/ush/module-setup.sh" -module use "${HOMEgfs}/modulefiles" +source "${ROOT_DIR}/ush/module-setup.sh" +module use "${ROOT_DIR}/modulefiles" module load "module_gwsetup.${MACHINE_ID}" module list set -x @@ -56,7 +56,7 @@ pr_list_dbfile="${GFS_CI_ROOT}/open_pr_list.db" pr_list="" if [[ -f "${pr_list_dbfile}" ]]; then - pr_list=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --display | grep -v Failed | grep Running | awk '{print $1}') || true + pr_list=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --display | grep -v Failed | grep Running | awk '{print $1}') || true fi if [[ -z "${pr_list+x}" ]]; then echo "no PRs open and ready to run cases on .. exiting" @@ -85,7 +85,7 @@ for pr in ${pr_list}; do "${GH}" pr edit --repo "${REPO_URL}" "${pr}" --remove-label "CI-${MACHINE_ID^}-Running" --add-label "CI-${MACHINE_ID^}-Passed" sed -i "s/\`\`\`//2g" "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${GFS_CI_ROOT}/PR/${pr}/output_${id}" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" # Check to see if this PR that was opened by the weekly tests and if so close it if it passed on all platforms weekly_labels=$(${GH} pr view "${pr}" --repo "${REPO_URL}" --json headRefName,labels,author --jq 'select(.author.login | contains("emcbot")) | select(.headRefName | contains("weekly_ci")) | .labels[].name ') || true if [[ -n "${weekly_labels}" ]]; then @@ -103,8 +103,8 @@ for pr in ${pr_list}; do fi # Completely remove the PR and its cloned repo on sucess # of all cases on this platform - rm -Rf "${pr_dir}" - continue + rm -Rf "${pr_dir}" + continue fi for pslot_dir in "${pr_dir}/RUNTESTS/EXPDIR/"*; do @@ -134,10 +134,10 @@ for pr in ${pr_list}; do { echo "Error logs:" echo "${error_logs}" - } >> "${GFS_CI_ROOT}/PR/${pr}/output_${id}" + } >> "${GFS_CI_ROOT}/PR/${pr}/output_${id}" sed -i "s/\`\`\`//2g" "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${GFS_CI_ROOT}/PR/${pr}/output_${id}" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" for kill_cases in "${pr_dir}/RUNTESTS/"*; do pslot=$(basename "${kill_cases}") sacct --format=jobid,jobname%35,WorkDir%100,stat | grep "${pslot}" | grep "PR\/${pr}\/RUNTESTS" | awk '{print $1}' | xargs scancel || true diff --git a/ci/scripts/clone-build_ci.sh b/ci/scripts/clone-build_ci.sh index 83f43ef54b..796e4b7014 100755 --- a/ci/scripts/clone-build_ci.sh +++ b/ci/scripts/clone-build_ci.sh @@ -9,8 +9,8 @@ usage() { echo echo "Usage: $0 -p -d -o -h" echo - echo " -p PR nunber to clone and build" - echo " -d Full path of of were to clone and build PR" + echo " -p PR number to clone and build" + echo " -d Full path of of where to clone and build PR" echo " -o Full path to output message file detailing results of CI tests" echo " -h display this message and quit" echo diff --git a/ci/scripts/driver.sh b/ci/scripts/driver.sh index 0267d88e03..a79ecfd6cf 100755 --- a/ci/scripts/driver.sh +++ b/ci/scripts/driver.sh @@ -10,9 +10,8 @@ set -eux # # This script uses GitHub CLI to check for Pull Requests with CI-Ready-${machine} tags on the # development branch for the global-workflow repo. It then stages tests directories per -# PR number and calls clone-build_ci.sh to perform a clone and full build from $(HOMEgfs)/sorc -# of the PR. It then is ready to run a suite of regression tests with various -# configurations with run_tests.py. +# PR number and calls clone-build_ci.sh to perform a clone and full build from the PR. +# It then is ready to run a suite of regression tests with various configurations ####################################################################################### ################################################################# @@ -22,9 +21,9 @@ export GH=${HOME}/bin/gh export REPO_URL=${REPO_URL:-"https://github.com/NOAA-EMC/global-workflow.git"} ################################################################ -# Setup the reletive paths to scripts and PS4 for better logging +# Setup the reletive paths to scripts and PS4 for better logging ################################################################ -HOMEgfs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" scriptname=$(basename "${BASH_SOURCE[0]}") echo "Begin ${scriptname} at $(date -u)" || true export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]' @@ -33,11 +32,11 @@ export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]' # Set up runtime environment varibles for accounts on supproted machines ######################################################################### -source "${HOMEgfs}/ush/detect_machine.sh" +source "${ROOT_DIR}/ush/detect_machine.sh" case ${MACHINE_ID} in hera | orion) echo "Running Automated Testing on ${MACHINE_ID}" - source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}" + source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}" ;; *) echo "Unsupported platform. Exiting with error." @@ -49,8 +48,8 @@ esac # setup runtime env for correct python install and git ###################################################### set +x -source "${HOMEgfs}/ush/module-setup.sh" -module use "${HOMEgfs}/modulefiles" +source "${ROOT_DIR}/ush/module-setup.sh" +module use "${ROOT_DIR}/modulefiles" module load "module_gwsetup.${MACHINE_ID}" set -x @@ -61,45 +60,45 @@ set -x pr_list_dbfile="${GFS_CI_ROOT}/open_pr_list.db" if [[ ! -f "${pr_list_dbfile}" ]]; then - "${HOMEgfs}/ci/scripts/pr_list_database.py" --create --dbfile "${pr_list_dbfile}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --create --dbfile "${pr_list_dbfile}" fi pr_list=$(${GH} pr list --repo "${REPO_URL}" --label "CI-${MACHINE_ID^}-Ready" --state "open" | awk '{print $1}') || true for pr in ${pr_list}; do pr_dir="${GFS_CI_ROOT}/PR/${pr}" - db_list=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --add_pr "${pr}" --dbfile "${pr_list_dbfile}") + db_list=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --add_pr "${pr}" --dbfile "${pr_list_dbfile}") pr_id=0 ############################################################# - # Check if a Ready labeled PR has changed back from once set + # Check if a Ready labeled PR has changed back from once set # and in that case remove all previous jobs in scheduler and # and remove PR from filesystem to start clean ############################################################# if [[ "${db_list}" == *"already is in list"* ]]; then - pr_id=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --display "${pr}" | awk '{print $4}') || true + pr_id=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --display "${pr}" | awk '{print $4}') || true pr_id=$((pr_id+1)) - "${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Ready "${pr_id}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Ready "${pr_id}" for cases in "${pr_dir}/RUNTESTS/"*; do if [[ -z "${cases+x}" ]]; then break - fi + fi pslot=$(basename "${cases}") sacct --format=jobid,jobname%35,WorkDir%100,stat | grep "${pslot}" | grep "PR\/${pr}\/RUNTESTS" | awk '{print $1}' | xargs scancel || true done rm -Rf "${pr_dir}" - fi + fi done pr_list="" if [[ -f "${pr_list_dbfile}" ]]; then - pr_list=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --display --dbfile "${pr_list_dbfile}" | grep -v Failed | grep Open | grep Ready | awk '{print $1}') || true + pr_list=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --display --dbfile "${pr_list_dbfile}" | grep -v Failed | grep Open | grep Ready | awk '{print $1}') || true fi if [[ -z "${pr_list+x}" ]]; then echo "no PRs open and ready for checkout/build .. exiting" exit 0 fi - + ############################################################# # Loop throu all open PRs # Clone, checkout, build, creat set of cases, for each @@ -107,12 +106,12 @@ fi for pr in ${pr_list}; do # Skip pr's that are currently Building for when overlapping driver scripts are being called from within cron - pr_building=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --display "${pr}" --dbfile "${pr_list_dbfile}" | grep Building) || true + pr_building=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --display "${pr}" --dbfile "${pr_list_dbfile}" | grep Building) || true if [[ -z "${pr_building+x}" ]]; then continue fi "${GH}" pr edit --repo "${REPO_URL}" "${pr}" --remove-label "CI-${MACHINE_ID^}-Ready" --add-label "CI-${MACHINE_ID^}-Building" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Building + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Building echo "Processing Pull Request #${pr}" pr_dir="${GFS_CI_ROOT}/PR/${pr}" rm -Rf "${pr_dir}" @@ -120,7 +119,7 @@ for pr in ${pr_list}; do # call clone-build_ci to clone and build PR id=$("${GH}" pr view "${pr}" --repo "${REPO_URL}" --json id --jq '.id') set +e - "${HOMEgfs}/ci/scripts/clone-build_ci.sh" -p "${pr}" -d "${pr_dir}" -o "${pr_dir}/output_${id}" + "${ROOT_DIR}/ci/scripts/clone-build_ci.sh" -p "${pr}" -d "${pr_dir}" -o "${pr_dir}/output_${id}" ci_status=$? ################################################################## # Checking for special case when Ready label was updated @@ -128,14 +127,14 @@ for pr in ${pr_list}; do # building so we force and exit 0 instead to does not get relabled ################################################################# if [[ ${ci_status} -ne 0 ]]; then - pr_id_check=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --display "{pr}" --dbfile "${pr_list_dbfile}" | awk '{print $4}') || true + pr_id_check=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --display "{pr}" --dbfile "${pr_list_dbfile}" | awk '{print $4}') || true if [[ "${pr_id}" -ne "${pr_id_check}" ]]; then exit 0 - fi + fi fi set -e if [[ ${ci_status} -eq 0 ]]; then - "${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Built + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Built #setup space to put an experiment # export RUNTESTS for yaml case files to pickup export RUNTESTS="${pr_dir}/RUNTESTS" @@ -145,18 +144,17 @@ for pr in ${pr_list}; do # loop over every yaml file in the PR's ci/cases # and create an run directory for each one for this PR loop ############################################################# - HOMEgfs_PR="${pr_dir}/global-workflow" - export HOMEgfs_PR - cd "${HOMEgfs_PR}" + HOMEgfs="${pr_dir}/global-workflow" + cd "${HOMEgfs}" pr_sha=$(git rev-parse --short HEAD) - for yaml_config in "${HOMEgfs_PR}/ci/cases/pr/"*.yaml; do + for yaml_config in "${HOMEgfs}/ci/cases/pr/"*.yaml; do case=$(basename "${yaml_config}" .yaml) || true - pslot="${case}_${pr_sha}" + # export pslot for yaml case files to pickup + export pslot="${case}_${pr_sha}" rm -Rf "${STMP}/RUNDIRS/${pslot}" - export pslot set +e - "${HOMEgfs_PR}/ci/scripts/create_experiment.py" --yaml "${HOMEgfs_PR}/ci/cases/pr/${case}.yaml" --dir "${HOMEgfs_PR}" + "${HOMEgfs}/workflow/create_experiment.py" --yaml "${HOMEgfs}/ci/cases/pr/${case}.yaml" ci_status=$? set -e if [[ ${ci_status} -eq 0 ]]; then @@ -165,27 +163,27 @@ for pr in ${pr_list}; do echo "Case setup: Completed at $(date) for experiment ${pslot}" || true } >> "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr edit --repo "${REPO_URL}" "${pr}" --remove-label "CI-${MACHINE_ID^}-Building" --add-label "CI-${MACHINE_ID^}-Running" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Running - else + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --dbfile "${pr_list_dbfile}" --update_pr "${pr}" Open Running + else { echo "Failed to create experiment: *FAIL* ${pslot}" echo "Experiment setup: failed at $(date) for experiment ${pslot}" || true echo "" - cat "${HOMEgfs_PR}/ci/scripts/"setup_*.std* + cat "${HOMEgfs}/ci/scripts/"setup_*.std* } >> "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr edit "${pr}" --repo "${REPO_URL}" --remove-label "CI-${MACHINE_ID^}-Building" --add-label "CI-${MACHINE_ID^}-Failed" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" fi done - else + else { echo '```' echo "Failed on cloning and building global-workflowi PR: ${pr}" echo "CI on ${MACHINE_ID^} failed to build on $(date) for repo ${REPO_URL}" || true } >> "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr edit "${pr}" --repo "${REPO_URL}" --remove-label "CI-${MACHINE_ID^}-Building" --add-label "CI-${MACHINE_ID^}-Failed" - "${HOMEgfs}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" + "${ROOT_DIR}/ci/scripts/pr_list_database.py" --remove_pr "${pr}" --dbfile "${pr_list_dbfile}" fi sed -i "s/\`\`\`//2g" "${GFS_CI_ROOT}/PR/${pr}/output_${id}" "${GH}" pr comment "${pr}" --repo "${REPO_URL}" --body-file "${GFS_CI_ROOT}/PR/${pr}/output_${id}" diff --git a/ci/scripts/driver_weekly.sh b/ci/scripts/driver_weekly.sh index 3650f75dfc..a52e5b1caa 100755 --- a/ci/scripts/driver_weekly.sh +++ b/ci/scripts/driver_weekly.sh @@ -8,13 +8,13 @@ set -eux # # Abstract: # -# This script runs the high resolution cases found in $HOMEgfs/ci/cases/weekly +# This script runs the high resolution cases found in ${HOMEgfs}/ci/cases/weekly # from the develop branch for the global-workflow repo that are intended to run on a weekly basis # from a cron job. When run it will clone and build a new branch from the EMC's global-workflow and # and create a pr using GitHub CLI by moving and replacing the yaml case files in # ${HOMEgfs}/ci/cases/weekly to {HOMEgfs}/ci/cases/pr. Then the requisite labels are added # so that the current BASH CI framework can then run these cases. Since this script -# creates a PR with the CI-Ready labels, the BASH CI framework will automatically run these cases +# creates a PR with the CI-Ready labels, the BASH CI framework will automatically run these cases # from that point so it is only required to run this script once from a single machine. ############################################################################################## @@ -27,7 +27,7 @@ export REPO_URL="ssh://git@ssh.github.com:443/NOAA-EMC/global-workflow.git" ################################################################ # Setup the relative paths to scripts and PS4 for better logging ################################################################ -HOMEgfs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" scriptname=$(basename "${BASH_SOURCE[0]}") echo "Begin ${scriptname} at $(date -u)" || true export PS4='+ $(basename ${BASH_SOURCE[0]})[${LINENO}]' @@ -36,11 +36,11 @@ export PS4='+ $(basename ${BASH_SOURCE[0]})[${LINENO}]' # Set up runtime environment variables for accounts on supported machines ######################################################################### -source "${HOMEgfs}/ush/detect_machine.sh" +source "${ROOT_DIR}/ush/detect_machine.sh" case ${MACHINE_ID} in hera | orion) echo "Running Automated Testing on ${MACHINE_ID}" - source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}" + source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}" ;; *) echo "Unsupported platform. Exiting with error." @@ -52,8 +52,8 @@ esac # setup runtime env for correct python install and git ###################################################### set +x -source "${HOMEgfs}/ush/module-setup.sh" -module use "${HOMEgfs}/modulefiles" +source "${ROOT_DIR}/ush/module-setup.sh" +module use "${ROOT_DIR}/modulefiles" module load "module_gwsetup.${MACHINE_ID}" set -x @@ -71,7 +71,7 @@ cd global-workflow || exit 1 git checkout -b "${branch}" ###################################################### -# move yaml files from ci/cases/weekly to ci/cases/pr +# move yaml files from ci/cases/weekly to ci/cases/pr # and push new branch for PR weekly CI tests to GitHub REPO_OWNER="emcbot" REPO_NAME="global-workflow" diff --git a/ci/scripts/run_ci.sh b/ci/scripts/run_ci.sh index 0ff3725be9..cdaafb337f 100755 --- a/ci/scripts/run_ci.sh +++ b/ci/scripts/run_ci.sh @@ -3,13 +3,13 @@ set -eux ##################################################################################### # -# Script description: BASH script for checking for cases in a given PR and +# Script description: BASH script for checking for cases in a given PR and # simply running rocotorun on each. This script is intended # to run from within a cron job in the CI Managers account # Abstract TODO ##################################################################################### -HOMEgfs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." >/dev/null 2>&1 && pwd )" scriptname=$(basename "${BASH_SOURCE[0]}") echo "Begin ${scriptname} at $(date -u)" || true export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]' @@ -18,11 +18,11 @@ export PS4='+ $(basename ${BASH_SOURCE})[${LINENO}]' # Set up runtime environment varibles for accounts on supproted machines ######################################################################### -source "${HOMEgfs}/ush/detect_machine.sh" +source "${ROOT_DIR}/ush/detect_machine.sh" case ${MACHINE_ID} in hera | orion) echo "Running Automated Testing on ${MACHINE_ID}" - source "${HOMEgfs}/ci/platforms/config.${MACHINE_ID}" + source "${ROOT_DIR}/ci/platforms/config.${MACHINE_ID}" ;; *) echo "Unsupported platform. Exiting with error." @@ -30,8 +30,8 @@ case ${MACHINE_ID} in ;; esac set +x -source "${HOMEgfs}/ush/module-setup.sh" -module use "${HOMEgfs}/modulefiles" +source "${ROOT_DIR}/ush/module-setup.sh" +module use "${ROOT_DIR}/modulefiles" module load "module_gwsetup.${MACHINE_ID}" module list set -eux @@ -47,7 +47,7 @@ pr_list_dbfile="${GFS_CI_ROOT}/open_pr_list.db" pr_list="" if [[ -f "${pr_list_dbfile}" ]]; then - pr_list=$("${HOMEgfs}/ci/scripts/pr_list_database.py" --display --dbfile "${pr_list_dbfile}" | grep -v Failed | grep Open | grep Running | awk '{print $1}' | head -"${max_concurrent_pr}") || true + pr_list=$("${ROOT_DIR}/ci/scripts/pr_list_database.py" --display --dbfile "${pr_list_dbfile}" | grep -v Failed | grep Open | grep Running | awk '{print $1}' | head -"${max_concurrent_pr}") || true fi if [[ -z "${pr_list}" ]]; then echo "no open and built PRs that are ready for the cases to advance with rocotorun .. exiting" diff --git a/parm/config/gefs/config.base.emc.dyn b/parm/config/gefs/config.base.emc.dyn index 5f2d826b65..e3e221c006 100644 --- a/parm/config/gefs/config.base.emc.dyn +++ b/parm/config/gefs/config.base.emc.dyn @@ -137,7 +137,7 @@ export DO_WAVE="NO" export DO_OCN="NO" export DO_ICE="NO" export DO_AERO="NO" -export CCPP_SUITE="@CCPP_SUITE@" +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." @@ -203,7 +203,7 @@ case "${APP}" in export DO_COUPLED="YES" export DO_OCN="YES" export DO_ICE="YES" - export CCPP_SUITE="FV3_GFS_v17_coupled_p8" + export CCPP_SUITE="FV3_GFS_v17_coupled_p8" # TODO: Does this include FV3_GFS_v17_p8? Can this be used instead of FV3_GFS_v17_p8 on L141 export confignamevarfornems="cpld" if [[ "${APP}" =~ A$ ]]; then @@ -263,7 +263,7 @@ export FLTFILEGFS="${PARMgfs}/post/postxconfig-NT-GEFS.txt" export FLTFILEGFSF00="${PARMgfs}/post/postxconfig-NT-GEFS-F00.txt" # Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL -export imp_physics=@IMP_PHYSICS@ +export imp_physics=8 # Shared parameters # DA engine diff --git a/parm/config/gfs/config.base.emc.dyn b/parm/config/gfs/config.base.emc.dyn index 06db406ddf..09d8897a31 100644 --- a/parm/config/gfs/config.base.emc.dyn +++ b/parm/config/gfs/config.base.emc.dyn @@ -145,14 +145,14 @@ export DO_WAVE="NO" export DO_OCN="NO" export DO_ICE="NO" export DO_AERO="NO" -export CCPP_SUITE="@CCPP_SUITE@" +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." # Set operational resolution -export OPS_RES="C768" # Do not change +export OPS_RES="C768" # Do not change # TODO: Why is this needed and where is it used? # Resolution specific parameters export LEVS=128 @@ -211,7 +211,7 @@ case "${APP}" in export DO_COUPLED="YES" export DO_OCN="YES" export DO_ICE="YES" - export CCPP_SUITE="FV3_GFS_v17_coupled_p8" + export CCPP_SUITE="FV3_GFS_v17_coupled_p8" # TODO: Does this include FV3_GFS_v17_p8? Can this be used instead of FV3_GFS_v17_p8 on L149 export confignamevarfornems="cpld" if [[ "${APP}" =~ A$ ]]; then @@ -283,7 +283,7 @@ export WRITE_DOPOST=".true." # WRITE_DOPOST=true, use inline POST export WRITE_NSFLIP=".true." # IAU related parameters -export DOIAU="YES" # Enable 4DIAU for control with 3 increments +export DOIAU="@DOIAU@" # Enable 4DIAU for control with 3 increments export IAUFHRS="3,6,9" export IAU_FHROT=${IAUFHRS%%,*} export IAU_DELTHRS=6 @@ -301,7 +301,7 @@ export lobsdiag_forenkf=".true." # fi # Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL -export imp_physics=@IMP_PHYSICS@ +export imp_physics=8 # Shared parameters # DA engine diff --git a/parm/config/gfs/config.ocnanal b/parm/config/gfs/config.ocnanal index 36519c7f35..ec45ddd288 100644 --- a/parm/config/gfs/config.ocnanal +++ b/parm/config/gfs/config.ocnanal @@ -5,17 +5,16 @@ echo "BEGIN: config.ocnanal" -export OBS_YAML_DIR=${HOMEgfs}/sorc/gdas.cd/parm/soca/obs/config +export OBS_YAML_DIR="${HOMEgfs}/sorc/gdas.cd/parm/soca/obs/config" export OBS_LIST=@SOCA_OBS_LIST@ -[[ -n "${OBS_LIST}" ]] || export OBS_LIST=${HOMEgfs}/sorc/gdas.cd/parm/soca/obs/obs_list.yaml -export OBS_YAML=${OBS_LIST} -export FV3JEDI_STAGE_YAML=${HOMEgfs}/sorc/gdas.cd/test/soca/testinput/dumy.yaml +export OBS_YAML="${OBS_LIST}" +export FV3JEDI_STAGE_YAML="${HOMEgfs}/sorc/gdas.cd/test/soca/testinput/dumy.yaml" export SOCA_INPUT_FIX_DIR=@SOCA_INPUT_FIX_DIR@ export SOCA_VARS=tocn,socn,ssh export SABER_BLOCKS_YAML=@SABER_BLOCKS_YAML@ export SOCA_NINNER=@SOCA_NINNER@ export CASE_ANL=@CASE_ANL@ -export DOMAIN_STACK_SIZE=116640000 #TODO: Make the stack size reolution dependent +export DOMAIN_STACK_SIZE=116640000 #TODO: Make the stack size resolution dependent export JEDI_BIN=${HOMEgfs}/sorc/gdas.cd/build/bin # R2D2 diff --git a/parm/config/gfs/yaml/defaults.yaml b/parm/config/gfs/yaml/defaults.yaml index 202efc2270..8c2b4ff22b 100644 --- a/parm/config/gfs/yaml/defaults.yaml +++ b/parm/config/gfs/yaml/defaults.yaml @@ -1,9 +1,11 @@ base: + DOIAU: "YES" DO_JEDIATMVAR: "NO" DO_JEDIATMENS: "NO" DO_JEDIOCNVAR: "NO" DO_JEDILANDDA: "NO" DO_MERGENSST: "NO" + aeroanl: IO_LAYOUT_X: 1 IO_LAYOUT_Y: 1 @@ -13,13 +15,13 @@ landanl: IO_LAYOUT_Y: 1 ocnanal: - SOCA_INPUT_FIX_DIR: '/scratch2/NCEPDEV/ocean/Guillaume.Vernieres/data/static/72x35x25' - CASE_ANL: 'C48' - SOCA_OBS_LIST: '' - COMIN_OBS: '/scratch2/NCEPDEV/marineda/r2d2' - SABER_BLOCKS_YAML: '' - SOCA_NINNER: 50 - R2D2_OBS_SRC: 'gdas_marine' - R2D2_OBS_DUMP: 's2s_v1' + SOCA_INPUT_FIX_DIR: "/scratch2/NCEPDEV/ocean/Guillaume.Vernieres/data/static/72x35x25/soca" # TODO: These need to go to glopara fix space. @guillaumevernieres will open an issue + CASE_ANL: "C48" + COMIN_OBS: "/scratch2/NCEPDEV/marineda/r2d2-v2-v3" # TODO: make platform agnostic + SOCA_OBS_LIST: "{{ HOMEgfs }}/sorc/gdas.cd/parm/soca/obs/obs_list.yaml" + SOCA_NINNER: 100 + R2D2_OBS_SRC: "gdas_marine" + R2D2_OBS_DUMP: "s2s_v1" + SABER_BLOCKS_YAML: "" NICAS_RESOL: 1 NICAS_GRID_SIZE: 15000 diff --git a/ci/scripts/create_experiment.py b/workflow/create_experiment.py similarity index 62% rename from ci/scripts/create_experiment.py rename to workflow/create_experiment.py index 3c5096e875..c343f1d798 100755 --- a/ci/scripts/create_experiment.py +++ b/workflow/create_experiment.py @@ -3,7 +3,7 @@ """ Basic python script to create an experiment directory on the fly from a given yaml file for the arguments to the two scripts below in ${HOMEgfs}/workflow -where ${HOMEgfs} is specified within the input yaml file. +where ${HOMEgfs} is determined from the location of this script. ${HOMEgfs}/workflow/setup_expt.py ${HOMEgfs}/workflow/setup_xml.py @@ -18,22 +18,21 @@ """ import os -import sys + from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter from pathlib import Path -from wxflow import YAMLFile, Logger, logit +from wxflow import AttrDict, parse_j2yaml, Logger, logit + +import setup_expt +import setup_xml _here = os.path.dirname(__file__) -_top = os.path.abspath(os.path.join(os.path.abspath(_here), '../..')) -logger = Logger(level='DEBUG', colored_log=True) +_top = os.path.abspath(os.path.join(os.path.abspath(_here), '..')) - -# TODO: move create_experiment.py to workflow/ and remove this sys.path.insert business -sys.path.insert(0, os.path.join(_top, 'workflow')) -import setup_expt -import setup_xml +# Setup the logger +logger = Logger(level=os.environ.get("LOGGING_LEVEL", "INFO"), colored_log=True) @logit(logger) @@ -61,8 +60,8 @@ def input_args(): parser = ArgumentParser(description=description, formatter_class=ArgumentDefaultsHelpFormatter) - parser.add_argument('--yaml', help='full path to yaml file describing the experiment configuration', type=str, required=True) - parser.add_argument('--dir', help='full path to global-workflow build', type=str, required=True) + parser.add_argument( + '--yaml', help='full path to yaml file describing the experiment configuration', type=Path, required=True) return parser.parse_args() @@ -70,21 +69,28 @@ def input_args(): if __name__ == '__main__': user_inputs = input_args() - HOMEgfs = Path.absolute(Path(user_inputs.dir)) - testconf = YAMLFile(path=user_inputs.yaml) - experiment_dir = Path.absolute(Path.joinpath(Path(testconf.arguments.expdir), Path(testconf.arguments.pslot))) + + # Create a dictionary to pass to parse_j2yaml for parsing the yaml file + data = AttrDict(HOMEgfs=_top) + data.update(os.environ) + testconf = parse_j2yaml(path=user_inputs.yaml, data=data) # Create a list of arguments to setup_expt.py - setup_expt_args = [testconf.experiment.type, testconf.experiment.mode] # TODO: rename 'type' as 'system' in case.yaml + setup_expt_args = [testconf.experiment.system, testconf.experiment.mode] for kk, vv in testconf.arguments.items(): setup_expt_args.append(f"--{kk}") setup_expt_args.append(str(vv)) - logger.info(f'Call: setup_expt.main()') + logger.info(f"Call: setup_expt.main()") + logger.debug(f"setup_expt.py {' '.join(setup_expt_args)}") setup_expt.main(setup_expt_args) # Create a list of arguments to setup_xml.py + experiment_dir = Path.absolute(Path.joinpath( + Path(testconf.arguments.expdir), Path(testconf.arguments.pslot))) + setup_xml_args = [str(experiment_dir)] logger.info(f"Call: setup_xml.main()") + logger.debug(f"setup_xml.py {' '.join(setup_xml_args)}") setup_xml.main(setup_xml_args) diff --git a/workflow/setup_expt.py b/workflow/setup_expt.py index c9aa9188f6..a9810ec3f2 100755 --- a/workflow/setup_expt.py +++ b/workflow/setup_expt.py @@ -343,10 +343,6 @@ def edit_baseconfig(host, inputs, yaml_dict): } tmpl_dict = dict(tmpl_dict, **extend_dict) - # All apps and modes now use the same physics and CCPP suite by default - extend_dict = {"@CCPP_SUITE@": "FV3_GFS_v17_p8", "@IMP_PHYSICS@": 8} - tmpl_dict = dict(tmpl_dict, **extend_dict) - try: tmpl_dict = dict(tmpl_dict, **get_template_dict(yaml_dict['base'])) except KeyError: