diff --git a/scripts/exwave_init.sh b/scripts/exwave_init.sh index 848222d5ed..8cb755ec18 100755 --- a/scripts/exwave_init.sh +++ b/scripts/exwave_init.sh @@ -14,6 +14,7 @@ # Script history log: # 2019-05-06 J-Henrique Alves First Version. # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # diff --git a/scripts/exwave_post_sbs.sh b/scripts/exwave_post_sbs.sh index 8d637f0b2b..f6c6806b80 100755 --- a/scripts/exwave_post_sbs.sh +++ b/scripts/exwave_post_sbs.sh @@ -19,7 +19,8 @@ # wave_tar.sh : tars the spectral and bulletin multiple files # # Script history log: -# 2019-12-06 J-Henrique Alves First Version adapted from HTolman post.sh 2007 +# 2019-12-06 J-Henrique Alves: First Version adapted from HTolman post.sh 2007 +# 2020-06-10 J-Henrique Alves: Porting to R&D machine Hera # # $Id$ # @@ -516,49 +517,7 @@ export GRDIDATA=${DATA}/output_$YMDHMS ln -fs $DATA/mod_def.${waveuoutpGRD} mod_def.ww3 - if [ $fhr = $fhrp ] - then - iwait=0 - pfile=$COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} - while [ ! -s ${pfile} ]; do sleep 10; ((iwait++)) && ((iwait==$iwaitmax)) && break ; echo $iwait; done - if [ $iwait -eq $iwaitmax ]; then - echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD - echo ' ' - [[ "$LOUD" = YES ]] && set -x - postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD - err=6; export err;${errchk} - exit $err - fi - ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} - - if [ "$DOSPC_WAV" = 'YES' ] - then - export dtspec=3600. - for buoy in $buoys - do - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec > spec_$buoy.out 2>&1" >> ${fcmdnow} - done - fi - - if [ "$DOIBP_WAV" = 'YES' ] - then - export dtspec=3600. - for buoy in $ibpoints - do - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh ibp > ibp_$buoy.out 2>&1" >> ${fcmdnow} - done - fi - - if [ "$DOBLL_WAV" = 'YES' ] - then - export dtspec=3600. - for buoy in $buoys - do - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull > bull_$buoy.out 2>&1" >> ${fcmdnow} - done - fi - - fi +# Gridded data (main part, need to be run side-by-side with forecast if [ $fhr = $fhrg ] then @@ -582,13 +541,14 @@ if [ "$DOGRI_WAV" = 'YES' ] then nigrd=1 + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP for grdID in $waveinterpGRD do case $grdID in glo_15mxt) ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ;; glo_30mxt) ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ;; esac - echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} if [ "$DOGRB_WAV" = 'YES' ] then gribFL=\'`echo ${OUTPARS_WAV}`\' @@ -596,11 +556,13 @@ glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;; esac - echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} fi - echo "${fcmdigrd}.${nigrd}" >> ${fcmdnow} + echo "pwd" >> ${fcmdnow} + echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow} chmod 744 ${fcmdigrd}.${nigrd} nigrd=$((nigrd+1)) + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=`expr $nm + 1` ; fi # Increment counter for fcmdigrd done fi @@ -620,12 +582,85 @@ so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; esac - echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} + done + fi + + fi + +# Point output part (can be split or become meta-task to reduce resource usage) + if [ $fhr = $fhrp ] + then + iwait=0 + pfile=$COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} + while [ ! -s ${pfile} ]; do sleep 10; ((iwait++)) && ((iwait==$iwaitmax)) && break ; echo $iwait; done + if [ $iwait -eq $iwaitmax ]; then + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD + err=6; export err;${errchk} + exit $err + fi + ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} + + if [ "$DOSPC_WAV" = 'YES' ] + then + export dtspec=3600. + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec > spec_$buoy.out 2>&1" >> ${fcmdnow} + done + fi + + if [ "$DOIBP_WAV" = 'YES' ] + then + export dtspec=3600. + for buoy in $ibpoints + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh ibp > ibp_$buoy.out 2>&1" >> ${fcmdnow} + done + fi + + if [ "$DOBLL_WAV" = 'YES' ] + then + export dtspec=3600. + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull > bull_$buoy.out 2>&1" >> ${fcmdnow} done fi fi + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l ${fcmdnow} | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' ${fcmdnow} ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdmfile.$nfile + echo "$nfile cmdmfile.$nfile" >> cmdmprog + chmod 744 cmdmfile.$nfile + fi + echo $line >> cmdmfile.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + wavenproc=`wc -l ${fcmdnow} | awk '{print $1}'` wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` @@ -638,7 +673,11 @@ if [ "$wavenproc" -gt '1' ] then - ${wavempexec} ${wavenproc} ${wave_mpmd} ${fcmdnow} + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprog + else + ${wavempexec} ${wavenproc} ${wave_mpmd} ${fcmdnow} + fi exit=$? else chmod 744 ${fcmdnow} @@ -700,15 +739,31 @@ # 6.b Spectral data files + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0; fi + if [ "$DOIBP_WAV" = 'YES' ] then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + else + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + fi fi if [ "$DOSPC_WAV" = 'YES' ] then - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + else + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + fi fi wavenproc=`wc -l cmdtarfile | awk '{print $1}'` @@ -723,7 +778,11 @@ if [ "$wavenproc" -gt '1' ] then - ${wavempexec} ${wavenproc} ${wave_mpmd} cmdtarfile + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdtarfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdtarfile + fi exit=$? else chmod 744 cmdtarfile diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 462e884d6c..dd8ec7edb3 100755 --- a/scripts/exwave_prep.sh +++ b/scripts/exwave_prep.sh @@ -30,6 +30,7 @@ # Nov2012 JHAlves - Transitioning to WCOSS # # Apr2019 JHAlves - Transitioning to GEFS workflow # # Nov2019 JHAlves - Merging wave scripts to global workflow # +# Jun2020 JHAlves - Porting to R&D machine Hera # # # # WAV_MOD_ID and WAV_MOD_TAG replace modID. WAV_MOD_TAG # # is used for ensemble-specific I/O. For deterministic # diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh index 2afec2c65e..0c04f0fcb2 100755 --- a/ush/wave_grib2_sbs.sh +++ b/ush/wave_grib2_sbs.sh @@ -11,6 +11,7 @@ # # Script history log: # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # diff --git a/ush/wave_grid_interp.sh b/ush/wave_grid_interp.sh index 273d8a813d..0d90b9c56c 100755 --- a/ush/wave_grid_interp.sh +++ b/ush/wave_grid_interp.sh @@ -11,6 +11,7 @@ # # Script history log: # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ ############################################################################### diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh index f2e0855331..d810564f9f 100755 --- a/ush/wave_grid_interp_sbs.sh +++ b/ush/wave_grid_interp_sbs.sh @@ -11,6 +11,7 @@ # # Script history log: # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh index 2b82e8570e..9eb41aaba1 100755 --- a/ush/wave_grid_moddef.sh +++ b/ush/wave_grid_moddef.sh @@ -11,6 +11,7 @@ # # Script history log: # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # # @@ -126,7 +127,7 @@ # 3. Clean up cd .. - #rm -rf moddef_$grdID + rm -rf moddef_$grdID set +x echo ' ' diff --git a/ush/wave_outp_spec.sh b/ush/wave_outp_spec.sh index 2e902bc212..5ec718efab 100755 --- a/ush/wave_outp_spec.sh +++ b/ush/wave_outp_spec.sh @@ -11,6 +11,7 @@ # # Script history log: # 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera # # $Id$ # @@ -245,8 +246,8 @@ # 3.b Clean up the rest -# rm -f ww3_outp.inp -# rm -f mod_def.ww3 out_pnt.ww3 + rm -f ww3_outp.inp + rm -f mod_def.ww3 out_pnt.ww3 cd .. rm -rf ${specdir}_${bloc} diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh index 848088540c..4c731e5ddd 100755 --- a/ush/wave_prnc_cur.sh +++ b/ush/wave_prnc_cur.sh @@ -10,6 +10,9 @@ # Abstract: Creates current binary data for forcing WW3 # # Script history log: +# 2019-10-02 J-Henrique Alves: origination, first version +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported R&D machine Hera # # $Id$ # diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh index c7a0a1a720..fcc1cab0c9 100755 --- a/ush/wave_prnc_ice.sh +++ b/ush/wave_prnc_ice.sh @@ -16,6 +16,7 @@ # Update record : # # # # - Origination: Hendrik Tolman 01-Mar-2007 # +# 2019-11-02 J-Henrique Alves Ported to global-workflow. # # # Update log # # Nov2019 JHAlves - Merging wave scripts to global workflow # diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh index b5550b6fd4..e367a01414 100755 --- a/ush/wave_tar.sh +++ b/ush/wave_tar.sh @@ -17,6 +17,7 @@ # Origination: Hendrik Tolman March 13, 2007 # # Update log # # Nov2019 JHAlves - Merging wave scripts to global workflow # +# 2020-06-10 J-Henrique Alves Ported R&D machine Hera # # ############################################################################### # @@ -220,7 +221,7 @@ cd $DATA set +x; [[ "$LOUD" = YES ]] && set -v - rm -f ${STA_DIR}/${type} + rm -rf ${STA_DIR}/${type} set +v echo ' '