diff --git a/Externals.cfg b/Externals.cfg index 4f88947d67..243c3ad943 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,28 +1,28 @@ # External sub-modules of global-workflow [FV3GFS] -tag = GFS.v16.0.1 +tag = GFS.v16.0.6 local_path = sorc/fv3gfs.fd repo_url = https://github.com/ufs-community/ufs-weather-model.git protocol = git required = True [GSI] -tag = gfsda.v16.0.0 +branch = release/gfsda.v16.0.0 local_path = sorc/gsi.fd -repo_url = ssh://vlab.ncep.noaa.gov:29418/ProdGSI +repo_url = https://github.com/NOAA-EMC/GSI.git protocol = git required = True [GLDAS] -tag = gldas_gfsv16_release.v1.0.0 +tag = gldas_gfsv16_release.v1.2.0 local_path = sorc/gldas.fd repo_url = https://github.com/NOAA-EMC/GLDAS.git protocol = git required = True [EMC_post] -tag = upp_gfsv16_release.v1.0.5 +tag = upp_gfsv16_release.v1.0.9 local_path = sorc/gfs_post.fd repo_url = https://github.com/NOAA-EMC/EMC_post.git protocol = git @@ -36,7 +36,7 @@ protocol = git required = True [EMC_verif-global] -tag = verif_global_v1.6.0 +tag = verif_global_v1.8.0 local_path = sorc/verif-global.fd repo_url = https://github.com/NOAA-EMC/EMC_verif-global.git protocol = git 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 52f55cb074..bb40781188 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,67 +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. - if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP - for buoy in $buoys - do - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_outp_spec.sh $buoy $ymdh spec > spec_$buoy.out 2>&1" >> ${fcmdnow} - nm=`expr $nm + 1` - else - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec > spec_$buoy.out 2>&1" >> ${fcmdnow} - fi - done - fi - - if [ "$DOIBP_WAV" = 'YES' ] - then - export dtspec=3600. - if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP - for buoy in $ibpoints - do - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_outp_spec.sh $buoy $ymdh ibp > ibp_$buoy.out 2>&1" >> ${fcmdnow} - nm=`expr $nm + 1` - else - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh ibp > ibp_$buoy.out 2>&1" >> ${fcmdnow} - fi - 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 - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_outp_spec.sh $buoy $ymdh bull > bull_$buoy.out 2>&1" >> ${fcmdnow} - nm=`expr $nm + 1` - else - echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull > bull_$buoy.out 2>&1" >> ${fcmdnow} - fi - done - fi - - fi +# Gridded data (main part, need to be run side-by-side with forecast if [ $fhr = $fhrg ] then @@ -607,11 +548,7 @@ 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 - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} - else echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} - fi if [ "$DOGRB_WAV" = 'YES' ] then gribFL=\'`echo ${OUTPARS_WAV}`\' @@ -619,13 +556,10 @@ glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;; esac - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} - else echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} - fi 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 @@ -649,17 +583,84 @@ so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; esac - if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "$nm $USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} - nm=`expr $nm + 1` - else echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} - fi 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. + 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}))` @@ -673,7 +674,7 @@ if [ "$wavenproc" -gt '1' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - ${wavempexec} -n ${wavenproc} ${wave_mpmd} ${fcmdnow} + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprog else ${wavempexec} ${wavenproc} ${wave_mpmd} ${fcmdnow} fi @@ -738,10 +739,13 @@ # 6.b Spectral data files + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0; fi + if [ "$DOIBP_WAV" = 'YES' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "0 $USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + 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 @@ -749,9 +753,12 @@ if [ "$DOSPC_WAV" = 'YES' ] then if [ ${CFP_MP:-"NO"} = "YES" ]; then - echo "1 $USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "2 $USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile - echo "3 $USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + 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 diff --git a/scripts/exwave_prep.sh b/scripts/exwave_prep.sh index 98711b574f..4161943fc8 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/sorc/checkout.sh b/sorc/checkout.sh index dda815a0eb..6e8b75fc60 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -59,7 +59,7 @@ if [[ ! -d gfs_post.fd ]] ; then rm -f ${topdir}/checkout-gfs_post.log git clone https://github.com/NOAA-EMC/EMC_post.git gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 cd gfs_post.fd - git checkout upp_gfsv16_release.v1.0.9 + git checkout upp_gfsv16_release.v1.0.8 cd ${topdir} else echo 'Skip. Directory gfs_post.fd already exists.' 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 ' '