diff --git a/.github/ISSUE_TEMPLATE/NCO_bug_report.yml b/.github/ISSUE_TEMPLATE/NCO_bug_report.yml index 79632779aa..a7016d838b 100644 --- a/.github/ISSUE_TEMPLATE/NCO_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/NCO_bug_report.yml @@ -1,6 +1,7 @@ name: NCO Bug Report description: Report something that is incorrect or broken labels: ["nco-bug", "triage"] +type: ["bug"] assignees: - aerorahul diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d43d2eb3d7..1b3a11a9c8 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,6 +1,7 @@ name: Bug Report description: Report something that is incorrect or broken -labels: ["bug", "triage"] +labels: ["triage"] +type: ["bug"] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/dump_request.yml b/.github/ISSUE_TEMPLATE/dump_request.yml index 4481e7f6e0..b3bb5c97d2 100644 --- a/.github/ISSUE_TEMPLATE/dump_request.yml +++ b/.github/ISSUE_TEMPLATE/dump_request.yml @@ -1,6 +1,7 @@ name: Global Observation Dump Request description: Request additional dates be added to a machine's global dump archive (GDA) or introduce experimental dump data to the GDA labels: ["Static Data Mgmt"] +type: ["task"] assignees: - KateFriedman-NOAA - WalterKolczynski-NOAA diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 7e0ddb2459..dd1ebedf7a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,6 +1,7 @@ name: Feature Request description: Request new capability -labels: ["feature", "triage"] +labels: ["triage"] +type: ["feature"] body: - type: markdown diff --git a/.github/ISSUE_TEMPLATE/production_update.yml b/.github/ISSUE_TEMPLATE/production_update.yml index cb1fb588d8..70ba2544cf 100644 --- a/.github/ISSUE_TEMPLATE/production_update.yml +++ b/.github/ISSUE_TEMPLATE/production_update.yml @@ -1,6 +1,7 @@ name: Production Update description: Begin the process of an operational production update labels: ["production update", "triage"] +type: ["feature"] assignees: - WalterKolczynski-NOAA - KateFriedman-NOAA diff --git a/.github/ISSUE_TEMPLATE/static_data.yml b/.github/ISSUE_TEMPLATE/static_data.yml index f29f155cf8..13d684f522 100644 --- a/.github/ISSUE_TEMPLATE/static_data.yml +++ b/.github/ISSUE_TEMPLATE/static_data.yml @@ -1,6 +1,7 @@ name: Static Data Update description: Request static data be added or updated labels: ["Static Data Mgmt"] +type: ["task"] assignees: - KateFriedman-NOAA - WalterKolczynski-NOAA diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index 213b49081a..f2676dd92f 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -25,10 +25,13 @@ export APREFIX="${RUN}.t${cyc}z." export GPREFIX="${GDUMP_ENS}.t${gcyc}z." MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ - COM_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL + COMIN_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL + +MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl -rx \ + COMOUT_ATMOS_ANALYSIS_STAT:COM_ATMOS_ANALYSIS_TMPL MEMDIR="ensstat" RUN="enkfgdas" YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ - COM_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL + COMIN_ATMOS_HISTORY_STAT_PREV:COM_ATMOS_HISTORY_TMPL ############################################################### @@ -43,7 +46,7 @@ status=$? # Send Alerts ############################################## if [ ${SENDDBN} = YES ] ; then - "${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COM_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat" + "${DBNROOT}/bin/dbn_alert" "MODEL" "ENKF1_MSC_enkfstat" "${job}" "${COMOUT_ATMOS_ANALYSIS_STAT}/${APREFIX}enkfstat" fi diff --git a/parm/config/gefs/config.wave b/parm/config/gefs/config.wave index be37e7edb2..50661fce15 100644 --- a/parm/config/gefs/config.wave +++ b/parm/config/gefs/config.wave @@ -122,7 +122,6 @@ else export WAVEICE_FID=glix_10m fi -export WAVECUR_DID=rtofs if [[ ${DO_OCN} == "YES" ]]; then export WW3CURINP='CPL' export WAVECUR_FID= diff --git a/parm/config/gfs/config.aeroanlgenb b/parm/config/gfs/config.aeroanlgenb index d1f0ed10bd..075b4be90b 100644 --- a/parm/config/gfs/config.aeroanlgenb +++ b/parm/config/gfs/config.aeroanlgenb @@ -12,17 +12,16 @@ export JEDI_CONFIG_YAML="${PARMgfs}/gdas/aero_bmat_jedi_config.yaml.j2" export JCB_BASE_YAML="${PARMgfs}/gdas/aero/jcb-base.yaml.j2" export AERO_BMATRIX_STAGE_TMPL="${PARMgfs}/gdas/aero_stage_bmatrix_bkg.yaml.j2" export AERO_BMATRIX_FINALIZE_TMPL="${PARMgfs}/gdas/aero_finalize_bmatrix_bkg.yaml.j2" -export aero_diffusion_iter=10 -export aero_diffusion_horiz_len=2500e3 -export aero_diffusion_fixed_val=1.0 +export aero_diffusion_iter=200 +export aero_diffusion_horiz_len=300e3 +export aero_diffusion_fixed_val=20.0 export npx_clim_b=97 export npy_clim_b=97 export aero_diagb_weight=0.9 export aero_staticb_rescaling_factor=2.0 -export aero_diagb_rescale=20.0 export aero_diagb_n_halo=4 export aero_diagb_n_neighbors=16 -export aero_diagb_smooth_horiz_iter=0 +export aero_diagb_smooth_horiz_iter=200 export aero_diagb_smooth_vert_iter=0 echo "END: config.aeroanlgenb" diff --git a/parm/config/gfs/config.com b/parm/config/gfs/config.com index 8b6da376f3..649f82e3e3 100644 --- a/parm/config/gfs/config.com +++ b/parm/config/gfs/config.com @@ -36,7 +36,7 @@ echo "BEGIN: config.com" # if [[ "${RUN_ENVIR:-emc}" == "nco" ]]; then COM_OBS_TMPL=$(compath.py "${envir}/obsproc/${obsproc_ver}")'/${RUN}.${YMD}/${HH}/atmos' - COM_RTOFS_TMPL=$(compath.py "${envir}/${WAVECUR_DID}/${rtofs_ver}") + COM_RTOFS_TMPL=$(compath.py "${envir}/rtofs/${rtofs_ver}") else COM_OBS_TMPL='${ROTDIR}/${RUN}.${YMD}/${HH}/obs' COM_RTOFS_TMPL='${DMPDIR}' diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index 4cc77d7339..95d6ad117d 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -399,19 +399,23 @@ case ${step} in "C1152" | "C768") layout_x=8 layout_y=8 + walltime="00:30:00" ;; "C384") layout_x=6 layout_y=6 + walltime="00:20:00" ;; "C192" | "C96") layout_x=4 layout_y=4 + walltime="00:10:00" ;; "C48" ) # this case is for testing only layout_x=1 layout_y=1 + walltime="00:10:00" ;; *) echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}" @@ -420,7 +424,6 @@ case ${step} in export layout_x export layout_y - walltime="00:10:00" ntasks=1 threads_per_task=1 tasks_per_node=$(( max_tasks_per_node / threads_per_task )) @@ -428,23 +431,34 @@ case ${step} in ;; "aeroanlvar") + + threads_per_task=1 + case ${CASE} in "C1152" | "C768") layout_x=8 layout_y=8 + walltime="00:45:00" + tasks_per_node=24 ;; "C384") layout_x=6 layout_y=6 + walltime="00:30:00" + tasks_per_node=24 ;; "C192" | "C96") layout_x=4 layout_y=4 + walltime="00:20:00" + tasks_per_node=$(( max_tasks_per_node / threads_per_task )) ;; "C48" ) # this case is for testing only layout_x=1 layout_y=1 + walltime="00:20:00" + tasks_per_node=$(( max_tasks_per_node / threads_per_task )) ;; *) echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}" @@ -454,10 +468,7 @@ case ${step} in export layout_x export layout_y - walltime="00:30:00" ntasks=$(( layout_x * layout_y * 6 )) - threads_per_task=1 - tasks_per_node=$(( max_tasks_per_node / threads_per_task )) export is_exclusive=True ;; @@ -498,11 +509,36 @@ case ${step} in "aeroanlfinal") - walltime="00:10:00" + case ${CASE} in + "C1152" | "C768") + layout_x=8 + layout_y=8 + walltime="00:30:00" + ;; + "C384") + layout_x=6 + layout_y=6 + walltime="00:20:00" + ;; + "C192" | "C96") + layout_x=4 + layout_y=4 + walltime="00:10:00" + ;; + "C48" ) + # this case is for testing only + layout_x=1 + layout_y=1 + walltime="00:10:00" + ;; + *) + echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}" + exit 4 + esac ntasks=1 threads_per_task=1 tasks_per_node=$(( max_tasks_per_node / threads_per_task )) - memory="3072M" + memory="13072M" ;; "marineanlinit") @@ -891,6 +927,7 @@ case ${step} in declare -x "threads_per_task"="${UFS_THREADS}" tasks_per_node=$(( max_tasks_per_node / threads_per_task )) + # TODO: make walltimes APP dependent case "${CASE}" in "C48" | "C96" | "C192") declare -x "walltime_gdas"="00:20:00" @@ -906,7 +943,7 @@ case ${step} in ;; "C768" | "C1152") # Not valid resolutions for ensembles - declare -x "walltime_gdas"="00:50:00" + declare -x "walltime_gdas"="01:20:00" declare -x "walltime_gfs"="06:00:00" ;; *) diff --git a/parm/config/gfs/config.resources.WCOSS2 b/parm/config/gfs/config.resources.WCOSS2 index be55214cac..5ca762b0a7 100644 --- a/parm/config/gfs/config.resources.WCOSS2 +++ b/parm/config/gfs/config.resources.WCOSS2 @@ -5,6 +5,7 @@ case ${step} in "prep") export is_exclusive=True + export tasks_per_node=5 export memory="480GB" ;; diff --git a/parm/config/gfs/config.wave b/parm/config/gfs/config.wave index 722e1122e4..6760e0fe2b 100644 --- a/parm/config/gfs/config.wave +++ b/parm/config/gfs/config.wave @@ -152,7 +152,6 @@ else export WAVEICE_FID=glix_10m fi -export WAVECUR_DID=rtofs if [[ ${DO_OCN} == "YES" ]]; then export WW3CURINP='CPL' export WAVECUR_FID= diff --git a/scripts/exgdas_enkf_update.sh b/scripts/exgdas_enkf_update.sh index 752cb07a6b..9517544b1a 100755 --- a/scripts/exgdas_enkf_update.sh +++ b/scripts/exgdas_enkf_update.sh @@ -95,7 +95,7 @@ GSI_SOILANAL=${GSI_SOILANAL:-"NO"} ################################################################################ -ATMGES_ENSMEAN="${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf006.ensmean.nc" +ATMGES_ENSMEAN="${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf006.ensmean.nc" LONB_ENKF=${LONB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_xt)} # get LONB_ENKF LATB_ENKF=${LATB_ENKF:-$($NCLEN $ATMGES_ENSMEAN grid_yt)} # get LATB_ENFK LEVS_ENKF=${LEVS_ENKF:-$($NCLEN $ATMGES_ENSMEAN pfull)} # get LEVS_ENFK @@ -142,7 +142,7 @@ $NLN $ANAVINFO anavinfo $NLN $VLOCALEIG vlocal_eig.dat # Bias correction coefficients based on the ensemble mean -${NLN} "${COM_ATMOS_ANALYSIS_STAT}/${GBIASe}" "satbias_in" +${NLN} "${COMIN_ATMOS_ANALYSIS_STAT}/${GBIASe}" "satbias_in" ################################################################################ @@ -152,13 +152,13 @@ if [ $USE_CFP = "YES" ]; then cat > $DATA/untar.sh << EOFuntar #!/bin/sh memchar=\$1 -COM_ATMOS_ANALYSIS=\$2 +COMOUT_ATMOS_ANALYSIS=\$2 flist="$CNVSTAT $OZNSTAT $RADSTAT" for ftype in \$flist; do if [ \$memchar = "ensmean" ]; then - fname=\${COM_ATMOS_ANALYSIS}/\${ftype}.ensmean + fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype}.ensmean else - fname=\${COM_ATMOS_ANALYSIS}/\${ftype} + fname=\${COMOUT_ATMOS_ANALYSIS}/\${ftype} fi tar -xvf \$fname done @@ -171,13 +171,13 @@ fi flist="$CNVSTAT $OZNSTAT $RADSTAT" if [ $USE_CFP = "YES" ]; then - echo "${nm} ${DATA}/untar.sh ensmean ${COM_ATMOS_ANALYSIS_STAT}" | tee -a "${DATA}/mp_untar.sh" + echo "${nm} ${DATA}/untar.sh ensmean ${COMIN_ATMOS_ANALYSIS_STAT}" | tee -a "${DATA}/mp_untar.sh" if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=$((nm+1)) fi else for ftype in $flist; do - fname="${COM_ATMOS_ANALYSIS_STAT}/${ftype}.ensmean" + fname="${COMIN_ATMOS_ANALYSIS_STAT}/${ftype}.ensmean" tar -xvf $fname done fi @@ -191,55 +191,55 @@ for imem in $(seq 1 $NMEM_ENS); do memchar="mem"$(printf %03i $imem) MEMDIR=${gmemchar} RUN=${GDUMP_ENS} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -x \ - COM_ATMOS_HISTORY_MEM_PREV:COM_ATMOS_HISTORY_TMPL + COMIN_ATMOS_HISTORY_MEM_PREV:COM_ATMOS_HISTORY_TMPL MEMDIR=${memchar} YMD=${PDY} HH=${cyc} declare_from_tmpl -x \ - COM_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL + COMOUT_ATMOS_ANALYSIS_MEM:COM_ATMOS_ANALYSIS_TMPL if [ $lobsdiag_forenkf = ".false." ]; then if [ $USE_CFP = "YES" ]; then - echo "${nm} ${DATA}/untar.sh ${memchar} ${COM_ATMOS_ANALYSIS_MEM}" | tee -a "${DATA}/mp_untar.sh" + echo "${nm} ${DATA}/untar.sh ${memchar} ${COMOUT_ATMOS_ANALYSIS_MEM}" | tee -a "${DATA}/mp_untar.sh" if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=$((nm+1)) fi else for ftype in $flist; do - fname="${COM_ATMOS_ANALYSIS_MEM}/${ftype}" + fname="${COMOUT_ATMOS_ANALYSIS_MEM}/${ftype}" tar -xvf $fname done fi fi - mkdir -p "${COM_ATMOS_ANALYSIS_MEM}" + mkdir -p "${COMOUT_ATMOS_ANALYSIS_MEM}" for FHR in $nfhrs; do - ${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}atmf00${FHR}${ENKF_SUFFIX}.nc" \ "sfg_${PDY}${cyc}_fhr0${FHR}_${memchar}" if [ $GSI_SOILANAL = "YES" ]; then - ${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}${ENKF_SUFFIX}.nc" \ "bfg_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi if [ $cnvw_option = ".true." ]; then - ${NLN} "${COM_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_MEM_PREV}/${GPREFIX}sfcf00${FHR}.nc" \ "sfgsfc_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi if [ $FHR -eq 6 ]; then if [ $DO_CALC_INCREMENT = "YES" ]; then - ${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atmanl.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmanl.nc" \ "sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}" else - ${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atminc.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atminc.nc" \ "incr_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi else if [ $DO_CALC_INCREMENT = "YES" ]; then - ${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atma00${FHR}.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atma00${FHR}.nc" \ "sanl_${PDY}${cyc}_fhr0${FHR}_${memchar}" else - ${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}atmi00${FHR}.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}atmi00${FHR}.nc" \ "incr_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi fi if [ $GSI_SOILANAL = "YES" ]; then - ${NLN} "${COM_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \ + ${NLN} "${COMOUT_ATMOS_ANALYSIS_MEM}/${APREFIX}sfci00${FHR}.nc" \ "sfcincr_${PDY}${cyc}_fhr0${FHR}_${memchar}" fi done @@ -248,10 +248,10 @@ done # Ensemble mean guess for FHR in $nfhrs; do - ${NLN} "${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf00${FHR}.ensmean.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}atmf00${FHR}.ensmean.nc" \ "sfg_${PDY}${cyc}_fhr0${FHR}_ensmean" if [ $cnvw_option = ".true." ]; then - ${NLN} "${COM_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \ + ${NLN} "${COMIN_ATMOS_HISTORY_STAT_PREV}/${GPREFIX}sfcf00${FHR}.ensmean.nc" \ "sfgsfc_${PDY}${cyc}_fhr0${FHR}_ensmean" fi done @@ -412,7 +412,7 @@ $APRUN_ENKF ${DATA}/$(basename $ENKFEXEC) 1>stdout 2>stderr export err=$?; err_chk # Cat runtime output files. -cat stdout stderr > "${COM_ATMOS_ANALYSIS_STAT}/${ENKFSTAT}" +cat stdout stderr > "${COMOUT_ATMOS_ANALYSIS_STAT}/${ENKFSTAT}" ################################################################################ # Postprocessing diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh index f83ead2c22..bf4c21e493 100755 --- a/scripts/exgfs_wave_prep.sh +++ b/scripts/exgfs_wave_prep.sh @@ -19,7 +19,7 @@ # # # COM inputs: # # - ${COMIN_WAVE_PREP}/${RUN}wave.mod_def.${grdID} # -# - ${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f#HHH_prog.nc # +# - ${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f#HHH_prog.nc # # # # COM outputs: # # - ${COMOUT_WAVE_PREP}/${RUN}wave.${WAVECUR_FID}.$cycle.cur # @@ -329,19 +329,19 @@ source "${USHgfs}/preamble.sh" ymdh_rtofs=$ymdh_beg if [ "$FHMAX_WAV_CUR" -le 72 ]; then - rtofsfile1="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f024_prog.nc" - rtofsfile2="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f048_prog.nc" - rtofsfile3="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f072_prog.nc" + rtofsfile1="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f024_prog.nc" + rtofsfile2="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f048_prog.nc" + rtofsfile3="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f072_prog.nc" if [ ! -f $rtofsfile1 ] || [ ! -f $rtofsfile2 ] || [ ! -f $rtofsfile3 ]; then #Needed current files are not available, so use RTOFS from previous day export RPDY=$($NDATE -24 ${RPDY}00 | cut -c1-8) fi else - rtofsfile1="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f096_prog.nc" - rtofsfile2="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f120_prog.nc" - rtofsfile3="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f144_prog.nc" - rtofsfile4="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f168_prog.nc" - rtofsfile5="${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f192_prog.nc" + rtofsfile1="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f096_prog.nc" + rtofsfile2="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f120_prog.nc" + rtofsfile3="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f144_prog.nc" + rtofsfile4="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f168_prog.nc" + rtofsfile5="${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_f192_prog.nc" if [ ! -f $rtofsfile1 ] || [ ! -f $rtofsfile2 ] || [ ! -f $rtofsfile3 ] || [ ! -f $rtofsfile4 ] || [ ! -f $rtofsfile5 ]; then #Needed current files are not available, so use RTOFS from previous day @@ -367,8 +367,8 @@ source "${USHgfs}/preamble.sh" fhr_rtofs=$(${NHOUR} ${ymdh_rtofs} ${RPDY}00) fh3_rtofs=$(printf "%03d" "${fhr_rtofs#0}") - curfile1h=${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc - curfile3h=${COMIN_RTOFS}/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + curfile1h=${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + curfile3h=${COMIN_RTOFS}/rtofs.${RPDY}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc if [ -s ${curfile1h} ] && [ "${FLGHF}" = "T" ] ; then curfile=${curfile1h} @@ -449,7 +449,7 @@ source "${USHgfs}/preamble.sh" set_trace fi - files=$(ls ${WAVECUR_DID}.* 2> /dev/null) + files=$(ls rtofs.* 2> /dev/null) if [ -z "$files" ] then diff --git a/ush/load_ufsda_modules.sh b/ush/load_ufsda_modules.sh index 3af843f8fe..ab75af0253 100755 --- a/ush/load_ufsda_modules.sh +++ b/ush/load_ufsda_modules.sh @@ -41,7 +41,6 @@ case "${MACHINE_ID}" in # TODO: Add path to GDASApp libraries and cray-mpich as temporary patches # TODO: Remove LD_LIBRARY_PATH lines as soon as permanent solutions are available export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOMEgfs}/sorc/gdas.cd/build/lib" - export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/cray/pe/mpich/8.1.19/ofi/intel/19.0/lib" fi module load "${MODS}/${MACHINE_ID}" ncdump=$( command -v ncdump ) diff --git a/ush/module-setup.sh b/ush/module-setup.sh index 2429963d70..158efd2569 100755 --- a/ush/module-setup.sh +++ b/ush/module-setup.sh @@ -52,7 +52,7 @@ elif [[ ${MACHINE_ID} = s4* ]] ; then elif [[ ${MACHINE_ID} = wcoss2 ]]; then # We are on WCOSS2 # Ignore default modules of the same version lower in the search path (req'd by spack-stack) - #export LMOD_TMOD_FIND_FIRST=yes #TODO: Uncomment this when using spack-stack + #export LMOD_TMOD_FIND_FIRST=yes #TODO: Uncomment this when using spack-stack for the entire workflow module reset elif [[ ${MACHINE_ID} = cheyenne* ]] ; then diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh index 60e8d2a337..34f8b80da0 100755 --- a/ush/wave_grib2_sbs.sh +++ b/ush/wave_grib2_sbs.sh @@ -169,11 +169,11 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then fi if (( fhr > 0 )); then - ${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" -grib "${com_dir}/${outfile}" + ${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" -grib "${outfile}" err=$? else ${WGRIB2} gribfile -set_date "${PDY}${cyc}" -set_ftime "${fhr} hour fcst" \ - -set table_1.4 1 -set table_1.2 1 -grib "${com_dir}/${outfile}" + -set table_1.4 1 -set table_1.2 1 -grib "${outfile}" err=$? fi @@ -183,27 +183,52 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then echo '********************************************* ' echo "*** FATAL ERROR : ERROR IN ${pgm} *** " # FIXME: This is not an error in $pgm, but in WGRIB2 echo '********************************************* ' - echo ' ' + echo " " set_trace exit 3 fi # Create index - ${WGRIB2} -s "${com_dir}/${outfile}" > "${com_dir}/${outfile}.idx" + ${WGRIB2} -s "${outfile}" > "${outfile}.idx" - # Create grib2 subgrid is this is the source grid + # Create grib2 subgrid if this is the source grid if [[ "${grdID}" = "${WAV_SUBGRBSRC}" ]]; then for subgrb in ${WAV_SUBGRB}; do subgrbref=$(echo ${!subgrb} | cut -d " " -f 1-20) subgrbnam=$(echo ${!subgrb} | cut -d " " -f 21) subgrbres=$(echo ${!subgrb} | cut -d " " -f 22) subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2" - ${COPYGB2} -g "${subgrbref}" -i0 -x "${com_dir}/${outfile}" "${com_dir}/${subfnam}" - ${WGRIB2} -s "${com_dir}/${subfnam}" > "${com_dir}/${subfnam}.idx" + ${COPYGB2} -g "${subgrbref}" -i0 -x "${outfile}" "${subfnam}" + ${WGRIB2} -s "${subfnam}" > "${subfnam}.idx" done fi # 1.e Save in /com + # Move grib files to COM directory + if [[ -s "${outfile}" ]] && [[ -s "${outfile}.idx" ]]; then + cpfs "${outfile}" "${com_dir}/${outfile}" + cpfs "${outfile}.idx" "${com_dir}/${outfile}.idx" + echo "Copied ${outfile} and ${outfile}.idx from ${GRIBDATA} to COM" + else + echo "FATAL ERROR: ${outfile} and ${outfile}.idx not found in ${GRIBDATA} to copy to COM" + exit 4 + fi + + if [[ "${grdID}" = "${WAV_SUBGRBSRC}" ]]; then + for subgrb in ${WAV_SUBGRB}; do + subgrbnam=$(echo "${!subgrb}" | cut -d " " -f 21) + subgrbres=$(echo "${!subgrb}" | cut -d " " -f 22) + subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2" + if [[ -s "${subfnam}" ]] && [[ -s "${subfnam}.idx" ]]; then + cpfs "${subfnam}" "${com_dir}/${subfnam}" + cpfs "${subfnam}.idx" "${com_dir}/${subfnam}.idx" + echo "Copied ${subfnam} and ${subfnam}.idx from ${GRIBDATA} to COM" + else + echo "FATAL ERROR: ${subfnam} and ${subfnam}.idx not found in ${GRIBDATA} to copy to COM" + exit 4 + fi + done + fi if [[ ! -s "${com_dir}/${outfile}" ]]; then set +x @@ -232,16 +257,14 @@ if [[ ! -s "${com_dir}/${outfile}.idx" ]]; then if [[ "${SENDDBN}" = 'YES' ]] && [[ ${outfile} != *global.0p50* ]]; then set +x - echo " Alerting GRIB file as ${com_dir}/${outfile}" - echo " Alerting GRIB index file as ${com_dir}/${outfile}.idx" + echo " Alerting GRIB file as ${outfile}" + echo " Alerting GRIB index file as ${outfile}.idx" set_trace "${DBNROOT}/bin/dbn_alert" MODEL "${alertName}_WAVE_GB2" "${job}" "${com_dir}/${outfile}" "${DBNROOT}/bin/dbn_alert" MODEL "${alertName}_WAVE_GB2_WIDX" "${job}" "${com_dir}/${outfile}.idx" else echo "${outfile} is global.0p50 or SENDDBN is NO, no alert sent" fi - - # --------------------------------------------------------------------------- # # 3. Clean up the directory diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh index fd7180add6..e24966b5d5 100755 --- a/ush/wave_grid_interp_sbs.sh +++ b/ush/wave_grid_interp_sbs.sh @@ -93,7 +93,7 @@ source "${USHgfs}/preamble.sh" for ID in ${waveGRD} ${grdID}; do ${NLN} "${DATA}/mod_def.${ID}" "mod_def.${ID}" done - + # --------------------------------------------------------------------------- # # 1. Generate GRID file with all data diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh index cfd499330f..2315d483c6 100755 --- a/ush/wave_prnc_cur.sh +++ b/ush/wave_prnc_cur.sh @@ -93,6 +93,6 @@ then exit 4 fi -mv -f current.ww3 ${DATA}/${WAVECUR_DID}.${ymdh_rtofs} +mv -f current.ww3 ${DATA}/rtofs.${ymdh_rtofs} cd ${DATA}