diff --git a/env/HERA.env b/env/HERA.env index 83afd9b3e7..781cb9d415 100755 --- a/env/HERA.env +++ b/env/HERA.env @@ -86,7 +86,7 @@ elif [ $step = "aeroanlrun" ]; then [[ $NTHREADS_AEROANL -gt $nth_max ]] && export NTHREADS_AEROANL=$nth_max export APRUN_AEROANL="$launcher -n $npe_aeroanlrun" -elif [ $step = "anal" ]; then +elif [ $step = "anal" -o $step = "analcalc" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO diff --git a/env/ORION.env b/env/ORION.env index dc3b934891..63d978d2e5 100755 --- a/env/ORION.env +++ b/env/ORION.env @@ -85,7 +85,7 @@ elif [ $step = "aeroanlrun" ]; then [[ $NTHREADS_AEROANL -gt $nth_max ]] && export NTHREADS_AEROANL=$nth_max export APRUN_AEROANL="$launcher -n $npe_aeroanlrun" -elif [ $step = "anal" ]; then +elif [ $step = "anal" -o $step = "analcalc" ]; then export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO diff --git a/env/WCOSS2.env b/env/WCOSS2.env new file mode 100755 index 0000000000..71f967181c --- /dev/null +++ b/env/WCOSS2.env @@ -0,0 +1,319 @@ +#! /usr/bin/env bash + +if [ $# -ne 1 ]; then + + echo "Must specify an input argument to set runtime environment variables!" + echo "argument can be any one of the following:" + echo "atmanalrun atmensanalrun" + echo "aeroanlrun" + echo "anal sfcanl fcst post vrfy metp" + echo "eobs eupd ecen esfc efcs epos" + echo "postsnd awips gempak" + exit 1 + +fi + +step=$1 + +# WCOSS2 information +export launcher="mpiexec -l" +export mpmd="--cpu-bind verbose,core cfp" + +export npe_node_max=128 + +export job=${PBS_JOBNAME:-$step} +export jobid=${job}.${PBS_JOBID:-$$} + +if [ $step = "prep" -o $step = "prepbufr" ]; then + + nth_max=$(($npe_node_max / $npe_node_prep)) + + export POE=${POE:-"YES"} + export BACK=${BACK:-"off"} + export sys_tp="wcoss2" + export launcher_PREP="mpiexec" + +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostbndpntbll" -o $step = "wavepostpnt" ]; then + + if [ $step = "waveprep" -a $CDUMP = "gfs" ]; then NTASKS=$NTASKS_gfs ; fi + export wavempexec="$launcher -np" + export wave_mpmd=${mpmd} + +elif [ $step = "atmanalrun" ]; then + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -np \$ncmd $mpmd" + + nth_max=$(($npe_node_max / $npe_node_atmanalrun)) + + export NTHREADS_ATMANAL=${nth_atmanalrun:-$nth_max} + [[ $NTHREADS_ATMANAL -gt $nth_max ]] && export NTHREADS_ATMANAL=$nth_max + export APRUN_ATMANAL="$launcher -n $npe_atmanalrun" + +elif [ $step = "atmensanalrun" ]; then + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -np \$ncmd $mpmd" + + nth_max=$(($npe_node_max / $npe_node_atmensanalrun)) + + export NTHREADS_ATMENSANAL=${nth_atmensanalrun:-$nth_max} + [[ $NTHREADS_ATMENSANAL -gt $nth_max ]] && export NTHREADS_ATMENSANAL=$nth_max + export APRUN_ATMENSANAL="$launcher -n $npe_atmensanalrun" + +elif [ $step = "aeroanlrun" ]; then + + export APRUNCFP="$launcher -np \$ncmd $mpmd" + + nth_max=$(($npe_node_max / $npe_node_aeroanlrun)) + + export NTHREADS_AEROANL=${nth_aeroanlrun:-$nth_max} + [[ $NTHREADS_AEROANL -gt $nth_max ]] && export NTHREADS_AEROANL=$nth_max + export APRUN_AEROANL="$launcher -n $npe_aeroanlrun" + +elif [ $step = "anal" -o $step = "analcalc" ]; then + + export OMP_PLACES=cores + export OMP_STACKSIZE=1G + export FI_OFI_RXM_SAR_LIMIT=3145728 + + if [ $step = "analcalc" ]; then + export MPICH_MPIIO_HINTS="*:romio_cb_write=disable" + fi + + nth_max=$(($npe_node_max / $npe_node_anal)) + + export NTHREADS_GSI=${nth_anal:-$nth_max} + [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max + export APRUN_GSI="$launcher -n ${npe_gsi:-$npe_anal} -ppn $npe_node_anal --cpu-bind depth --depth $NTHREADS_GSI" + + export NTHREADS_CALCINC=${nth_calcinc:-1} + [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max + export APRUN_CALCINC="$launcher \$ncmd" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + npe_cycle=${ntiles:-6} + export APRUN_CYCLE="$launcher -n $npe_cycle -ppn $npe_node_cycle --cpu-bind depth --depth $NTHREADS_CYCLE" + + export NTHREADS_GAUSFCANL=1 + npe_gausfcanl=${npe_gausfcanl:-1} + export APRUN_GAUSFCANL="$launcher -n $npe_gausfcanl" + + export NTHREADS_CHGRES=${nth_echgres:-14} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="" + + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -np \$ncmd $mpmd" + +elif [ $step = "sfcanl" ]; then + + nth_max=$(($npe_node_max / $npe_node_sfcanl)) + + export NTHREADS_CYCLE=${nth_sfcanl:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + npe_sfcanl=${ntiles:-6} + export APRUN_CYCLE="$launcher -n $npe_sfcanl" + +elif [ $step = "gldas" ]; then + + export USE_CFP="YES" + export CFP_MP="NO" + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher -n $npe_gldas -ppn $npe_node_gldas --cpu-bind depth --depth $NTHREADS_GLDAS" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher -n $npe_gaussian -ppn $npe_node_gaussian --cpu-bind depth --depth $NTHREADS_GAUSSIAN" + + # Must run data processing with exactly the number of tasks as time + # periods being processed. + export USE_CFP=${USE_CFP:-"YES"} + npe_gldas_data_proc=$(($gldas_spinup_hours + 12)) + export APRUN_GLDAS_DATA_PROC="$launcher -np $npe_gldas_data_proc $mpmd" + +elif [ $step = "eobs" ]; then + + export OMP_PLACES=cores + export OMP_STACKSIZE=1G + export FI_OFI_RXM_SAR_LIMIT=3145728 + + nth_max=$(($npe_node_max / $npe_node_eobs)) + + export NTHREADS_GSI=${nth_eobs:-$nth_max} + [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max + export APRUN_GSI="$launcher -n ${npe_gsi:-$npe_eobs} -ppn $npe_node_eobs --cpu-bind depth --depth $NTHREADS_GSI" + + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -np \$ncmd $mpmd" + +elif [ $step = "eupd" ]; then + + export OMP_PLACES=cores + export OMP_STACKSIZE=2G + export MPICH_COLL_OPT_OFF=1 + export FI_OFI_RXM_SAR_LIMIT=3145728 + + nth_max=$(($npe_node_max / $npe_node_eupd)) + + export NTHREADS_ENKF=${nth_eupd:-$nth_max} + [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max + export APRUN_ENKF="$launcher -n ${npe_enkf:-$npe_eupd} -ppn $npe_node_eupd --cpu-bind depth --depth $NTHREADS_ENKF" + + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -np \$ncmd $mpmd" + +elif [ $step = "fcst" ]; then + + export OMP_PLACES=cores + export OMP_STACKSIZE=2048M + export FI_OFI_RXM_RX_SIZE=40000 + export FI_OFI_RXM_TX_SIZE=40000 + + #PEs and PEs/node can differ for GFS and GDAS forecasts if threading differs + if [[ $CDUMP == "gfs" ]]; then + npe_fcst=$npe_fcst_gfs + npe_node_fcst=$npe_node_fcst_gfs + nth_fv3=$nth_fv3_gfs + fi + + nth_max=$(($npe_node_max / $npe_node_fcst)) + + export NTHREADS_FV3=${nth_fv3:-$nth_max} + [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max + export cores_per_node=$npe_node_max + export APRUN_FV3="$launcher -n $npe_fcst -ppn $npe_node_fcst --cpu-bind depth --depth $NTHREADS_FV3" + + export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} + [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max + export APRUN_REGRID_NEMSIO="$launcher -n $LEVS" + + export NTHREADS_REMAP=${nth_remap:-2} + [[ $NTHREADS_REMAP -gt $nth_max ]] && export NTHREADS_REMAP=$nth_max + export APRUN_REMAP="$launcher -n ${npe_remap:-$npe_fcst}" + export I_MPI_DAPL_UD="enable" + +elif [ $step = "efcs" ]; then + + export MPICH_MPIIO_HINTS="*:romio_cb_write=disable" + export FI_OFI_RXM_SAR_LIMIT=3145728 + export FI_OFI_RXM_RX_SIZE=40000 + export FI_OFI_RXM_TX_SIZE=40000 + + nth_max=$(($npe_node_max / $npe_node_efcs)) + + export NTHREADS_FV3=${nth_efcs:-$nth_max} + [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max + export cores_per_node=$npe_node_max + export APRUN_FV3="$launcher -n ${npe_fv3:-$npe_efcs} -ppn $npe_node_efcs --cpu-bind depth --depth $NTHREADS_FV3" + + export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} + [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max + export APRUN_REGRID_NEMSIO="$launcher -n $LEVS" + +elif [ $step = "post" ]; then + + nth_max=$(($npe_node_max / $npe_node_post)) + + export NTHREADS_NP=${nth_np:-1} + [[ $NTHREADS_NP -gt $nth_max ]] && export NTHREADS_NP=$nth_max + export APRUN_NP="$launcher -n ${npe_np:-$npe_post} -ppn $npe_node_post --cpu-bind depth --depth $NTHREADS_NP" + + export NTHREADS_DWN=${nth_dwn:-1} + [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max + export APRUN_DWN="$launcher -np $npe_dwn $mpmd" + +elif [ $step = "ecen" ]; then + + nth_max=$(($npe_node_max / $npe_node_ecen)) + + export NTHREADS_ECEN=${nth_ecen:-$nth_max} + [[ $NTHREADS_ECEN -gt $nth_max ]] && export NTHREADS_ECEN=$nth_max + export APRUN_ECEN="$launcher -n $npe_ecen -ppn $npe_node_ecen --cpu-bind depth --depth $NTHREADS_ECEN" + + export NTHREADS_CHGRES=${nth_chgres:-14} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="time" + + export NTHREADS_CALCINC=${nth_calcinc:-1} + [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max + export APRUN_CALCINC="$launcher -n $npe_ecen" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher -n $npe_ecen -ppn $npe_node_cycle --cpu-bind depth --depth $NTHREADS_CYCLE" + +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + export APRUN_ESFC="$launcher -n $npe_esfc -ppn $npe_node_esfc --cpu-bind depth --depth $NTHREADS_ESFC" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher -n $npe_esfc -ppn $npe_node_cycle --cpu-bind depth --depth $NTHREADS_CYCLE" + +elif [ $step = "epos" ]; then + + nth_max=$(($npe_node_max / $npe_node_epos)) + + export NTHREADS_EPOS=${nth_epos:-$nth_max} + [[ $NTHREADS_EPOS -gt $nth_max ]] && export NTHREADS_EPOS=$nth_max + export APRUN_EPOS="$launcher -n $npe_epos -ppn $npe_node_epos --cpu-bind depth --depth $NTHREADS_EPOS" + +elif [ $step = "init" ]; then + + export APRUN="$launcher" + +elif [ $step = "postsnd" ]; then + + export MPICH_MPIIO_HINTS_DISPLAY=1 + export OMP_NUM_THREADS=1 + + nth_max=$(($npe_node_max / $npe_node_postsnd)) + + export NTHREADS_POSTSND=${nth_postsnd:-1} + [[ $NTHREADS_POSTSND -gt $nth_max ]] && export NTHREADS_POSTSND=$nth_max + export APRUN_POSTSND="$launcher -n $npe_postsnd --depth=$NTHREADS_POSTSND --cpu-bind depth" + + export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1} + [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max + export APRUN_POSTSNDCFP="$launcher -np $npe_postsndcfp $mpmd" + +elif [ $step = "awips" ]; then + + nth_max=$(($npe_node_max / $npe_node_awips)) + + export NTHREADS_AWIPS=${nth_awips:-2} + [[ $NTHREADS_AWIPS -gt $nth_max ]] && export NTHREADS_AWIPS=$nth_max + export APRUN_AWIPSCFP="$launcher -np $npe_awips $mpmd" + +elif [ $step = "gempak" ]; then + + nth_max=$(($npe_node_max / $npe_node_gempak)) + + export NTHREADS_GEMPAK=${nth_gempak:-1} + [[ $NTHREADS_GEMPAK -gt $nth_max ]] && export NTHREADS_GEMPAK=$nth_max + export APRUN_GEMPAKCFP="$launcher -np $npe_gempak $mpmd" + +elif [ $step = "waveawipsbulls" ]; then + + unset PERL5LIB + +elif [ $step = "wafsgrib2" -o $step = "wafsgrib20p25" ]; then + + export USE_CFP=${USE_CFP:-"YES"} + +fi diff --git a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG index 4b2728e13f..9dfff86867 100755 --- a/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +++ b/jobs/JGDAS_ATMOS_ANALYSIS_DIAG @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal analdiag" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ATMOS_CHGRES_FORENKF b/jobs/JGDAS_ATMOS_CHGRES_FORENKF index d2268df767..d8ff0686d0 100755 --- a/jobs/JGDAS_ATMOS_CHGRES_FORENKF +++ b/jobs/JGDAS_ATMOS_CHGRES_FORENKF @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal echgres" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK index 8865432450..2655b34069 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -5,6 +5,18 @@ source "$HOMEgfs/ush/preamble.sh" ############################################ # GDAS GEMPAK PRODUCT GENERATION ############################################ +configs="base gempak" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### +. $BASE_ENV/${machine}.env gempak +status=$? +[[ $status -ne 0 ]] && exit $status ########################################################## # obtain unique process id (pid) and make temp directory @@ -22,12 +34,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} @@ -48,6 +60,7 @@ export GRIB=pgrb2f export EXT="" export DBN_ALERT_TYPE=GDAS_GEMPAK +export SENDCOM=${SENDCOM:-NO} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} @@ -62,8 +75,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} if [ $SENDCOM = YES ] ; then mkdir -m 775 -p $COMOUT @@ -96,7 +109,7 @@ ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} ptile=${PTILE_GEMPAK:-4} threads=${NTHREADS_GEMPAK:-1} export OMP_NUM_THREADS=$threads -APRUN="mpirun -n $ntasks cfp " +APRUN="mpiexec -l -np $ntasks --cpu-bind verbose,core cfp" APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC index ffb46db0f9..367f0a0c83 100755 --- a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -22,12 +22,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} @@ -67,13 +67,13 @@ export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak/meta} -export COMOUTncdc=${COMOUTncdc:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak/meta} +export COMOUTncdc=${COMOUTncdc:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINukmet=${COMINukmet:-$(compath.py ${envir}/ukmet/${ukmet_ver})/ukmet} +export COMINecmwf=${COMINecmwf:-$(compath.py ${envir}/ecmwf/${ecmwf_ver})/ecmwf} export COMOUTukmet=${COMOUT} export COMOUTecmwf=${COMOUT} diff --git a/jobs/JGDAS_EFSOI b/jobs/JGDAS_EFSOI index 6c90468989..0fa38dc3e1 100755 --- a/jobs/JGDAS_EFSOI +++ b/jobs/JGDAS_EFSOI @@ -10,7 +10,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal efsoi" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_EFSOI_ECEN b/jobs/JGDAS_EFSOI_ECEN index 864bb1ae4a..c4d63bcc70 100755 --- a/jobs/JGDAS_EFSOI_ECEN +++ b/jobs/JGDAS_EFSOI_ECEN @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base ecenfsoi" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_EFSOI_FCST b/jobs/JGDAS_EFSOI_FCST index 2794ee9c93..a4b67d3428 100755 --- a/jobs/JGDAS_EFSOI_FCST +++ b/jobs/JGDAS_EFSOI_FCST @@ -8,7 +8,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} # Source relevant config files ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} configs="base fcst efcsfsoi" for config in $configs; do . $config_path/config.$config diff --git a/jobs/JGDAS_EFSOI_POST b/jobs/JGDAS_EFSOI_POST index aca5bd51ed..f096aff28e 100755 --- a/jobs/JGDAS_EFSOI_POST +++ b/jobs/JGDAS_EFSOI_POST @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base eposfsoi" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_EFSOI_SFC b/jobs/JGDAS_EFSOI_SFC index 5ba5fb6393..18a9c24c7f 100755 --- a/jobs/JGDAS_EFSOI_SFC +++ b/jobs/JGDAS_EFSOI_SFC @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base esfcfsoi" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_EFSOI_UPDATE b/jobs/JGDAS_EFSOI_UPDATE index e5efd6241a..c0f491dcd5 100755 --- a/jobs/JGDAS_EFSOI_UPDATE +++ b/jobs/JGDAS_EFSOI_UPDATE @@ -10,7 +10,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal eupdfsoi" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_DIAG b/jobs/JGDAS_ENKF_DIAG index 5ce8d86b78..3864f8d008 100755 --- a/jobs/JGDAS_ENKF_DIAG +++ b/jobs/JGDAS_ENKF_DIAG @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal eobs analdiag ediag" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_ECEN b/jobs/JGDAS_ENKF_ECEN index 1e7a51b5ae..90773d7a1e 100755 --- a/jobs/JGDAS_ENKF_ECEN +++ b/jobs/JGDAS_ENKF_ECEN @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base ecen" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_FCST b/jobs/JGDAS_ENKF_FCST index 68b3a53204..e57ff1d09b 100755 --- a/jobs/JGDAS_ENKF_FCST +++ b/jobs/JGDAS_ENKF_FCST @@ -8,7 +8,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} # Source relevant config files ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} configs="base fcst efcs" for config in $configs; do . $config_path/config.$config diff --git a/jobs/JGDAS_ENKF_POST b/jobs/JGDAS_ENKF_POST index dcc6335e44..5b9926b95c 100755 --- a/jobs/JGDAS_ENKF_POST +++ b/jobs/JGDAS_ENKF_POST @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base epos" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_SELECT_OBS b/jobs/JGDAS_ENKF_SELECT_OBS index 92bd78b04c..4d67379d66 100755 --- a/jobs/JGDAS_ENKF_SELECT_OBS +++ b/jobs/JGDAS_ENKF_SELECT_OBS @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal eobs" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_SFC b/jobs/JGDAS_ENKF_SFC index 54f196234a..cc41e7622f 100755 --- a/jobs/JGDAS_ENKF_SFC +++ b/jobs/JGDAS_ENKF_SFC @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base esfc" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_ENKF_UPDATE b/jobs/JGDAS_ENKF_UPDATE index dafd9b13f2..fab0726a16 100755 --- a/jobs/JGDAS_ENKF_UPDATE +++ b/jobs/JGDAS_ENKF_UPDATE @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal eupd" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST index d8cd0416cd..68063c591d 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_POST @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmanal atmanalpost" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP index 01895d4d5c..b09cd49963 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_PREP @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmanal atmanalprep" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN index 7998623851..491aaf8554 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ANALYSIS_RUN @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmanal atmanalrun" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST index 871ba7a35f..997ad26739 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_POST @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmensanal atmensanalpost" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP index b284e90e67..bdb78d0c13 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_PREP @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmensanal atmensanalprep" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN index b3f5c0fa90..95fbed8868 100755 --- a/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN +++ b/jobs/JGDAS_GLOBAL_ATMOS_ENSANAL_RUN @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base atmensanal atmensanalrun" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG index 2528013e39..0971ec6bff 100755 --- a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -24,12 +24,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-$HOMEgfs/ush} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} @@ -48,8 +48,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 index 9dd2fdca63..db4e984b6a 100755 --- a/jobs/JGFS_ATMOS_AWIPS_G2 +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -24,12 +24,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-$HOMEgfs/ush} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} @@ -49,8 +49,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS index 79d43ebb1e..7641c0dbfd 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_GENESIS +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -8,7 +8,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} # Source relevant config files ############################# configs="base vrfy" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -64,9 +64,6 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export cmodel=$CDUMP #################################### @@ -80,7 +77,7 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} @@ -98,7 +95,7 @@ export JYYYY=$(echo ${PDY} | cut -c1-4) export COMINgenvit=${COMINgenvit:-${COMOUT}/genesis_vital_${JYYYY}} export COMOUTgenvit=${COMOUTgenvit:-${COMOUT}/genesis_vital_${JYYYY}} -export COMINsyn=${COMINsyn:-$(compath.py gfs/prod/syndat)} +export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} mkdir -m 775 -p $COMOUTgenvit diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER index 4b05ea0b80..727bf3e590 100755 --- a/jobs/JGFS_ATMOS_CYCLONE_TRACKER +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -8,7 +8,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} # Source relevant config files ############################# configs="base vrfy" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -66,9 +66,6 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi #################################### @@ -82,7 +79,7 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} @@ -97,7 +94,7 @@ export gfsdir=${COMINgfs} export COMINgdas=${COMIN} export gdasdir=${COMINgdas} export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT -export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} +export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} if [ $RUN_ENVIR = "nco" ]; then export COMOUThur=${COMROOTp1:?}/hur/${envir}/global diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND index 42e459dd0b..df8d3bc0c1 100755 --- a/jobs/JGFS_ATMOS_FBWIND +++ b/jobs/JGFS_ATMOS_FBWIND @@ -22,12 +22,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-$HOMEgfs/ush} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} @@ -47,8 +47,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS index eb3069bfcb..d403a76fe2 100755 --- a/jobs/JGFS_ATMOS_FSU_GENESIS +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -8,7 +8,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} # Source relevant config files ############################# configs="base vrfy" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -67,9 +67,6 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi #################################### @@ -83,7 +80,7 @@ export SENDECF=${SENDECF:-NO} #################################### # Specify Execution Areas #################################### -export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export HOMEens_tracker=${HOMEens_tracker:-${PACKAGEROOT:?}/ens_tracker.${ens_tracker_ver}} export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} @@ -101,7 +98,7 @@ export gfsdir=${ROTDIR} export COMINgdas=${COMIN} export gdasdir=${COMINgdas} export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} -export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} +export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} if [ $RUN_ENVIR = "nco" ]; then export COMOUThur=${COMROOTp1:?}/hur/${envir}/global diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK index 502bb96a7a..1e93982cd1 100755 --- a/jobs/JGFS_ATMOS_GEMPAK +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -5,13 +5,25 @@ source "$HOMEgfs/ush/preamble.sh" ############################################ # GFS GEMPAK PRODUCT GENERATION ############################################ +configs="base gempak" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### +. $BASE_ENV/${machine}.env gempak +status=$? +[[ $status -ne 0 ]] && exit $status ############################# # Source relevant config files ############################# configs="base gempak" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -41,12 +53,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} @@ -78,8 +90,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} @@ -91,7 +103,9 @@ fi export pgmout=OUTPUT.$$ -rm -f poescript +if [ -f poescript ]; then + rm -f poescript +fi ################################################################# # Execute the script for the 384 hour 1 degree grib @@ -159,7 +173,7 @@ ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} ptile=${PTILE_GEMPAK:-4} threads=${NTHREADS_GEMPAK:-1} export OMP_NUM_THREADS=$threads -APRUN=${APRUN:-"mpirun -n $ntasks cfp "} +APRUN=${APRUN:-"mpiexec -l -np $ntasks --cpu-bind verbose,core cfp"} APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META index 9d6683a521..707537f3f1 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_META +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -32,12 +32,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} @@ -70,13 +70,13 @@ export DBN_ALERT_TYPE=GFS_METAFILE ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak/meta} -export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak/meta} +export COMINgempak=${COMINgempak:-$(compath.py ${envir}/${NET}/${gfs_ver})} -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} +export COMINukmet=${COMINukmet:-$(compath.py ${envir}/ukmet/${ukmet_ver})/ukmet} +export COMINecmwf=${COMINecmwf:-$(compath.py ${envir}/ecmwf/${ecmwf_ver})/ecmwf} +export COMINnam=${COMINnam:-$(compath.py ${envir}/nam/${nam_ver})/nam} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF index 4b8a04e6a9..82667654d1 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -22,12 +22,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} @@ -68,9 +68,10 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} -export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMINgfs=${COMINgfs:-$(compath.py ${envir}/${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/$RUN.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC index d8d05b27f2..f7080fb523 100755 --- a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -22,12 +22,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} @@ -42,7 +42,7 @@ export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} # Specify NET and RUN Name and model #################################### export NET=gfs -export RUN=gfs_goessim +export RUN=gfs export COMPONENT=${COMPONENT:-atmos} export finc=3 export model=gfs @@ -51,8 +51,8 @@ export EXT="" ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${NET}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${NET}.${PDY})/${cyc}/$COMPONENT/gempak} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} @@ -72,6 +72,7 @@ mkdir -p $DATA cd $DATA export DBN_ALERT_TYPE=GFS_GOESSIM_GEMPAK +export RUN2=gfs_goessim export GRIB=goessimpgrb2.0p25.f export EXT=" " export fend=180 @@ -92,7 +93,7 @@ mkdir -p $DATA cd $DATA export DBN_ALERT_TYPE=GFS_GOESSIM221_GEMPAK -export RUN=gfs_goessim221 +export RUN2=gfs_goessim221 export GRIB=goessimpgrb2f export EXT=".grd221" export fend=180 diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS index 8ae1170800..74b4695f28 100755 --- a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -24,13 +24,12 @@ export cycle=${cycle:-t${cyc}z} # Run setpdy and initialize PDY variables ########################################### setpdy.sh -. PDY - +. ./PDY ################################ # Set up the HOME directory ################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export USHgfs=${USHgfs:-$HOMEgfs/ush} export EXECgfs=${EXECgfs:-$HOMEgfs/exec} export PARMgfs=${PARMgfs:-$HOMEgfs/parm} @@ -50,8 +49,8 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## # Define COM directories ############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} export SENDDBN=${SENDDBN:-NO} @@ -106,11 +105,9 @@ then fi if test $recvy_shour -ge $FHOUR then - msg="Forecast Pgrb Generation Already Completed to $FHOUR" - postmsg "$jlogfile" "$msg" + echo="Forecast Pgrb Generation Already Completed to $FHOUR" else - msg="Starting: PDY=$PDY cycle=t${recvy_cyc}z SHOUR=$SHOUR ." - postmsg "$jlogfile" "$msg" + echo="Starting: PDY=$PDY cycle=t${recvy_cyc}z SHOUR=$SHOUR ." fi fi fi diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND index 013e6d1648..859811e753 100755 --- a/jobs/JGFS_ATMOS_POSTSND +++ b/jobs/JGFS_ATMOS_POSTSND @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base postsnd" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -54,9 +54,6 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ######################################## diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS b/jobs/JGLOBAL_ATMOS_ANALYSIS index df1f4ab474..db56beb582 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC index 39438e32b7..2af443b8bf 100755 --- a/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +++ b/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base anal analcalc" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -20,7 +20,7 @@ done ########################################## # Source machine runtime environment ########################################## -. $HOMEgfs/env/${machine}.env anal +. $HOMEgfs/env/${machine}.env analcalc status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP index c0aab4e921..d40a22da0f 100755 --- a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP +++ b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -55,18 +55,18 @@ cyc_m6hrs=$(echo $GDATE | cut -c9-10) export cycle_m6hrs=t${cyc_m6hrs}z export COMPONENT=${COMPONENT:-atmos} -export COMOUT=${COMOUT:-${COMROOT}/$NET/$envir/$RUN.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMINgfs=${COMINgfs:-$(compath.py $NET/$envir/$RUN.$PDY)/$cyc/$COMPONENT} -export COMINgfs_m6hrs=${COMINgfs_m6hrs:-$(compath.py $NET/$envir/$RUN.$PDY_m6hrs)/$cyc_m6hrs/$COMPONENT} +export COMINobsproc=${COMINobsproc:-$(compath.py ${envir}/obsproc/${obsproc_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN_m6hrs=${COMIN_m6hrs:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY_m6hrs}/${cyc_m6hrs}/$COMPONENT} -export IMS_FILE=${COMINgfs}/${RUN}.${cycle}.imssnow96.grib2 -export FIVE_MIN_ICE_FILE=${COMINgfs}/${RUN}.${cycle}.seaice.5min.grib2 -export AFWA_NH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWN.SP.S1200.MESH16.grb -export AFWA_SH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWS.SP.S1200.MESH16.grb +export IMS_FILE=${COMINobsproc}/${RUN}.${cycle}.imssnow96.grib2 +export FIVE_MIN_ICE_FILE=${COMINobsproc}/${RUN}.${cycle}.seaice.5min.grib2 +export AFWA_NH_FILE=${COMINobsproc}/${RUN}.${cycle}.NPR.SNWN.SP.S1200.MESH16.grb +export AFWA_SH_FILE=${COMINobsproc}/${RUN}.${cycle}.NPR.SNWS.SP.S1200.MESH16.grb export BLENDED_ICE_FILE=${BLENDED_ICE_FILE:-${RUN}.${cycle}.seaice.5min.blend.grb} -export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-${COMINgfs_m6hrs}/${RUN}.${cycle_m6hrs}.seaice.5min.blend.grb} +export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-${COMIN_m6hrs}/${RUN}.${cycle_m6hrs}.seaice.5min.blend.grb} ############################################################### # Run relevant script diff --git a/jobs/JGLOBAL_ATMOS_NCEPPOST b/jobs/JGLOBAL_ATMOS_NCEPPOST index 4014ebf5e6..56d6ca602e 100755 --- a/jobs/JGLOBAL_ATMOS_NCEPPOST +++ b/jobs/JGLOBAL_ATMOS_NCEPPOST @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base post" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -70,7 +70,7 @@ export COMPONENT=${COMPONENT:-atmos} ############################################## export APRUNP=${APRUN:-$APRUN_NP} export RERUN=${RERUN:-NO} -export HOMECRTM=${HOMECRTM:-${NWROOT:-}/lib/crtm/${crtm_ver:-}} +export HOMECRTM=${HOMECRTM:-${PACKAGEROOT:?}/lib/crtm/${crtm_ver:?}} export FIXCRTM=${CRTM_FIX:-${HOMECRTM}/fix} export PARMpost=${PARMpost:-$HOMEgfs/parm/post} export INLINE_POST=${WRITE_DOPOST:-".false."} diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER index b931a7aa90..01323846db 100755 --- a/jobs/JGLOBAL_ATMOS_POST_MANAGER +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -13,7 +13,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base post" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -65,7 +65,7 @@ export gfs_ver=${gfs_ver:-v15.0.0} #################################### # Specify Execution Areas #################################### -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT}/gfs.${gfs_ver}} export EXECgfs=${HOMEgfs:-$HOMEgfs/exec} export FIXgfs=${HOMEgfs:-$HOMEgfs/fix} export PARMgfs=${HOMEgfs:-$HOMEgfs/parm} diff --git a/jobs/JGLOBAL_ATMOS_SFCANL b/jobs/JGLOBAL_ATMOS_SFCANL index 7d0e70782b..2e8e8a7160 100755 --- a/jobs/JGLOBAL_ATMOS_SFCANL +++ b/jobs/JGLOBAL_ATMOS_SFCANL @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} configs="base sfcanl" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC index 5496861e5f..e9c9b9db1e 100755 --- a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC +++ b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base prep" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -56,9 +56,6 @@ export pgmerr=errfile export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} export COMPONENT=${COMPONENT:-atmos} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi ############################################## @@ -68,21 +65,13 @@ fi export PROCESS_TROPCY=${PROCESS_TROPCY:-YES} # Turn on tropical cyclone tcvitals QC proc. if YES export DO_RELOCATE=${DO_RELOCATE:-NO} # Turn on tropical cyclone relocation proc. if YES - export tmmark=tm00 -if [ $RUN_ENVIR = "nco" ]; then - export ARCHSYND=$COMROOTp3/gfs/${envir}/syndat # this location is unique, do not change -else - export ARCHSYND=${ROTDIR}/syndat -fi +export ARCHSYND=${ROTDIR}/syndat # this location is unique, do not change if [ ! -d ${ARCHSYND} ]; then mkdir -p $ARCHSYND; fi -export HOMENHCp1=${HOMENHCp1:-/gpfs/?p1/nhc/save/guidance/storm-data/ncep} -export HOMENHC=${HOMENHC:-/gpfs/dell2/nhc/save/guidance/storm-data/ncep} - -# JY export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/${envir}} # path to tropical cyclone record database -export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/prod} # path to tropical cyclone record database +export HOMENHC=${HOMENHC:-/lfs/h1/ops/prod/dcom/nhc/atcf/ncep} +export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}} # path to tropical cyclone record database ############################################## # Define COM directories diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index 40e8f46051..7f6dbd9a26 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -19,7 +19,7 @@ export CDUMP=${CDUMP:-${RUN:-"gfs"}} ############################# configs="base fcst" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -61,12 +61,6 @@ export pgmout="OUTPUT.${pid}" export pgmerr=errfile -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir - export RSTDIR=${GESROOT:?}/$envir -fi - - #-------------------------------- if [ $RUN_ENVIR = "nco" ]; then #-------------------------------- @@ -76,7 +70,7 @@ if [ $RUN_ENVIR = "nco" ]; then ############################# configs="base fcst" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -108,8 +102,8 @@ fi if [ ${DO_WAVE:-"NO"} = "YES" ]; then # WAVE component directory export CDUMPwave=${CDUMPwave:-${CDUMP}wave} - export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} - export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} + export COMINwave=${COMINwave:-$(compath.py ${envir}/${NET}/${gfs_ver})/${CDUMP}.${PDY}/${cyc}/wave} + export COMOUTwave=${COMOUTwave:-$(compath.py -o ${NET}/${gfs_ver})/${CDUMP}.${PDY}/${cyc}/wave} fi ############################################## diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK index 591dcff393..baf2f437f1 100755 --- a/jobs/JGLOBAL_WAVE_GEMPAK +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -2,7 +2,6 @@ source "$HOMEgfs/ush/preamble.sh" -# JY - 10/29, move the block in the front, otherwise PDY is not defined for COMIN export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA @@ -14,7 +13,7 @@ cd $DATA export cycle=${cycle:-t${cyc}z} setpdy.sh -. PDY +. ./PDY # export NET=${NET:-gfs} @@ -28,8 +27,8 @@ export errchk=${errchk:-err_chk} ################################### # Set COM Paths -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} #export pid=$$ export pgmout="OUTPUT.$$" diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT index 013dff7e70..52fbc80110 100755 --- a/jobs/JGLOBAL_WAVE_INIT +++ b/jobs/JGLOBAL_WAVE_INIT @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base wave waveinit" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -41,7 +41,7 @@ export cycle=${cycle:-t${cyc}z} # Set PDY setpdy.sh -. PDY +. ./PDY export pgmout=OUTPUT.$$ @@ -54,9 +54,6 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT @@ -66,7 +63,7 @@ if [ $SENDCOM = YES ]; then fi # Set mpi serial command -export wavempexec=${launcher:-"mpirun -n"} +export wavempexec=${wavempexec:-"mpirun -n"} export wave_mpmd=${mpmd:-"cfp"} # Execute the Script diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT index 0821a9fdaf..0f0370c940 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNT +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base wave wavepostsbs wavepostbndpnt" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -28,8 +28,8 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} -export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-$PACKAGEROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/$NET.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -44,7 +44,7 @@ export cycle=${cycle:-t${cyc}z} # Set PDY setpdy.sh -. PDY +. ./PDY export CDATE=$PDY$cyc @@ -59,9 +59,6 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL index 404ab14d9e..8b5819a954 100755 --- a/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNTBLL @@ -7,9 +7,9 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# # Source relevant config files ############################# -configs="base wave wavepostsbs wavepostbndpnt" +configs="base wave wavepostsbs wavepostbndpntbll" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -28,8 +28,8 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} -export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-$PACKAGEROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/$NET.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -44,7 +44,7 @@ export cycle=${cycle:-t${cyc}z} # Set PDY setpdy.sh -. PDY +. ./PDY export CDATE=$PDY$cyc @@ -59,9 +59,6 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT index acde66e7a5..1a2d394a6f 100755 --- a/jobs/JGLOBAL_WAVE_POST_PNT +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base wave wavepostsbs wavepostpnt" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-${NWROOT:-}/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-${PACKAGEROOT:-}/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -28,8 +28,8 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export HOMEgefs=${HOMEgefs:-${NWROOT:-}/$NET.${gefs_ver:-}} -export HOMEgfs=${HOMEgfs:-${NWROOT:-}/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/$NET.${gefs_ver:-}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT:-}/$NET.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -59,9 +59,6 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS index 868cf8b242..aca8e03f36 100755 --- a/jobs/JGLOBAL_WAVE_POST_SBS +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base wave wavepostsbs" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-${NWROOT:-}/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-${PACKAGEROOT:-}/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -28,8 +28,8 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export HOMEgefs=${HOMEgefs:-${NWROOT:-}/$NET.${gefs_ver:-}} -export HOMEgfs=${HOMEgfs:-${NWROOT:-}/$NET.${gfs_ver}} +export HOMEgefs=${HOMEgefs:-${PACKAGEROOT:-}/$NET.${gefs_ver:-}} +export HOMEgfs=${HOMEgfs:-${PACKAGEROOT:-}/$NET.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -41,7 +41,7 @@ cd $DATA export cyc=${cyc:-00} export cycle=${cycle:-t${cyc}z} - + # Set PDY setpdy.sh . ./PDY @@ -59,20 +59,17 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMINice=${COMINice:-${COMROOTp2:-${COMROOT}}/omb/prod} export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} -export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2:-${COMROOT}}/rtofs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-$(compath.py ${envir}/rtofs/${rtofs_ver})} mkdir -p $COMOUT/gridded -# Set wave model ID tag to include member number +# Set wave model ID tag to include member number # if ensemble; waveMEMB var empty in deterministic # Set wave model ID tag to include member number # if ensemble; waveMEMB var empty in deterministic @@ -83,7 +80,7 @@ export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} export CFP_VERBOSE=1 -# Execute the Script +# Execute the Script $HOMEgfs/scripts/exgfs_wave_post_gridded_sbs.sh err=$? if [ $err -ne 0 ]; then diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS index 617217dfac..52481f848a 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -12,8 +12,8 @@ cd $DATA export cycle=${cycle:-t${cyc}z} # Set PDY - setpdy.sh - . PDY +setpdy.sh +. ./PDY export NET=${NET:-gfs} export RUN=${RUN:-gfs} @@ -25,8 +25,8 @@ export errchk=${errchk:-err_chk} ################################### # Set COM Paths -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export PCOM=${PCOM:-${COMOUT}/wmo} export SENDCOM=${SENDCOM:-YES} diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED index 45cea6d4e2..7a54c87ccc 100755 --- a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -12,8 +12,8 @@ cd $DATA export cycle=${cycle:-t${cyc}z} # Set PDY - setpdy.sh - . PDY +setpdy.sh +. ./PDY # PATH for working directory export NET=${NET:-gfs} @@ -27,17 +27,15 @@ export errchk=${errchk:-err_chk} ################################### # Set COM Paths ################################### -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMIN=${COMIN:-$(compath.py ${envir}/${NET}/${gfs_ver})/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-$(compath.py -o ${NET}/${gfs_ver}/${RUN}.${PDY})/${cyc}/$COMPONENT} export PCOM=${PCOM:-${COMOUT}/wmo} - export SENDCOM=${SENDCOM:-YES} export SENDDBN_NTC=${SENDDBN_NTC:-YES} export SENDDBN=${SENDDBN:-NO} export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} - if [ $SENDCOM = YES ]; then mkdir -p $COMOUT $PCOM fi diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP index 5878e36444..eba4af8784 100755 --- a/jobs/JGLOBAL_WAVE_PREP +++ b/jobs/JGLOBAL_WAVE_PREP @@ -9,7 +9,7 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} ############################# configs="base wave waveprep" export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -28,7 +28,7 @@ export NET=${NET:-gfs} export RUN=${RUN:-gfs} export COMPONENT=${COMPONENT:-wave} -export HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver}} +export HOMEgfs=${HOMEgfs:-$PACKAGEROOT/gfs.${gfs_ver}} # Add default errchk = err_chk export errchk=${errchk:-err_chk} @@ -61,19 +61,16 @@ export USHwave=${USHwave:-$HOMEgfs/ush} export EXECwave=${EXECwave:-$HOMEgfs/exec} # Set COM Paths and GETGES environment -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} [[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT if [ $RUN_ENVIR = "nco" ]; then - export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc}/atmos - export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$(compath.py ${WAVECUR_DID}/prod)} + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py ${envir}/obsproc/${obsproc_ver})}/${CDUMP}.${PDY}/${cyc}/atmos + export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$(compath.py ${envir}/${WAVECUR_DID}/${rtofs_ver})} else if [ $WW3CURINP = "YES" ]; then - if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=$($NDATE -24 ${PDY}00 | cut -c1-8); fi + if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=$($NDATE -24 ${PDY}00 | cut -c1-8); fi if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} fi @@ -91,7 +88,7 @@ else fi fi -# Execute the Script +# Execute the Script $HOMEgfs/scripts/exgfs_wave_prep.sh ########################################## diff --git a/jobs/rocoto/awips.sh b/jobs/rocoto/awips.sh index f8e5646aa6..d700494ab2 100755 --- a/jobs/rocoto/awips.sh +++ b/jobs/rocoto/awips.sh @@ -58,7 +58,6 @@ echo "=============== BEGIN AWIPS ===============" export SENDCOM="YES" export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export PCOM="$COMOUT/wmo" -export jlogfile="$ROTDIR/logs/$CDATE/jgfs_awips.log" SLEEP_TIME=1800 SLEEP_INT=5 diff --git a/jobs/rocoto/gempak.sh b/jobs/rocoto/gempak.sh index 5b7f43ce47..9f1ed4bc91 100755 --- a/jobs/rocoto/gempak.sh +++ b/jobs/rocoto/gempak.sh @@ -2,18 +2,6 @@ source "$HOMEgfs/ush/preamble.sh" -############################################################### -## Abstract: -## Inline gempak driver script -## RUN_ENVIR : runtime environment (emc | nco) -## HOMEgfs : /full/path/to/workflow -## EXPDIR : /full/path/to/config/files -## CDATE : current analysis date (YYYYMMDDHH) -## CDUMP : cycle name (gdas / gfs) -## PDY : current date (YYYYMMDD) -## cyc : current cycle (HH) -############################################################### - ############################################################### echo echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" @@ -21,53 +9,15 @@ echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" status=$? [[ $status -ne 0 ]] && exit $status - -############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base gempak" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env gempak -status=$? -[[ $status -ne 0 ]] && exit $status - -############################################################### +export SENDCOM="YES" export COMPONENT=${COMPONENT:-atmos} -export CDATEm1=$($NDATE -24 $CDATE) -export PDYm1=$(echo $CDATEm1 | cut -c1-8) export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/gempak" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - - -################################################################################ -echo -echo "=============== BEGIN GEMPAK ===============" -export job="jgfs_gempak_${cyc}" -export jlogfile="$ROTDIR/logs/$CDATE/$job.log" -export DATA="${DATAROOT}/$job" -export SENDCOM="YES" export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT/gempak" -export FIXgfs="" # set blank so that GEMPAKSH defaults FIXgfs to HOMEgfs/gempak/fix -export USHgfs="" # set blank so that GEMPAKSH defaults FIXgfs to HOMEgfs/gempak/ush - -$GEMPAKSH +# Execute the JJOB -############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +$HOMEgfs/jobs/JGFS_ATMOS_GEMPAK - -exit 0 +status=$? +exit $status diff --git a/jobs/rocoto/ocnpost.sh b/jobs/rocoto/ocnpost.sh index 0f6413ec43..7f242ea2a5 100755 --- a/jobs/rocoto/ocnpost.sh +++ b/jobs/rocoto/ocnpost.sh @@ -17,7 +17,7 @@ status=$? # Source relevant config files ############################# configs="base ocnpost" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +config_path=${EXPDIR:-$PACKAGEROOT/gfs.${gfs_ver}/parm/config} for config in $configs; do . $config_path/config.$config status=$? @@ -58,11 +58,6 @@ export cycle="t${cyc}z" setpdy.sh . ./PDY -############################################## -# Define the Log File directory -############################################## -export jlogfile=${jlogfile:-$COMROOT/logs/jlogfiles/jlogfile.${job}.${pid}} - ############################################## # Determine Job Output Name on System ############################################## diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index 57bf1814b9..584961e7ff 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -94,7 +94,6 @@ if [ $VRFYFITS = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then xdate=$($NDATE -${VBACKUP_FITS} $CDATE) - export RUN_ENVIR_SAVE=$RUN_ENVIR export RUN_ENVIR=$OUTPUT_FILE @@ -112,7 +111,6 @@ if [ $VRFYRAD = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then export EXP=$PSLOT export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}radmon.log" export TANKverf_rad="$TANKverf/stats/$PSLOT/$CDUMP.$PDY" export TANKverf_radM1="$TANKverf/stats/$PSLOT/$CDUMP.$PDYm1" export MY_MACHINE=$machine @@ -129,7 +127,6 @@ if [ $VRFYOZN = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then export EXP=$PSLOT export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}oznmon.log" export TANKverf_ozn="$TANKverf_ozn/stats/$PSLOT/$CDUMP.$PDY" export TANKverf_oznM1="$TANKverf_ozn/stats/$PSLOT/$CDUMP.$PDYm1" export MY_MACHINE=$machine @@ -145,7 +142,6 @@ echo "=============== START TO RUN MINMON ===============" if [ $VRFYMINMON = "YES" -a $CDATE != $SDATE ]; then export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" - export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}minmon.log" export M_TANKverfM0="$M_TANKverf/stats/$PSLOT/$CDUMP.$PDY" export M_TANKverfM1="$M_TANKverf/stats/$PSLOT/$CDUMP.$PDYm1" export MY_MACHINE=$machine @@ -159,6 +155,9 @@ fi echo echo "=============== START TO RUN CYCLONE TRACK VERIFICATION ===============" if [ $VRFYTRAK = "YES" ]; then + + export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} + $TRACKERSH fi diff --git a/jobs/rocoto/wafsgcip.sh b/jobs/rocoto/wafsgcip.sh index f3e98a03da..53cfd90da5 100755 --- a/jobs/rocoto/wafsgcip.sh +++ b/jobs/rocoto/wafsgcip.sh @@ -18,6 +18,13 @@ for config in $configs; do [[ $status -ne 0 ]] && exit $status done +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wafsgcip +status=$? +[[ $status -ne 0 ]] && exit $status + ############################################################### export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgcip" diff --git a/modulefiles/module_base.wcoss2.lua b/modulefiles/module_base.wcoss2.lua index 5e7e9e7eea..8f68e994c7 100644 --- a/modulefiles/module_base.wcoss2.lua +++ b/modulefiles/module_base.wcoss2.lua @@ -33,6 +33,12 @@ load(pathJoin("crtm", "2.3.0")) load(pathJoin("g2tmpl", "1.9.1")) load(pathJoin("wgrib2", "2.0.7")) +pushenv("HPC_OPT", "/apps/ops/para/libs") +append_path("MODULEPATH", "/apps/ops/para/libs/modulefiles/compiler/intel/19.1.3.304") +append_path("MODULEPATH", "/apps/ops/para/libs/modulefiles/mpi/intel/19.1.3.304/cray-mpich/8.1.7") + +load("ncdiag/1.0.0") + prepend_path("MODULEPATH", pathJoin("/lfs/h2/emc/global/save/emc.global/git/prepobs/v1.0.1/modulefiles")) load(pathJoin("prepobs", "1.0.1")) diff --git a/parm/config/config.anal b/parm/config/config.anal index 6d3a48c82e..2f7dc275c4 100755 --- a/parm/config/config.anal +++ b/parm/config/config.anal @@ -155,12 +155,12 @@ if [[ $RUN_ENVIR == "emc" ]]; then # Turn off assimilation of S-NPP CrIS if [[ "$CDATE" -ge "2021052118" && "$CDATE" -lt "2021092206" ]]; then - export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2021052118 + export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2021052118 fi # Turn off assimilation of MetOp-A IASI if [[ "$CDATE" -ge "2021092206" && "$CDATE" -lt "2021102612" ]]; then - export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2021092206 + export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2021092206 fi # NOTE: diff --git a/parm/config/config.analcalc b/parm/config/config.analcalc index c02aafc2c3..9405114ecc 100755 --- a/parm/config/config.analcalc +++ b/parm/config/config.analcalc @@ -8,4 +8,8 @@ echo "BEGIN: config.analcalc" # Get task specific resources . $EXPDIR/config.resources analcalc +if [[ "$CDUMP" == "gfs" ]]; then + export nth_echgres=$nth_echgres_gfs +fi + echo "END: config.analcalc" diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index 5063fa2ade..0d4a414fd4 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -36,8 +36,9 @@ export FIXreg2grb2=$HOMEgfs/fix/fix_reg2grb2 ######################################################################## # GLOBAL static environment parameters -export NWPROD="@NWPROD@" +export PACKAGEROOT="@PACKAGEROOT@" export COMROOT="@COMROOT@" +export COMINsyn="@COMINsyn" export DMPDIR="@DMPDIR@" export RTMFIX=$CRTM_FIX @@ -133,7 +134,6 @@ export COMOUTice=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/ice export COMINaero=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/chem export COMOUTaero=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/chem -export jlogfile="${EXPDIR}/logs/jlogfile" export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT:-""} #export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} diff --git a/parm/config/config.base.nco.static b/parm/config/config.base.nco.static index a94f0be863..ca3b6680e1 100755 --- a/parm/config/config.base.nco.static +++ b/parm/config/config.base.nco.static @@ -31,7 +31,7 @@ export SCRgfs=$HOMEgfs/scripts # GLOBAL static environment parameters -export NWPROD="/gpfs/dell1/nco/ops/nwprod" +export PACKAGEROOT="/lfs/h1/ops/prod/packages" export RTMFIX=$CRTM_FIX # Machine specific paths used everywhere @@ -89,7 +89,7 @@ export EDATE=2039123100 export assim_freq=6 export PSLOT="test" export EXPDIR="$EXPDIR" -export ROTDIR="$ROTDIR" +export ROTDIR="$(compath.py ${envir}/${NET}/${gfs_ver})" export ROTDIR_DUMP="YES" export DUMP_SUFFIX="" export RUNDIR="$DATAROOT" diff --git a/parm/config/config.efcs b/parm/config/config.efcs index a1f0fe49cc..bfffe3ced8 100755 --- a/parm/config/config.efcs +++ b/parm/config/config.efcs @@ -18,13 +18,9 @@ if [ $QUILTING = ".true." ]; then export npe_efcs=$npe_fv3 fi -# Only use serial I/O for ensemble on Hera and Orion (lustre?) -case $machine in - "HERA" | "ORION") - export OUTPUT_FILETYPE_ATM="netcdf" - export OUTPUT_FILETYPE_SFC="netcdf" - ;; -esac +# Use serial I/O for ensemble (lustre?) +export OUTPUT_FILETYPE_ATM="netcdf" +export OUTPUT_FILETYPE_SFC="netcdf" # Number of enkf members per fcst job export NMEM_EFCSGRP=2 diff --git a/parm/config/config.fv3.nco.static b/parm/config/config.fv3.nco.static index 9181ca88e9..dc60b2ef03 100755 --- a/parm/config/config.fv3.nco.static +++ b/parm/config/config.fv3.nco.static @@ -19,15 +19,7 @@ case_in=$1 echo "BEGIN: config.fv3" - -if [[ "$machine" = "JET" ]]; then - export npe_node_max=24 -elif [[ "$machine" = "HERA" ]]; then - export npe_node_max=40 -elif [[ "$machine" = "ORION" ]]; then - export npe_node_max=40 -fi - +export npe_node_max=128 # (Standard) Model resolution dependent variables case $case_in in @@ -80,7 +72,7 @@ case $case_in in export WRTIOBUF="8M" ;; "C384") - export DELTIM=240 + export DELTIM=200 export layout_x=8 export layout_y=8 export layout_x_gfs=6 @@ -89,26 +81,27 @@ case $case_in in export npe_wav_gfs=35 export nth_fv3=1 export cdmbgwd="1.1,0.72,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling - export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=$npe_node_max - export WRITE_GROUP_GFS=2 - export WRTTASK_PER_GROUP_GFS=$npe_node_max + export WRITE_GROUP=2 + export WRTTASK_PER_GROUP=64 + export WRITE_GROUP_GFS=1 + export WRTTASK_PER_GROUP_GFS=64 export WRTIOBUF="16M" ;; "C768") export DELTIM=150 export layout_x=8 export layout_y=12 - export layout_x_gfs=16 + export layout_x_gfs=12 export layout_y_gfs=24 export npe_wav=140 - export npe_wav_gfs=630 - export nth_fv3=4 + export npe_wav_gfs=448 + export nth_fv3=3 + export nth_fv3_gfs=5 export cdmbgwd="4.0,0.15,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=2 - export WRTTASK_PER_GROUP=$(echo "2*$npe_node_max" |bc) + export WRTTASK_PER_GROUP=64 export WRITE_GROUP_GFS=8 - export WRTTASK_PER_GROUP_GFS=$(echo "2*$npe_node_max" |bc) + export WRTTASK_PER_GROUP_GFS=64 export WRTIOBUF="32M" ;; "C1152") diff --git a/parm/config/config.gempak b/parm/config/config.gempak index a2b5ecbaf5..791770ba4a 100755 --- a/parm/config/config.gempak +++ b/parm/config/config.gempak @@ -8,6 +8,4 @@ echo "BEGIN: config.gempak" # Get task specific resources . $EXPDIR/config.resources gempak -export GEMPAKSH=$HOMEgfs/jobs/JGFS_ATMOS_GEMPAK - echo "END: config.gempak" diff --git a/parm/config/config.prep b/parm/config/config.prep index ac172bf5b8..c4fe7c513e 100755 --- a/parm/config/config.prep +++ b/parm/config/config.prep @@ -17,7 +17,7 @@ export DO_RELOCATE="NO" export TROPCYQCRELOSH="$HOMEgfs/scripts/exglobal_atmos_tropcy_qc_reloc.sh" export SENDCOM=YES -export COMINsyn=${COMINsyn:-${COMROOT}/gfs/prod/syndat} +export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} export HOMERELO=$HOMEgfs export EXECRELO=${HOMERELO}/exec diff --git a/parm/config/config.resources b/parm/config/config.resources index b69e87b800..b723b57916 100755 --- a/parm/config/config.resources +++ b/parm/config/config.resources @@ -220,7 +220,10 @@ elif [ $step = "analcalc" ]; then export wtime_analcalc="00:10:00" export npe_analcalc=127 + export ntasks=$npe_analcalc export nth_analcalc=1 + export nth_echgres=4 + export nth_echgres_gfs=12 export npe_node_analcalc=$npe_node_max elif [ $step = "analdiag" ]; then diff --git a/parm/config/config.resources.nco.static b/parm/config/config.resources.nco.static new file mode 100755 index 0000000000..e6cd2ef73e --- /dev/null +++ b/parm/config/config.resources.nco.static @@ -0,0 +1,354 @@ +#! /usr/bin/env bash + +########## config.resources ########## +# Set resource information for job tasks +# e.g. walltime, node, cores per node, memory etc. + +if [ $# -ne 1 ]; then + + echo "Must specify an input task argument to set resource variables!" + echo "argument can be any one of the following:" + echo "anal analcalc analdiag gldas fcst post vrfy metp arch echgres" + echo "eobs ediag eomg eupd ecen esfc efcs epos earc" + echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostbndpntbll wavepostpnt" + echo "wavegempak waveawipsbulls waveawipsgridded" + echo "postsnd awips gempak" + echo "wafs wafsgrib2 wafsblending wafsgrib20p25 wafsblending0p25 wafsgcip" + exit 1 + +fi + +step=$1 + +echo "BEGIN: config.resources" + +export npe_node_max=128 + +if [ $step = "prep" -o $step = "prepbufr" ]; then + + eval "export wtime_$step='00:45:00'" + eval "export npe_$step=4" + eval "export npe_node_$step=2" + eval "export nth_$step=1" + +elif [ $step = "waveinit" ]; then + + export wtime_waveinit="00:10:00" + export npe_waveinit=11 + export nth_waveinit=1 + export npe_node_waveinit=$npe_waveinit + export NTASKS=$npe_waveinit + export memory_waveinit="2GB" + +elif [ $step = "waveprep" ]; then + + export wtime_waveprep="00:10:00" + export npe_waveprep=5 + export npe_waveprep_gfs=65 + export nth_waveprep=1 + export npe_node_waveprep=$npe_waveprep + export npe_node_waveprep_gfs=$npe_waveprep_gfs + export memory_waveprep="100GB" + export memory_waveprep_gfs="220GB" + export NTASKS=$npe_waveprep + export NTASKS_gfs=$npe_waveprep_gfs + +elif [ $step = "wavepostsbs" ]; then + + export wtime_wavepostsbs="00:20:00" + export wtime_wavepostsbs_gfs="03:00:00" + export npe_wavepostsbs=8 + export nth_wavepostsbs=1 + export npe_node_wavepostsbs=$npe_wavepostsbs + export memory_wavepostsbs="10GB" + export memory_wavepostsbs_gfs="40GB" + export NTASKS=$npe_wavepostsbs + +elif [ $step = "wavepostbndpnt" ]; then + + export wtime_wavepostbndpnt="01:00:00" + export npe_wavepostbndpnt=240 + export nth_wavepostbndpnt=1 + export npe_node_wavepostbndpnt=80 + export NTASKS=$npe_wavepostbndpnt + +elif [ $step = "wavepostbndpntbll" ]; then + + export wtime_wavepostbndpntbll="01:00:00" + export npe_wavepostbndpntbll=448 + export nth_wavepostbndpntbll=1 + export npe_node_wavepostbndpntbll=112 + export NTASKS=$npe_wavepostbndpntbll + +elif [ $step = "wavepostpnt" ]; then + + export wtime_wavepostpnt="01:30:00" + export npe_wavepostpnt=200 + export nth_wavepostpnt=1 + export npe_node_wavepostpnt=50 + export NTASKS=$npe_wavepostpnt + +elif [ $step = "wavegempak" ]; then + + export wtime_wavegempak="02:00:00" + export npe_wavegempak=1 + export nth_wavegempak=1 + export npe_node_wavegempak=$npe_wavegempak + export NTASKS=$npe_wavegempak + export memory_wavegempak="10GB" + +elif [ $step = "waveawipsbulls" ]; then + + export wtime_waveawipsbulls="00:20:00" + export npe_waveawipsbulls=1 + export nth_waveawipsbulls=1 + export npe_node_waveawipsbulls=$(echo "$npe_node_max / $nth_waveawipsbulls" | bc) + export NTASKS=$npe_waveawipsbulls + +elif [ $step = "waveawipsgridded" ]; then + + export wtime_waveawipsgridded="02:00:00" + export npe_waveawipsgridded=1 + export nth_waveawipsgridded=1 + export npe_node_waveawipsgridded=$(echo "$npe_node_max / $nth_waveawipsgridded" | bc) + export NTASKS=$npe_waveawipsgridded + export memory_waveawipsgridded_gfs="2GB" + +elif [ $step = "anal" ]; then + + export wtime_anal="00:50:00" + export wtime_anal_gfs="00:40:00" + export npe_anal=780 + export nth_anal=8 + export npe_anal_gfs=825 + export nth_anal_gfs=8 + export npe_node_anal=15 + export nth_cycle=$npe_node_max + export npe_node_cycle=$(echo "$npe_node_max / $nth_cycle" | bc) + +elif [ $step = "analcalc" ]; then + + export wtime_analcalc="00:10:00" + export npe_analcalc=127 + export ntasks=$npe_analcalc + export nth_analcalc=1 + export nth_echgres=4 + export nth_echgres_gfs=12 + export npe_node_analcalc=$npe_node_max + +elif [ $step = "analdiag" ]; then + + export wtime_analdiag="00:10:00" + export npe_analdiag=96 # Should be at least twice npe_ediag + export nth_analdiag=1 + export npe_node_analdiag=$npe_analdiag + export memory_analdiag="48GB" + +elif [ $step = "gldas" ]; then + + export wtime_gldas="00:10:00" + export npe_gldas=112 + export nth_gldas=1 + export npe_node_gldas=$npe_gldas + export npe_gaussian=96 + export nth_gaussian=1 + export npe_node_gaussian=$(echo "$npe_node_max / $nth_gaussian" | bc) + +elif [ $step = "fcst" ]; then + + export wtime_fcst="01:30:00" + export wtime_fcst_gfs="02:30:00" + export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) + export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) + export nth_fcst=${nth_fv3:-2} + export nth_fcst_gfs=${nth_fv3_gfs:-2} + export npe_node_fcst=32 + export npe_node_fcst_gfs=24 + +elif [ $step = "post" ]; then + + export wtime_post="00:12:00" + export wtime_post_gfs="01:00:00" + export npe_post=126 + export nth_post=1 + export npe_node_post=$npe_post + export npe_node_post_gfs=$npe_post + export npe_node_dwn=$npe_node_max + +elif [ $step = "wafs" ]; then + + export wtime_wafs="00:30:00" + export npe_wafs=1 + export npe_node_wafs=$npe_wafs + export nth_wafs=1 + export memory_wafs="5GB" + +elif [ $step = "wafsgcip" ]; then + + export wtime_wafsgcip="00:30:00" + export npe_wafsgcip=2 + export npe_node_wafsgcip=$npe_wafsgcip + export nth_wafsgcip=1 + export memory_wafsgcip="50GB" + +elif [ $step = "wafsgrib2" ]; then + + export wtime_wafsgrib2="00:30:00" + export npe_wafsgrib2=18 + export npe_node_wafsgrib2=$npe_wafsgrib2 + export nth_wafsgrib2=1 + export memory_wafsgrib2="80GB" + +elif [ $step = "wafsblending" ]; then + + export wtime_wafsblending="00:30:00" + export npe_wafsblending=1 + export npe_node_wafsblending=$npe_wafsblending + export nth_wafsblending=1 + export memory_wafsblending="1GB" + +elif [ $step = "wafsgrib20p25" ]; then + + export wtime_wafsgrib20p25="00:30:00" + export npe_wafsgrib20p25=11 + export npe_node_wafsgrib20p25=$npe_wafsgrib20p25 + export nth_wafsgrib20p25=1 + export memory_wafsgrib20p25="80GB" + +elif [ $step = "wafsblending0p25" ]; then + + export wtime_wafsblending0p25="00:30:00" + export npe_wafsblending0p25=1 + export npe_node_wafsblending0p25=$npe_wafsblending0p25 + export nth_wafsblending0p25=1 + export memory_wafsblending0p25="15GB" + +elif [ $step = "vrfy" ]; then + + export wtime_vrfy="03:00:00" + export wtime_vrfy_gfs="06:00:00" + export npe_vrfy=3 + export nth_vrfy=1 + export npe_node_vrfy=1 + export npe_vrfy_gfs=1 + export npe_node_vrfy_gfs=1 + +elif [ $step = "metp" ]; then + + export nth_metp=1 + export wtime_metp="03:00:00" + export npe_metp=4 + export npe_node_metp=4 + export wtime_metp_gfs="06:00:00" + export npe_metp_gfs=4 + export npe_node_metp_gfs=4 + +elif [ $step = "echgres" ]; then + + export wtime_echgres="00:10:00" + export npe_echgres=3 + export nth_echgres=1 + export npe_node_echgres=3 + export memory_echgres="200GB" + +elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then + + eval "export wtime_$step='06:00:00'" + eval "export npe_$step=1" + eval "export npe_node_$step=1" + eval "export nth_$step=1" + eval "export memory_$step=50GB" + +elif [ $step = "eobs" -o $step = "eomg" ]; then + + + export wtime_eobs="00:10:00" + export wtime_eomg="01:00:00" + export npe_eobs=480 + export nth_eobs=3 + export npe_node_eobs=40 + +elif [ $step = "ediag" ]; then + + export wtime_ediag="00:06:00" + export npe_ediag=48 + export nth_ediag=1 + export npe_node_ediag=$npe_node_max + export memory_ediag="28GB" + +elif [ $step = "eupd" ]; then + + export wtime_eupd="00:30:00" + export npe_eupd=315 + export nth_eupd=14 + export npe_node_eupd=$(echo "$npe_node_max / $nth_eupd" | bc) + +elif [ $step = "ecen" ]; then + + export wtime_ecen="00:10:00" + export npe_ecen=80 + export nth_ecen=4 + export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) + export nth_cycle=$nth_ecen + export npe_node_cycle=$(echo "$npe_node_max / $nth_cycle" | bc) + +elif [ $step = "esfc" ]; then + + export wtime_esfc="00:06:00" + export npe_esfc=80 + export npe_node_esfc=$npe_esfc + export nth_esfc=1 + export nth_cycle=$nth_esfc + export npe_node_cycle=$(echo "$npe_node_max / $nth_cycle" | bc) + export memory_esfc="80GB" + +elif [ $step = "efcs" ]; then + + export wtime_efcs="00:40:00" + export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) + export nth_efcs=${nth_fv3:-2} + export npe_node_efcs=$(echo "$npe_node_max / $nth_efcs" | bc) + +elif [ $step = "epos" ]; then + + export wtime_epos="00:15:00" + export npe_epos=80 + export nth_epos=4 + export npe_node_epos=$(echo "$npe_node_max / $nth_epos" | bc) + +elif [ $step = "postsnd" ]; then + + export wtime_postsnd="02:00:00" + export npe_postsnd=40 + export nth_postsnd=8 + export npe_node_postsnd=10 + export npe_postsndcfp=9 + export npe_node_postsndcfp=1 + +elif [ $step = "awips" ]; then + + export wtime_awips="03:30:00" + export npe_awips=1 + export npe_node_awips=1 + export nth_awips=1 + export memory_awips="10GB" + +elif [ $step = "gempak" ]; then + + export wtime_gempak="03:00:00" + export npe_gempak=2 + export npe_gempak_gfs=28 + export npe_node_gempak=2 + export npe_node_gempak_gfs=28 + export nth_gempak=1 + export memory_gempak="20GB" + export memory_gempak_gfs="200GB" + +else + + echo "Invalid step = $step, ABORT!" + exit 2 + +fi + +echo "END: config.resources" diff --git a/parm/config/config.vrfy b/parm/config/config.vrfy index 312c6fe9ad..bed065a128 100755 --- a/parm/config/config.vrfy +++ b/parm/config/config.vrfy @@ -59,6 +59,7 @@ fi if [ $VRFYRAD = "YES" -o $VRFYMINMON = "YES" -o $VRFYOZN = "YES" ]; then export envir="para" + export COM_IN=$ROTDIR # Radiance Monitoring if [[ "$VRFYRAD" == "YES" && "$CDUMP" == "$CDFNL" ]] ; then @@ -99,12 +100,13 @@ fi # Cyclone genesis and cyclone track verification #------------------------------------------------- -export ens_tracker_ver=v1.1.15.4 -export HOMEens_tracker=$BASE_GIT/TC_tracker/TC_tracker.${ens_tracker_ver} +export ens_tracker_ver=v1.1.15.5 +export HOMEens_tracker=$BASE_GIT/TC_tracker/${ens_tracker_ver} if [ "$VRFYTRAK" = "YES" ]; then export TRACKERSH="$HOMEgfs/jobs/JGFS_ATMOS_CYCLONE_TRACKER" + export COMINsyn=${COMINsyn:-$(compath.py ${envir}/com/gfs/${gfs_ver})/syndat} if [ "$CDUMP" = "gdas" ]; then export FHOUT_CYCLONE=3 export FHMAX_CYCLONE=$FHMAX @@ -112,7 +114,6 @@ if [ "$VRFYTRAK" = "YES" ]; then export FHOUT_CYCLONE=6 export FHMAX_CYCLONE=$(( FHMAX_GFS<240 ? FHMAX_GFS : 240 )) fi - export COMINsyn=${COMINsyn:-${COMROOT}/gfs/prod/syndat} fi @@ -138,5 +139,4 @@ if [[ "$RUNMOS" == "YES" && "$CDUMP" == "gfs" ]]; then fi - echo "END: config.vrfy" diff --git a/scripts/exgdas_atmos_gempak_gif_ncdc.sh b/scripts/exgdas_atmos_gempak_gif_ncdc.sh index 3671d5511f..63a7475a0e 100755 --- a/scripts/exgdas_atmos_gempak_gif_ncdc.sh +++ b/scripts/exgdas_atmos_gempak_gif_ncdc.sh @@ -50,8 +50,6 @@ then $USHgempak/gempak_${RUN}_f${fhr}_gif.sh if [ ! -f $USHgempak/gempak_${RUN}_f${fhr}_gif.sh ] ; then echo "WARNING: $USHgempak/gempak_${RUN}_f${fhr}_gif.sh FILE is missing" - msg=" $USHgempak/gempak_${RUN}_f${fhr}_gif.sh file is missing " - postmsg "jlogfile" "$msg" fi fi diff --git a/scripts/exgdas_atmos_nawips.sh b/scripts/exgdas_atmos_nawips.sh index 4836065aa7..9251852892 100755 --- a/scripts/exgdas_atmos_nawips.sh +++ b/scripts/exgdas_atmos_nawips.sh @@ -13,11 +13,11 @@ source "$HOMEgfs/ush/preamble.sh" "${2}" cd $DATA -RUN=$1 +RUN2=$1 fend=$2 DBN_ALERT_TYPE=$3 -DATA_RUN=$DATA/$RUN +DATA_RUN=$DATA/$RUN2 mkdir -p $DATA_RUN cd $DATA_RUN @@ -75,22 +75,18 @@ while [ $fhcnt -le $fend ] ; do fhr3=$(printf "%03d" $fhcnt) - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} + GEMGRD=${RUN2}_${PDY}${cyc}f${fhr3} - if [ $RUN = "gdas_0p25" ]; then + if [ $RUN2 = "gdas_0p25" ]; then export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr} if [ ! -f $GRIBIN ] ; then echo "WARNING: $GRIBIN FILE is missing" - msg=" $GRIBIN file is missing " - postmsg "$jlogfile" "$msg" fi GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr}.idx else export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr} if [ ! -f $GRIBIN ] ; then echo "WARNING: $GRIBIN FILE is missing" - msg=" $GRIBIN file is missing " - postmsg "$jlogfile" "$msg" fi GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr}.idx fi @@ -102,15 +98,13 @@ while [ $fhcnt -le $fend ] ; do sleep 5 break else - msg="The process is waiting ... ${GRIBIN_chk} file to proceed." - postmsg "${jlogfile}" "$msg" + echo "The process is waiting ... ${GRIBIN_chk} file to proceed." sleep 20 let "icnt=icnt+1" fi if [ $icnt -ge $maxtries ] then - msg="ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." - postmsg "${jlogfile}" "$msg" + echo "ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." export err=7 ; err_chk exit $err fi diff --git a/scripts/exgfs_atmos_awips_20km_1p0deg.sh b/scripts/exgfs_atmos_awips_20km_1p0deg.sh index 3f9f84f237..382388cd1d 100755 --- a/scripts/exgfs_atmos_awips_20km_1p0deg.sh +++ b/scripts/exgfs_atmos_awips_20km_1p0deg.sh @@ -208,8 +208,7 @@ fi if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} else - msg="File ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." - postmsg "$jlogfile" "$msg" + echo "File ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." fi fi elif [ $GRID != "003" ] ; then @@ -236,13 +235,11 @@ fi if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name else - msg="File ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name not posted to db_net." - postmsg "$jlogfile" "$msg" + echo "File ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name not posted to db_net." fi fi fi - msg="Awip Processing ${fcsthrs} hour completed normally" - postmsg "$jlogfile" "$msg" + echo "Awip Processing ${fcsthrs} hour completed normally" done diff --git a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh index 394c5c30d8..64562daeed 100755 --- a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +++ b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh @@ -29,25 +29,23 @@ then while [ $icnt -lt 1000 ] do if [ -r ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} ] ; then - sleep 5 + sleep 5 break else - msg="The process is waiting ... ${GRIBFILE} file to proceed." - postmsg "${jlogfile}" "$msg" + echo "The process is waiting ... ${GRIBFILE} file to proceed." sleep 20 let "icnt=icnt+1" fi if [ $icnt -ge $maxtries ] then - msg="ABORTING: after 1 hour of waiting for ${GRIBFILE} file at F$fhr to end." - postmsg "${jlogfile}" "$msg" + echo "ABORTING: after 1 hour of waiting for ${GRIBFILE} file at F$fhr to end." export err=7 ; err_chk exit $err fi done cp ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} gem_grids${fhr}.gem - + # if [ $cyc -eq 00 -o $cyc -eq 12 ] #then $USHgempak/gempak_${RUN}_f${fhr}_gif.sh @@ -77,7 +75,7 @@ export RSHPDY=$(echo $PDY | cut -c5-)$(echo $PDY | cut -c3-4) cp $HOMEgfs/gempak/dictionaries/sonde.land.tbl . cp $HOMEgfs/gempak/dictionaries/metar.tbl . sort -k 2n,2 metar.tbl > metar_stnm.tbl -cp $COMINgfs/${model}.$cycle.adpupa.tm00.bufr_d fort.40 +cp $COMINobsproc/${model}.$cycle.adpupa.tm00.bufr_d fort.40 export err=$? if [[ $err -ne 0 ]] ; then echo " File ${model}.$cycle.adpupa.tm00.bufr_d does not exist." diff --git a/scripts/exgfs_atmos_gempak_meta.sh b/scripts/exgfs_atmos_gempak_meta.sh index cb64138c61..04f4f1fc5c 100755 --- a/scripts/exgfs_atmos_gempak_meta.sh +++ b/scripts/exgfs_atmos_gempak_meta.sh @@ -27,7 +27,7 @@ do_all=0 #loop through and process needed forecast hours while [ $fhr -le $fhend ] do - # + # # First check to see if this is a rerun. If so make all Meta files if [ $fhr -gt 126 -a $first_time -eq 0 ] ; then do_all=1 @@ -51,8 +51,7 @@ do fi if [ $icnt -ge $maxtries ] then - msg="ABORTING after 1 hour of waiting for gempak grid F$fhr to end." - postmsg "${jlogfile}" "$msg" + echo "ABORTING after 1 hour of waiting for gempak grid F$fhr to end." export err=7 ; err_chk exit $err fi @@ -104,7 +103,7 @@ do # If this is the final fcst hour, alert the # file to all centers. -# +# if [ 10#$fhr -ge $fhend ] ; then export DBN_ALERT_TYPE=GFS_METAFILE_LAST fi @@ -112,12 +111,11 @@ do export fend=$fhr sleep 20 -# mpirun.lsf ntasks=${NTASKS_META:-$(cat $DATA/poescript | wc -l)} ptile=${PTILE_META:-4} threads=${NTHREADS_META:-1} export OMP_NUM_THREADS=$threads - APRUN="mpirun -n $ntasks cfp " + APRUN="mpiexec -l -n $ntasks -ppn $ntasks --cpu-bind verbose,core cfp" APRUN_METACFP=${APRUN_METACFP:-$APRUN} APRUNCFP=$(eval echo $APRUN_METACFP) diff --git a/scripts/exgfs_atmos_goes_nawips.sh b/scripts/exgfs_atmos_goes_nawips.sh index 7aae2e143c..76ae067280 100755 --- a/scripts/exgfs_atmos_goes_nawips.sh +++ b/scripts/exgfs_atmos_goes_nawips.sh @@ -25,7 +25,7 @@ cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl NAGRIB=$GEMEXE/nagrib2 # -entry=$(grep "^$RUN " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}') +entry=$(grep "^$RUN2 " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}') if [ "$entry" != "" ] ; then cpyfil=$(echo $entry | awk 'BEGIN {FS="|"} {print $2}') @@ -56,7 +56,7 @@ while [ $fhcnt -le $fend ] ; do fhr3=$(printf "03d" $fhcnt) GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} + GEMGRD=${RUN2}_${PDY}${cyc}f${fhr3} GRIBIN_chk=$GRIBIN @@ -71,8 +71,7 @@ while [ $fhcnt -le $fend ] ; do fi if [ $icnt -ge $maxtries ] then - msg="ABORTING after 1 hour of waiting for F$fhr to end." - postmsg "${jlogfile}" "$msg" + echo "ABORTING after 1 hour of waiting for F$fhr to end." export err=7 ; err_chk exit $err fi diff --git a/scripts/exgfs_atmos_grib_awips.sh b/scripts/exgfs_atmos_grib_awips.sh index 5252d71983..efa3326513 100755 --- a/scripts/exgfs_atmos_grib_awips.sh +++ b/scripts/exgfs_atmos_grib_awips.sh @@ -68,11 +68,6 @@ do fi done -######################################## -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" -######################################## - echo " ------------------------------------------" echo " BEGIN MAKING GFS GRIB1 AWIPS PRODUCTS" echo " ------------------------------------------" @@ -137,8 +132,7 @@ EOF if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then $DBNROOT/bin/dbn_alert $DBNALERT_TYPE $NET $job ${COMOUTwmo}/xtrn.awpgfs${fcsthrs}.${GRID}.$job_name else - msg="File $output_grb.$job_name not posted to db_net." - postmsg "$jlogfile" "$msg" + echo "File $output_grb.$job_name not posted to db_net." fi fi diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh index 5b75173506..764dde4fe1 100755 --- a/scripts/exgfs_atmos_nawips.sh +++ b/scripts/exgfs_atmos_nawips.sh @@ -18,11 +18,11 @@ source "$HOMEgfs/ush/preamble.sh" "${2}" export ILPOST=${ILPOST:-1} cd $DATA -RUN=$1 +RUN2=$1 fend=$2 DBN_ALERT_TYPE=$3 -DATA_RUN=$DATA/$RUN +DATA_RUN=$DATA/$RUN2 mkdir -p $DATA_RUN cd $DATA_RUN @@ -56,7 +56,7 @@ if [[ $(mkdir lock.${fhcnt}) == 0 ]] ; then fhr3=$(printf "%03d" $fhcnt) - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} + GEMGRD=${RUN2}_${PDY}${cyc}f${fhr3} # Set type of Interpolation for WGRIB2 export opt1=' -set_grib_type same -new_grid_winds earth ' @@ -71,10 +71,10 @@ if [[ $(mkdir lock.${fhcnt}) == 0 ]] ; then export opt28=' -new_grid_interpolation budget -fi ' export TRIMRH=$HOMEgfs/ush/trim_rh.sh - if [ $RUN = "gfs_0p50" ]; then + if [ $RUN2 = "gfs_0p50" ]; then export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr} GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr}.idx - elif [ $RUN = "gfs_0p25" -o $RUN = "gdas_0p25" -o $RUN = "gfs35_atl" -o $RUN = "gfs35_pac" -o $RUN = "gfs40" ]; then + elif [ $RUN2 = "gfs_0p25" -o $RUN2 = "gdas_0p25" -o $RUN2 = "gfs35_atl" -o $RUN2 = "gfs35_pac" -o $RUN2 = "gfs40" ]; then export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr} GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr}.idx else @@ -89,21 +89,19 @@ if [[ $(mkdir lock.${fhcnt}) == 0 ]] ; then sleep 5 break else - msg="The process is waiting ... ${GRIBIN_chk} file to proceed." - postmsg "${jlogfile}" "$msg" + echo "The process is waiting ... ${GRIBIN_chk} file to proceed." sleep 10 let "icnt=icnt+1" fi if [ $icnt -ge $maxtries ] then - msg="ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." - postmsg "${jlogfile}" "$msg" + echo "ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." export err=7 ; err_chk exit $err fi done -case $RUN in +case $RUN2 in gfs35_pac) # $COPYGB2 -g "0 6 0 0 0 0 0 0 416 186 0 0 75125000 130000000 48 17000000 260000000 312000 312000 0" -x $GRIBIN grib$fhr # NEW define gfs35_pac="0 6 0 0 0 0 0 0 416 186 0 -1 75125000 130000000 48 17405000 259480000 312000 312000 0" @@ -165,12 +163,12 @@ EOF cd $DATA_RUN else if [ $fhcnt -ge 240 ] ; then - if [ $fhcnt -lt 276 -a $RUN = "gfs_0p50" ] ; then + if [ $fhcnt -lt 276 -a $RUN2 = "gfs_0p50" ] ; then let fhcnt=fhcnt+6 else let fhcnt=fhcnt+12 fi - elif [ $fhcnt -lt 120 -a $RUN = "gfs_0p25" ] ; then + elif [ $fhcnt -lt 120 -a $RUN2 = "gfs_0p25" ] ; then #### let fhcnt=fhcnt+1 let fhcnt=fhcnt+$ILPOST else diff --git a/scripts/exgfs_wave_nawips.sh b/scripts/exgfs_wave_nawips.sh index 8d41578d7e..68a96003f0 100755 --- a/scripts/exgfs_wave_nawips.sh +++ b/scripts/exgfs_wave_nawips.sh @@ -83,8 +83,7 @@ while [ $fhcnt -le $FHMAX_WAV ]; do sleep 20 fi if [ $icnt -ge $maxtries ]; then - msg="ABORTING after 5 minutes of waiting for $GRIBIN." - postmsg "$jlogfile" "$msg" + echo "ABORTING after 5 minutes of waiting for $GRIBIN." echo ' ' echo '**************************** ' echo '*** ERROR : NO GRIB FILE *** ' @@ -103,8 +102,7 @@ while [ $fhcnt -le $FHMAX_WAV ]; do $GRIBIN 1> out 2>&1 OK=$? if [ "$OK" != '0' ]; then - msg="ABNORMAL EXIT: ERROR IN interpolation the global grid" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: ERROR IN interpolation the global grid" #set +x echo ' ' echo '************************************************************* ' diff --git a/scripts/exgfs_wave_prdgen_bulls.sh b/scripts/exgfs_wave_prdgen_bulls.sh index 10bdee523b..82e4d50a1c 100755 --- a/scripts/exgfs_wave_prdgen_bulls.sh +++ b/scripts/exgfs_wave_prdgen_bulls.sh @@ -29,7 +29,7 @@ source "$HOMEgfs/ush/preamble.sh" export cycle=${cycle:-t${cyc}z} export pgmout=OUTPUT.$$ export DATA=${DATA:-${DATAROOT:?}/${job}.$$} - #export CODEwave=${CODEwave:-${NWROOT}/${NET}_code.${wave_code_ver}/${code_pkg}} + #export CODEwave=${CODEwave:-${PACKAGEROOT}/${NET}_code.${wave_code_ver}/${code_pkg}} export EXECwave=${EXECwave:-$HOMEgfs/exec} export FIXwave=${FIXwave:-$HOMEgfs/fix} export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave} @@ -66,8 +66,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ -f $BullIn ]; then cp $BullIn cbull.tar else - msg="ABNORMAL EXIT: NO BULLETIN TAR FILE" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: NO BULLETIN TAR FILE" set +x echo ' ' echo '************************************ ' @@ -94,8 +93,7 @@ source "$HOMEgfs/ush/preamble.sh" ${TRACE_ON:-set -x} rm -f cbull.tar else - msg="ABNORMAL EXIT: ERROR IN BULLETIN UNTAR" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: ERROR IN BULLETIN UNTAR" set +x echo ' ' echo '****************************************** ' @@ -122,8 +120,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ -f $PARMwave/bull_awips_gfswave ]; then cp $PARMwave/bull_awips_gfswave awipsbull.data else - msg="ABNORMAL EXIT: NO AWIPS BULLETIN HEADER DATA FILE" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: NO AWIPS BULLETIN HEADER DATA FILE" set +x echo ' ' echo '******************************************* ' @@ -186,8 +183,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ "$OK" != '0' ] || [ ! -f $oname ]; then ${TRACE_ON:-set -x} cat formbul.out - msg="ABNORMAL EXIT: ERROR IN formbul" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: ERROR IN formbul" set +x echo ' ' echo '************************************** ' diff --git a/scripts/exgfs_wave_prdgen_gridded.sh b/scripts/exgfs_wave_prdgen_gridded.sh index b56fb15819..4f271672e5 100755 --- a/scripts/exgfs_wave_prdgen_gridded.sh +++ b/scripts/exgfs_wave_prdgen_gridded.sh @@ -42,9 +42,7 @@ source "$HOMEgfs/ush/preamble.sh" cd $DATA export wavelog=${DATA}/${COMPONENTwave}_prdggridded.log - postmsg "$jlogfile" "HAS BEGUN on $(hostname)" - msg="Starting MWW3 GRIDDED PRODUCTS SCRIPT" - postmsg "$jlogfile" "$msg" + echo "Starting MWW3 GRIDDED PRODUCTS SCRIPT" # Output grids grids=${grids:-ao_9km at_10m ep_10m wc_10m glo_30m} # grids=${grids:-ak_10m at_10m ep_10m wc_10m glo_30m} @@ -112,8 +110,7 @@ source "$HOMEgfs/ush/preamble.sh" sleep 5 fi if [ $icnt -ge $maxtries ]; then - msg="ABNORMAL EXIT: NO GRIB FILE FOR GRID $GRIBIN" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: NO GRIB FILE FOR GRID $GRIBIN" echo ' ' echo '**************************** ' echo '*** ERROR : NO GRIB FILE *** ' @@ -188,8 +185,7 @@ source "$HOMEgfs/ush/preamble.sh" if [ "$OK" != '0' ] then - msg="ABNORMAL EXIT: ERROR IN grb2index MWW3 for grid $grdID" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: ERROR IN grb2index MWW3 for grid $grdID" #set +x echo ' ' echo '******************************************** ' @@ -218,8 +214,7 @@ source "$HOMEgfs/ush/preamble.sh" OK=$? if [ "$OK" != '0' ]; then cat tocgrib2.out - msg="ABNORMAL EXIT: ERROR IN tocgrib2" - postmsg "$jlogfile" "$msg" + echo "ABNORMAL EXIT: ERROR IN tocgrib2" #set +x echo ' ' echo '*************************************** ' diff --git a/scripts/exglobal_atmos_tropcy_qc_reloc.sh b/scripts/exglobal_atmos_tropcy_qc_reloc.sh index 6f96d7cfb4..490a5bba4e 100755 --- a/scripts/exglobal_atmos_tropcy_qc_reloc.sh +++ b/scripts/exglobal_atmos_tropcy_qc_reloc.sh @@ -28,21 +28,17 @@ tmmark_uc=$(echo $tmmark | tr [a-z] [A-Z]) iflag=0 if [ $RUN = ndas ]; then if [ $DO_RELOCATE = NO ]; then - msg="CENTER PROCESSING TIME FOR NDAS TROPICAL CYCLONE QC IS $cdate10" - postmsg "$jlogfile" "$msg" - msg="Output tcvitals files will be copied forward in time to proper \ + echo "CENTER PROCESSING TIME FOR NDAS TROPICAL CYCLONE QC IS $cdate10" + echo "Output tcvitals files will be copied forward in time to proper \ output file directory path locations" - postmsg "$jlogfile" "$msg" iflag=1 else - msg="CENTER PROCESSING TIME FOR $tmmark_uc NDAS TROPICAL CYCLONE \ + echo "CENTER PROCESSING TIME FOR $tmmark_uc NDAS TROPICAL CYCLONE \ RELOCATION IS $cdate10" - postmsg "$jlogfile" "$msg" fi else - msg="CENTER PROCESSING TIME FOR $tmmark_uc $NET_uc TROPICAL CYCLONE QC/\ + echo "CENTER PROCESSING TIME FOR $tmmark_uc $NET_uc TROPICAL CYCLONE QC/\ RELOCATION IS $cdate10" - postmsg "$jlogfile" "$msg" fi @@ -59,8 +55,7 @@ if [ "$PROCESS_TROPCY" = 'YES' ]; then ${USHSYND:-$HOMEgfs/ush}/syndat_qctropcy.sh $cdate10 errsc=$? if [ "$errsc" -ne '0' ]; then - msg="syndat_qctropcy.sh failed. exit" - postmsg "$jlogfile" "$msg" + echo "syndat_qctropcy.sh failed. exit" exit $errsc fi diff --git a/scripts/run_reg2grb2.sh b/scripts/run_reg2grb2.sh index 2284088f47..bcdcb1d0be 100755 --- a/scripts/run_reg2grb2.sh +++ b/scripts/run_reg2grb2.sh @@ -68,6 +68,5 @@ $executable > reg2grb2.$CDATE.$IDATE.out # interpolated from 0p25 to 0p5 grid grid2p05="0 6 0 0 0 0 0 0 720 361 0 0 90000000 0 48 -90000000 359500000 500000 500000 0" -#### $NWPROD/util/exec/copygb2 -g "${grid2p05}" -i0 -x $outfile $outfile0p5 $COPYGB2 -g "${grid2p05}" -i0 -x $outfile $outfile0p5 diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 39ad138746..6ce9775dd2 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -366,7 +366,11 @@ cd ${pwd}/../sorc || exit 8 # config.base in the $HOMEgfs/parm/config has no use in development cd $pwd/../parm/config [[ -s config.base ]] && rm -f config.base -[[ $RUN_ENVIR = nco ]] && cp -p config.base.nco.static config.base +if [ $RUN_ENVIR = nco ] ; then + cp -p config.base.nco.static config.base + cp -p config.fv3.nco.static config.fv3 + cp -p config.resources.nco.static config.resources +fi #------------------------------ diff --git a/ush/forecast_predet.sh b/ush/forecast_predet.sh index 947fae59cd..4af2df8b82 100755 --- a/ush/forecast_predet.sh +++ b/ush/forecast_predet.sh @@ -71,8 +71,7 @@ FV3_GFS_predet(){ # Directories. pwd=$(pwd) - NWPROD=${NWPROD:-${NWROOT:-$pwd}} - HOMEgfs=${HOMEgfs:-$NWPROD} + HOMEgfs=${HOMEgfs:-${PACKAGEROOT:-$pwd}} FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} FIX_AM=${FIX_AM:-$FIX_DIR/fix_am} FIX_AER=${FIX_AER:-$FIX_DIR/fix_aer} diff --git a/ush/fv3gfs_downstream_nems.sh b/ush/fv3gfs_downstream_nems.sh index 3b15b00cb2..95b3caa132 100755 --- a/ush/fv3gfs_downstream_nems.sh +++ b/ush/fv3gfs_downstream_nems.sh @@ -34,10 +34,10 @@ source "$HOMEgfs/ush/preamble.sh" "$FH" export downset=${downset:-1} export DATA=${DATA:-/ptmpd2/$LOGNAME/test} -export CNVGRIB=${CNVGRIB:-${NWPROD:-/nwprod}/util/exec/cnvgrib21} -export COPYGB2=${COPYGB2:-${NWPROD:-/nwprod}/util/exec/copygb2} -export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} -export GRBINDEX=${GRBINDEX:-${NWPROD:-nwprod}/util/exec/grbindex} +export CNVGRIB=${CNVGRIB:-${grib_util_ROOT}/bin/cnvgrib} +export COPYGB2=${COPYGB2:-${grib_util_ROOT}/bin/copygb} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} +export GRBINDEX=${GRBINDEX:-${wgrib2_ROOT}/bin/grbindex} export RUN=${RUN:-"gfs"} export cycn=$(echo $CDATE |cut -c 9-10) export TCYC=${TCYC:-".t${cycn}z."} diff --git a/ush/fv3gfs_dwn_nems.sh b/ush/fv3gfs_dwn_nems.sh index eb29445b36..fdc58c68ea 100755 --- a/ush/fv3gfs_dwn_nems.sh +++ b/ush/fv3gfs_dwn_nems.sh @@ -18,9 +18,9 @@ export fhr3=$2 export iproc=$3 export nset=$4 -export CNVGRIB=${CNVGRIB:-$${NWPROD:-/nwprod}/util/exec/cnvgrib21} -export COPYGB2=${COPYGB2:-$${NWPROD:-/nwprod}/util/exec/copygb2} -export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} +export CNVGRIB=${CNVGRIB:-${grib_util_ROOT}/bin/cnvgrib} +export COPYGB2=${COPYGB2:-${grib_util_ROOT}/bin/copygb} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} export MODICEC=${MODICEC:-$USHgfs/mod_icec.sh} diff --git a/ush/fv3gfs_nc2nemsio.sh b/ush/fv3gfs_nc2nemsio.sh index 99eea9ce5f..8bdd4c929a 100755 --- a/ush/fv3gfs_nc2nemsio.sh +++ b/ush/fv3gfs_nc2nemsio.sh @@ -17,8 +17,7 @@ export fdiag=${fdiag:-"none"} # specified forecast output hours pwd=$(pwd) export DATA=${DATA:-$pwd} -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} +export HOMEgfs=${HOMEgfs:-$PACKAGEROOT} export NC2NEMSIOEXE=${NC2NEMSIOEXE:-$HOMEgfs/exec/fv3nc2nemsio.x} cycn=$(echo $CDATE | cut -c 9-10) diff --git a/ush/fv3gfs_regrid_nemsio.sh b/ush/fv3gfs_regrid_nemsio.sh index 7b92c27cde..6a98112578 100755 --- a/ush/fv3gfs_regrid_nemsio.sh +++ b/ush/fv3gfs_regrid_nemsio.sh @@ -25,8 +25,7 @@ source "$HOMEgfs/ush/preamble.sh" # Directories and paths pwd=$(pwd) DATA=${DATA:-$pwd} -NWPROD=${NWPROD:-$pwd} -HOMEgfs=${HOMEgfs:-$NWPROD} +HOMEgfs=${HOMEgfs:-$PACKAGEROOT} FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} FIX_AM=${FIX_AM:-$FIX_DIR/fix_am} FIXfv3=${FIXfv3:-$FIX_DIR/fix_fv3_gmted2010} diff --git a/ush/fv3gfs_remap.sh b/ush/fv3gfs_remap.sh index b1c3546d97..619858ea5d 100755 --- a/ush/fv3gfs_remap.sh +++ b/ush/fv3gfs_remap.sh @@ -13,8 +13,7 @@ export GG=${master_grid:-"0p25deg"} # 1deg 0p5deg 0p25deg 0p125deg pwd=$(pwd) export DATA=${DATA:-$pwd} -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD} +export HOMEgfs=${HOMEgfs:-$PACKAGEROOT} export FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} export FIXfv3=${FIXfv3:-$FIX_DIR/fix_fv3_gmted2010} export REMAPEXE=${REMAPEXE:-$HOMEgfs/exec/fregrid_parallel} diff --git a/ush/gaussian_sfcanl.sh b/ush/gaussian_sfcanl.sh index 147afd5497..68c91b44a1 100755 --- a/ush/gaussian_sfcanl.sh +++ b/ush/gaussian_sfcanl.sh @@ -129,9 +129,9 @@ else fi # Directories. -gfs_ver=${gfs_ver:-v15.0.0} -BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}} -HOMEgfs=${HOMEgfs:-$BASEDIR/gfs_ver.${gfs_ver}} +gfs_ver=${gfs_ver:-v16.3.0} +BASEDIR=${BASEDIR:-${PACKAGEROOT:-/lfs/h1/ops/prod/packages}} +HOMEgfs=${HOMEgfs:-$BASEDIR/gfs.${gfs_ver}} EXECgfs=${EXECgfs:-$HOMEgfs/exec} FIXfv3=${FIXfv3:-$HOMEgfs/fix/fix_fv3_gmted2010} FIXam=${FIXam:-$HOMEgfs/fix/fix_am} diff --git a/ush/gfs_bufr.sh b/ush/gfs_bufr.sh index 07bebd5ac0..181808984a 100755 --- a/ush/gfs_bufr.sh +++ b/ush/gfs_bufr.sh @@ -114,4 +114,11 @@ ln -sf $PARMbufrsnd/bufr_ij13km.txt fort.7 ${APRUN_POSTSND} $EXECbufrsnd/gfs_bufr < gfsparm > out_gfs_bufr_$FEND export err=$? +if [ $err -ne 0 ]; then + echo "GFS postsnd job error, Please check files " + echo $COMIN/${RUN}.${cycle}.atmf${hh2}.${atmfm} + echo $COMIN/${RUN}.${cycle}.sfcf${hh2}.${atmfm} + err_chk +fi + exit ${err} diff --git a/ush/gfs_sndp.sh b/ush/gfs_sndp.sh index a0616e27b4..9f6ce98eb6 100755 --- a/ush/gfs_sndp.sh +++ b/ush/gfs_sndp.sh @@ -37,9 +37,7 @@ cd $DATA/$m #. prep_step export FORT11=$DATA/${m}/bufrin export FORT51=./bufrout - # JY - Turn off the startmsg to reduce the update on jlogfile in this loop - # startmsg - $EXECbufrsnd/tocsbufr << EOF + $EXECbufrsnd/tocsbufr << EOF &INPUT BULHED="$WMOHEAD",KWBX="$CCCC", NCEP2STD=.TRUE., diff --git a/ush/global_extrkr.sh b/ush/global_extrkr.sh deleted file mode 100755 index ad0b249b28..0000000000 --- a/ush/global_extrkr.sh +++ /dev/null @@ -1,1697 +0,0 @@ -#! /usr/bin/env bash - -source "$HOMEgfs/ush/preamble.sh" - -userid=$LOGNAME - -############################################################################## -# cat<${DATA}/tmpsynvit.${atcfout}.${PDY}${CYL} - grep "${current_str}" ${synvitdir}/${synvitfile} \ - >>${DATA}/tmpsynvit.${atcfout}.${PDY}${CYL} - grep "${future_str}" ${synvitfuture_dir}/${synvitfuture_file} \ - >>${DATA}/tmpsynvit.${atcfout}.${PDY}${CYL} -else - set +x - echo " " - echo " There is no (synthetic) TC vitals file for ${CYL}z in ${synvitdir}," - echo " nor is there a TC vitals file for ${old_hh}z in ${synvitold_dir}." - echo " nor is there a TC vitals file for ${future_hh}z in ${synvitfuture_dir}," - echo " Checking the raw TC Vitals file ....." - echo " " - ${TRACE_ON:-set -x} -fi - -# Take the vitals from Steve Lord's /com/gfs/prod tcvitals file, -# and cat them with the NHC-only vitals from the raw, original -# /com/arch/prod/synda_tcvitals file. Do this because the nwprod -# tcvitals file is the original tcvitals file, and Steve runs a -# program that ignores the vitals for a storm that's over land or -# even just too close to land, and for tracking purposes for the -# US regional models, we need these locations. Only include these -# "inland" storm vitals for NHC (we're not going to track inland -# storms that are outside of NHC's domain of responsibility -- we -# don't need that info). -# UPDATE 5/12/98 MARCHOK: awk logic is added to screen NHC -# vitals such as "89E TEST", since TPC -# does not want tracks for such storms. - -grep "${old_str}" ${archsyndir}/syndat_tcvitals.${CENT}${syy} | \ - grep -v TEST | awk 'substr($0,6,1) !~ /8/ {print $0}' \ - >${DATA}/tmprawvit.${atcfout}.${PDY}${CYL} -grep "${current_str}" ${archsyndir}/syndat_tcvitals.${CENT}${syy} | \ - grep -v TEST | awk 'substr($0,6,1) !~ /8/ {print $0}' \ - >>${DATA}/tmprawvit.${atcfout}.${PDY}${CYL} -grep "${future_str}" ${archsyndir}/syndat_tcvitals.${CENT}${syy} | \ - grep -v TEST | awk 'substr($0,6,1) !~ /8/ {print $0}' \ - >>${DATA}/tmprawvit.${atcfout}.${PDY}${CYL} - - -# IMPORTANT: When "cat-ing" these files, make sure that the vitals -# files from the "raw" TC vitals files are first in order and Steve's -# TC vitals files second. This is because Steve's vitals file has -# been error-checked, so if we have a duplicate tc vitals record in -# these 2 files (very likely), program supvit.x below will -# only take the last vitals record listed for a particular storm in -# the vitals file (all previous duplicates are ignored, and Steve's -# error-checked vitals records are kept). - -cat ${DATA}/tmprawvit.${atcfout}.${PDY}${CYL} ${DATA}/tmpsynvit.${atcfout}.${PDY}${CYL} \ - >${DATA}/vitals.${atcfout}.${PDY}${CYL} - -#--------------------------------------------------------------# -# Now run a fortran program that will read all the TC vitals -# records for the current dtg and the dtg from 6h ago, and -# sort out any duplicates. If the program finds a storm that -# was included in the vitals file 6h ago but not for the current -# dtg, this program updates the 6h-old first guess position -# and puts these updated records as well as the records from -# the current dtg into a temporary vitals file. It is this -# temporary vitals file that is then used as the input for the -# tracking program. -#--------------------------------------------------------------# - -oldymdh=$( ${NDATE:?} -${vit_incr} ${PDY}${CYL}) -oldyy=${oldymdh:2:2} -oldmm=${oldymdh:4:2} -olddd=${oldymdh:6:2} -oldhh=${oldymdh:8:2} -oldymd=${oldyy}${oldmm}${olddd} - -futureymdh=$( ${NDATE:?} 6 ${PDY}${CYL}) -futureyy=${futureymdh:2:2} -futuremm=${futureymdh:4:2} -futuredd=${futureymdh:6:2} -futurehh=${futureymdh:8:2} -futureymd=${futureyy}${futuremm}${futuredd} - -cat<${DATA}/suv_input.${atcfout}.${PDY}${CYL} -&datenowin dnow%yy=${syy}, dnow%mm=${smm}, - dnow%dd=${sdd}, dnow%hh=${CYL}/ -&dateoldin dold%yy=${oldyy}, dold%mm=${oldmm}, - dold%dd=${olddd}, dold%hh=${oldhh}/ -&datefuturein dfuture%yy=${futureyy}, dfuture%mm=${futuremm}, - dfuture%dd=${futuredd}, dfuture%hh=${futurehh}/ -&hourinfo vit_hr_incr=${vit_incr}/ -EOF - - -numvitrecs=$(cat ${DATA}/vitals.${atcfout}.${PDY}${CYL} | wc -l) -if [ ${numvitrecs} -eq 0 ] -then - - if [ ${trkrtype} = 'tracker' ] - then - set +x - echo " " - echo "!!! NOTE -- There are no vitals records for this time period." - echo "!!! File ${DATA}/vitals.${atcfout}.${PDY}${CYL} is empty." - echo "!!! It could just be that there are no storms for the current" - echo "!!! time. Please check the dates and submit this job again...." - echo " " - ${TRACE_ON:-set -x} - exit 1 - fi - -fi - -# For tcgen cases, filter to use only vitals from the ocean -# basin of interest.... - -if [ ${trkrtype} = 'tcgen' ] - then - - if [ ${numvitrecs} -gt 0 ] - then - - fullvitfile=${DATA}/vitals.${atcfout}.${PDY}${CYL} - cp $fullvitfile ${DATA}/vitals.all_basins.${atcfout}.${PDY}${CYL} - basin=$( echo $regtype | cut -c1-2) - - if [ ${basin} = 'al' ]; then - cat $fullvitfile | awk '{if (substr($0,8,1) == "L") print $0}' \ - >${DATA}/vitals.tcgen_al_only.${atcfout}.${PDY}${CYL} - cp ${DATA}/vitals.tcgen_al_only.${atcfout}.${PDY}${CYL} \ - ${DATA}/vitals.${atcfout}.${PDY}${CYL} - fi - if [ ${basin} = 'ep' ]; then - cat $fullvitfile | awk '{if (substr($0,8,1) == "E") print $0}' \ - >${DATA}/vitals.tcgen_ep_only.${atcfout}.${PDY}${CYL} - cp ${DATA}/vitals.tcgen_ep_only.${atcfout}.${PDY}${CYL} \ - ${DATA}/vitals.${atcfout}.${PDY}${CYL} - fi - if [ ${basin} = 'wp' ]; then - cat $fullvitfile | awk '{if (substr($0,8,1) == "W") print $0}' \ - >${DATA}/vitals.tcgen_wp_only.${atcfout}.${PDY}${CYL} - cp ${DATA}/vitals.tcgen_wp_only.${atcfout}.${PDY}${CYL} \ - ${DATA}/vitals.${atcfout}.${PDY}${CYL} - fi - - cat ${DATA}/vitals.${atcfout}.${PDY}${CYL} - - fi - -fi - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Before running the program to read, sort and update the vitals, -# first run the vitals through some awk logic, the purpose of -# which is to convert all the 2-digit years into 4-digit years. -# We need this logic to ensure that all the vitals going -# into supvit.f have uniform, 4-digit years in their records. -# -# 1/8/2000: sed code added by Tim Marchok due to the fact that -# some of the vitals were getting past the syndata/qctropcy -# error-checking with a colon in them; the colon appeared -# in the character immediately to the left of the date, which -# was messing up the "(length($4) == 8)" statement logic. -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -sed -e "s/\:/ /g" ${DATA}/vitals.${atcfout}.${PDY}${CYL} > ${DATA}/tempvit -mv ${DATA}/tempvit ${DATA}/vitals.${atcfout}.${PDY}${CYL} - -awk ' -{ - yycheck = substr($0,20,2) - if ((yycheck == 20 || yycheck == 19) && (length($4) == 8)) { - printf ("%s\n",$0) - } - else { - if (yycheck >= 0 && yycheck <= 50) { - printf ("%s20%s\n",substr($0,1,19),substr($0,20)) - } - else { - printf ("%s19%s\n",substr($0,1,19),substr($0,20)) - } - } -} ' ${DATA}/vitals.${atcfout}.${PDY}${CYL} >${DATA}/vitals.${atcfout}.${PDY}${CYL}.y4 - -mv ${DATA}/vitals.${atcfout}.${PDY}${CYL}.y4 ${DATA}/vitals.${atcfout}.${PDY}${CYL} - -if [ ${numvitrecs} -gt 0 ] -then - - export pgm=supvit - . $prep_step - - ln -s -f ${DATA}/vitals.${atcfout}.${PDY}${CYL} fort.31 - ln -s -f ${DATA}/vitals.upd.${atcfout}.${PDY}${CYL} fort.51 - - msg="$pgm start for $atcfout at ${CYL}z" - $postmsg "$jlogfile" "$msg" - - ${exectrkdir}/supvit <${DATA}/suv_input.${atcfout}.${PDY}${CYL} - suvrcc=$? - - if [ ${suvrcc} -eq 0 ] - then - msg="$pgm end for $atcfout at ${CYL}z completed normally" - $postmsg "$jlogfile" "$msg" - else - set +x - echo " " - echo "!!! ERROR -- An error occurred while running supvit.x, " - echo "!!! which is the program that updates the TC Vitals file." - echo "!!! Return code from supvit.x = ${suvrcc}" - echo "!!! model= ${atcfout}, forecast initial time = ${PDY}${CYL}" - echo "!!! Exiting...." - echo " " - ${TRACE_ON:-set -x} - err_exit " FAILED ${jobid} - ERROR RUNNING SUPVIT IN TRACKER SCRIPT- ABNORMAL EXIT" - fi - -else - - touch ${DATA}/vitals.upd.${atcfout}.${PDY}${CYL} - -fi - -#----------------------------------------------------------------- -# In this section, check to see if the user requested the use of -# operational TC vitals records for the initial time only. This -# option might be used for a retrospective medium range forecast -# in which the user wants to initialize with the storms that are -# currently there, but then let the model do its own thing for -# the next 10 or 14 days.... - -#------------------------------------------------------------------# -# Now select all storms to be processed, that is, process every -# storm that's listed in the updated vitals file for the current -# forecast hour. If there are no storms for the current time, -# then exit. -#------------------------------------------------------------------# - -numvitrecs=$(cat ${DATA}/vitals.upd.${atcfout}.${PDY}${CYL} | wc -l) -if [ ${numvitrecs} -eq 0 ] -then - if [ ${trkrtype} = 'tracker' ] - then - set +x - echo " " - echo "!!! NOTE -- There are no vitals records for this time period " - echo "!!! in the UPDATED vitals file." - echo "!!! It could just be that there are no storms for the current" - echo "!!! time. Please check the dates and submit this job again...." - echo " " - ${TRACE_ON:-set -x} - exit 1 - fi -fi - -set +x -echo " " -echo " *--------------------------------*" -echo " | STORM SELECTION |" -echo " *--------------------------------*" -echo " " -${TRACE_ON:-set -x} - -ict=1 -while [ $ict -le 15 ] -do - stormflag[${ict}]=3 - let ict=ict+1 -done - -dtg_current="${symd} ${CYL}00" -stormmax=$( grep "${dtg_current}" ${DATA}/vitals.upd.${atcfout}.${PDY}${CYL} | wc -l) - -if [ ${stormmax} -gt 15 ] -then - stormmax=15 -fi - -sct=1 -while [ ${sct} -le ${stormmax} ] -do - stormflag[${sct}]=1 - let sct=sct+1 -done - - -#---------------------------------------------------------------# -# -# -------- "Genesis" Vitals processing -------- -# -# May 2006: This entire genesis tracking system is being -# upgraded to more comprehensively track and categorize storms. -# One thing that has been missing from the tracking system is -# the ability to keep track of storms from one analysis cycle -# to the next. That is, the current system has been very -# effective at tracking systems within a forecast, but we have -# no methods in place for keeping track of storms across -# difference initial times. For example, if we are running -# the tracker on today's 00z GFS analysis, we will get a -# position for various storms at the analysis time. But then -# if we go ahead and run again at 06z, we have no way of -# telling the tracker that we know about the 00z position of -# this storm. We now address that problem by creating -# "genesis" vitals, that is, when a storm is found at an -# analysis time, we not only produce "atcfunix" output to -# detail the track & intensity of a found storm, but we also -# produce a vitals record that will be used for the next -# run of the tracker script. These "genesis vitals" records -# will be of the format: -# -# YYYYMMDDHH_AAAH_LLLLX_TYP -# -# Where: -# -# YYYYMMDDHH = Date the storm was FIRST identified -# by the tracker. -# AAA = Abs(Latitude) * 10; integer value -# H = 'N' for norther hem, 'S' for southern hem -# LLLL = Abs(Longitude) * 10; integer value -# X = 'E' for eastern hem, 'W' for western hem -# TYP = Tropical cyclone storm id if this is a -# tropical cyclone (e.g., "12L", or "09W", etc). -# If this is one that the tracker instead "Found -# On the Fly (FOF)", we simply put those three -# "FOF" characters in there. - -d6ago_ymdh=$( ${NDATE:?} -6 ${PDY}${CYL}) -d6ago_4ymd=$( echo ${d6ago_ymdh} | cut -c1-8) -d6ago_ymd=$( echo ${d6ago_ymdh} | cut -c3-8) -d6ago_hh=$( echo ${d6ago_ymdh} | cut -c9-10) -d6ago_str="${d6ago_ymd} ${d6ago_hh}00" - -d6ahead_ymdh=$( ${NDATE:?} 6 ${PDY}${CYL}) -d6ahead_4ymd=$( echo ${d6ahead_ymdh} | cut -c1-8) -d6ahead_ymd=$( echo ${d6ahead_ymdh} | cut -c3-8) -d6ahead_hh=$( echo ${d6ahead_ymdh} | cut -c9-10) -d6ahead_str="${d6ahead_ymd} ${d6ahead_hh}00" - -syyyym6=$( echo ${d6ago_ymdh} | cut -c1-4) -smmm6=$( echo ${d6ago_ymdh} | cut -c5-6) -sddm6=$( echo ${d6ago_ymdh} | cut -c7-8) -shhm6=$( echo ${d6ago_ymdh} | cut -c9-10) - -syyyyp6=$( echo ${d6ahead_ymdh} | cut -c1-4) -smmp6=$( echo ${d6ahead_ymdh} | cut -c5-6) -sddp6=$( echo ${d6ahead_ymdh} | cut -c7-8) -shhp6=$( echo ${d6ahead_ymdh} | cut -c9-10) - -set +x -echo " " -echo " d6ago_str= --->${d6ago_str}<---" -echo " current_str= --->${current_str}<---" -echo " d6ahead_str= --->${d6ahead_str}<---" -echo " " -echo " for the times 6h ago, current and 6h ahead:" -echo " " -echo " " -${TRACE_ON:-set -x} - - touch ${DATA}/genvitals.upd.${cmodel}.${atcfout}.${PDY}${CYL} - - -#-----------------------------------------------------------------# -# -# ------ CUT APART INPUT GRIB FILES ------- -# -# For the selected model, cut apart the GRIB input files in order -# to pull out only the variables that we need for the tracker. -# Put these selected variables from all forecast hours into 1 big -# GRIB file that we'll use as input for the tracker. -# -#-----------------------------------------------------------------# - -set +x -echo " " -echo " -----------------------------------------" -echo " NOW CUTTING APART INPUT GRIB FILES TO " -echo " CREATE 1 BIG GRIB INPUT FILE " -echo " -----------------------------------------" -echo " " -${TRACE_ON:-set -x} - -#gix=$NWPROD/util/exec/grbindex -#g2ix=$NWPROD/util/exec/grb2index -#cgb=$NWPROD/util/exec/copygb -#cgb2=$NWPROD/util/exec/copygb2 - -regflag=$(grep NHC ${DATA}/vitals.upd.${atcfout}.${PDY}${CYL} | wc -l) - -# ---------------------------------------------------------------------- -find_gfile() { - # This subroutine finds an input file from a list of possible - # input filenames, and calls err_exit if no file is found. The - # first file found is returned. - - # Calling conventions: - # find_gfile GFS 30 /path/to/file1.master.pgrbq30.grib2 /path/to/file2.master.pgrbq030.grib2 ... - nicename="$1" - nicehour="$2" - shift 2 - gfile=none - echo "Searching for input $nicename data for forecast hour $nicehour" - ${TRACE_ON:-set -x} - now=$( date +%s ) - later=$(( now + wait_max_time )) - # Note: the loop has only one iteration if --wait-max-time is - # unspecified. That is because later=now - while [[ ! ( "$now" -gt "$later" ) ]] ; do - for gfile in "$@" ; do - if [[ ! -e "$gfile" ]] ; then - set +x - echo "$gfile: does not exist" - ${TRACE_ON:-set -x} - gfile=none - elif [[ ! -s "$gfile" ]] ; then - set +x - echo "$gfile: exists, but is empty" - ${TRACE_ON:-set -x} - gfile=none - else - set +x - echo "$gfile: exists, is non-empty, so I will use this file" - ${TRACE_ON:-set -x} - return 0 - fi - done - now=$( date +%s ) - if [[ "$gfile" == none ]] ; then - if [[ ! ( "$now" -lt "$later" ) ]] ; then - set +x - echo " " - echo " " - echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo " !!! $nicename missing for hour $nicehour" - echo " !!! Check for the existence of these file:" - for gfile in "$@" ; do - echo " !!! $nicename File: $gfile" - done - echo " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - echo " " - ${TRACE_ON:-set -x} - err_exit "ERROR: mandatory input GFS file for hour $nicehour is missing or empty. Aborting. Checked for these files: $*" - continue - else - set +x - echo " " - echo " !!! Mandatory input $nicename missing for hour $nicehour" - echo " !!! Will retry after $sleep_time second sleep." - echo " !!! Checked these files:" - for gfile in "$@" ; do - echo " !!! $nicename File: $gfile" - done - echo " " - ${TRACE_ON:-set -x} - sleep $sleep_time - fi - fi - done -} - -# -------------------------------------------------- -# Process GFS or GDAS data -# -------------------------------------------------- -if [[ ${model} -eq 1 || $model == 8 ]] ; then - - export nest_type="fixed" - export trkrebd=360.0 - export trkrwbd=0.0 - export trkrnbd=85.0 - export trkrsbd=-85.0 - rundescr="xxxx" - atcfdescr="xxxx" - - - if [ $loopnum -eq 1 ] - then - - if [ -s ${DATA}/gfsgribfile.${PDY}${CYL} ] - then - rm ${DATA}/gfsgribfile.${PDY}${CYL} - fi - - rm ${DATA}/master.gfsgribfile.${PDY}${CYL}.f* - rm ${DATA}/gfsgribfile.${PDY}${CYL}.f* - >${DATA}/gfsgribfile.${PDY}${CYL} - - set +x - echo " " - echo "Time before gfs wgrib loop is $(date)" - echo " " - ${TRACE_ON:-set -x} - - if [[ "$model" -eq 8 ]] ; then - name=gdas - name1=gdas - nicename=GDAS - else # not model 8, so assume GFS - name=gfs - name1=gfs - nicename=GFS - fi - - for fhour in ${fcsthrs} ; do - fhour=$( echo "$fhour" | bc ) - - if [ ${fhour} -eq $bad_hour ] - then - continue - fi - - fhour00=$( printf %02d "$fhour" ) - fhour000=$( printf %03d "$fhour" ) - fhour0000=$( printf %03d "$fhour" ) - - if [[ "$gribver" == 1 ]] ; then - - find_gfile "$nicename" "$fhour" \ - ${gfsdir}/$name1.t${CYL}z.${flag_pgb}$fhour00 \ - ${gfsdir}/$name1.t${CYL}z.${flag_pgb}$fhour000 \ - ${gfsdir}/pgb${flag_pgb}$fhour00.$name.${symdh} \ - ${gfsdir}/pgrb${flag_pgb}$fhour00.$name.${symdh} - ${WGRIB:?} -s $gfile >gfs.ix - - for parm in ${wgrib_parmlist} - do - case ${parm} in - "SurfaceU") grep "UGRD:10 m " gfs.ix ;; - "SurfaceV") grep "VGRD:10 m " gfs.ix ;; - *) grep "${parm}" gfs.ix ;; - esac - done | ${WGRIB:?} -s $gfile -i -grib -append \ - -o ${DATA}/master.gfsgribfile.${PDY}${CYL}.f${fhour000} - - gfs_master_file=${DATA}/master.gfsgribfile.${PDY}${CYL}.f${fhour000} - gfs_converted_file=${DATA}/gfsgribfile.${PDY}${CYL}.f${fhour000} - gfs_cat_file=${DATA}/gfsgribfile.${PDY}${CYL} -# $cgb -g4 -i2 -x ${gfs_master_file} ${gfs_converted_file} -# cat ${gfs_converted_file} >>${gfs_cat_file} - cat ${gfs_master_file} >>${gfs_cat_file} - - else # gribver is not 1, so assume GRIB2 - - find_gfile "$nicename" "$fhour" \ - ${gfsdir}/$name1.t${CYL}z.pgrb2.0p25.f${fhour000} \ - ${gfsdir}/$name1.t${CYL}z.pgrb2.0p25.f${fhour00} \ - ${gfsdir}/pgb${flag_pgb}$fhour00.$name.${symdh}.grib2 \ - ${gfsdir}/pgrb${flag_pgb}${fhour000}.$name.${symdh}.grib2 - ${WGRIB2:?} -s $gfile >gfs.ix - - for parm in ${wgrib_parmlist} - do - case ${parm} in - "SurfaceU") grep "UGRD:10 m " gfs.ix ;; - "SurfaceV") grep "VGRD:10 m " gfs.ix ;; - *) grep "${parm}" gfs.ix ;; - esac - done | ${WGRIB2:?} -i $gfile -append -grib \ - ${DATA}/master.gfsgribfile.${PDY}${CYL}.f${fhour000} - - gfs_master_file=${DATA}/master.gfsgribfile.${PDY}${CYL}.f${fhour000} - gfs_converted_file=${DATA}/gfsgribfile.${PDY}${CYL}.f${fhour000} - gfs_cat_file=${DATA}/gfsgribfile.${PDY}${CYL} - - ${GRB2INDEX:?} ${gfs_master_file} ${gfs_master_file}.ix - - g1=${gfs_master_file} - x1=${gfs_master_file}.ix - -# grid4="0 6 0 0 0 0 0 0 720 361 0 0 90000000 0 48 -90000000 359500000 500000 500000 0" -# $cgb2 -g "${grid4}" ${g1} ${x1} ${gfs_converted_file} -# cat ${gfs_converted_file} >>${gfs_cat_file} - - cat ${gfs_master_file} >>${gfs_cat_file} - - fi - - done - - if [ ${gribver} -eq 1 ]; then - ${GRBINDEX:?} ${DATA}/gfsgribfile.${PDY}${CYL} ${DATA}/gfsixfile.${PDY}${CYL} - else - ${GRB2INDEX:?} ${DATA}/gfsgribfile.${PDY}${CYL} ${DATA}/gfsixfile.${PDY}${CYL} - fi - -# -------------------------------------------- - - if [[ "$PhaseFlag" == y ]] ; then - - catfile=${DATA}/gfs.${PDY}${CYL}.catfile - >${catfile} - - for fhour in ${fcsthrs} - do - - - fhour=$( echo "$fhour" | bc ) - - if [ ${fhour} -eq $bad_hour ] - then - continue - fi - - fhour00=$( printf %02d "$fhour" ) - fhour000=$( printf %03d "$fhour" ) - fhour0000=$( printf %03d "$fhour" ) - - set +x - echo " " - echo "Date in interpolation for model= $cmodel and fhour= $fhour000 before = $(date)" - echo " " - ${TRACE_ON:-set -x} - - gfile=${DATA}/gfsgribfile.${PDY}${CYL} - ifile=${DATA}/gfsixfile.${PDY}${CYL} - - if [ ${gribver} -eq 1 ]; then - ${GRBINDEX:?} $gfile $ifile - else - ${GRB2INDEX:?} $gfile $ifile - fi - - gparm=7 - namelist=${DATA}/vint_input.${PDY}${CYL}.z - echo "&timein ifcsthour=${fhour000}," >${namelist} - echo " iparm=${gparm}," >>${namelist} - echo " gribver=${gribver}," >>${namelist} - echo " g2_jpdtn=${g2_jpdtn}/" >>${namelist} - - ln -s -f ${gfile} fort.11 - ln -s -f ${FIXRELO}/gfs_hgt_levs.txt fort.16 - ln -s -f ${ifile} fort.31 - ln -s -f ${DATA}/${cmodel}.${PDY}${CYL}.z.f${fhour000} fort.51 - - ${exectrkdir}/vint.x <${namelist} - rcc1=$? - - - gparm=11 - namelist=${DATA}/vint_input.${PDY}${CYL}.t - echo "&timein ifcsthour=${fhour000}," >${namelist} - echo " iparm=${gparm}," >>${namelist} - echo " gribver=${gribver}," >>${namelist} - echo " g2_jpdtn=${g2_jpdtn}/" >>${namelist} - - ln -s -f ${gfile} fort.11 - ln -s -f ${FIXRELO}/gfs_tmp_levs.txt fort.16 - ln -s -f ${ifile} fort.31 - ln -s -f ${DATA}/${cmodel}.${PDY}${CYL}.t.f${fhour000} fort.51 - - ${exectrkdir}/vint.x <${namelist} - rcc2=$? - - namelist=${DATA}/tave_input.${PDY}${CYL} - echo "&timein ifcsthour=${fhour000}," >${namelist} - echo " iparm=${gparm}," >>${namelist} - echo " gribver=${gribver}," >>${namelist} - echo " g2_jpdtn=${g2_jpdtn}/" >>${namelist} - - ffile=${DATA}/${cmodel}.${PDY}${CYL}.t.f${fhour000} - ifile=${DATA}/${cmodel}.${PDY}${CYL}.t.f${fhour000}.i - - if [ ${gribver} -eq 1 ]; then - ${GRBINDEX:?} ${ffile} ${ifile} - else - ${GRB2INDEX:?} ${ffile} ${ifile} - fi - - ln -s -f ${ffile} fort.11 - ln -s -f ${ifile} fort.31 - ln -s -f ${DATA}/${cmodel}.tave.${PDY}${CYL}.f${fhour000} fort.51 - ln -s -f ${DATA}/${cmodel}.tave92.${PDY}${CYL}.f${fhour000} fort.92 - - ${exectrkdir}/tave.x <${namelist} - rcc3=$? - - if [ $rcc1 -eq 0 -a $rcc2 -eq 0 -a $rcc3 -eq 0 ]; then - echo " " - else - mailfile=${rundir}/errmail.${cmodel}.${PDY}${CYL} - echo "CPS/WC interp failure for $cmodel ${PDY}${CYL}" >${mailfile} - mail -s "GFS Failure (CPS/WC int) $cmodel ${PDY}${CYL}" ${userid} <${mailfile} - exit 8 - fi - - tavefile=${DATA}/${cmodel}.tave.${PDY}${CYL}.f${fhour000} - zfile=${DATA}/${cmodel}.${PDY}${CYL}.z.f${fhour000} - cat ${zfile} ${tavefile} >>${catfile} -## rm $tavefile $zfile - - set +x - echo " " - echo "Date in interpolation for cmodel= $cmodel and fhour= $fhour000 after = $(date)" - echo " " - ${TRACE_ON:-set -x} - - done - fi # end of "If PhaseFlag is on" - fi # end of "If loopnum is 1" - - gfile=${DATA}/gfsgribfile.${PDY}${CYL} - ifile=${DATA}/gfsixfile.${PDY}${CYL} - - if [[ "$PhaseFlag" == y ]] ; then - cat ${catfile} >>${gfile} - if [ ${gribver} -eq 1 ]; then - ${GRBINDEX:?} ${gfile} ${ifile} - else - ${GRB2INDEX:?} ${gfile} ${ifile} - fi - fi - - # File names for input to tracker: - gribfile=${DATA}/gfsgribfile.${PDY}${CYL} - ixfile=${DATA}/gfsixfile.${PDY}${CYL} -fi - -$postmsg "$jlogfile" "SUCCESS: have all inputs needed to run tracker. Will now run the tracker." - -#------------------------------------------------------------------------# -# Now run the tracker # -#------------------------------------------------------------------------# - -ist=1 -while [ $ist -le 15 ] -do - if [ ${stormflag[${ist}]} -ne 1 ] - then - set +x; echo "Storm number $ist NOT selected for processing"; ${TRACE_ON:-set -x} - else - set +x; echo "Storm number $ist IS selected for processing...."; ${TRACE_ON:-set -x} - fi - let ist=ist+1 -done - -namelist=${DATA}/input.${atcfout}.${PDY}${CYL} -ATCFNAME=$( echo "${atcfname}" | tr '[a-z]' '[A-Z]') - -if [ ${cmodel} = 'sref' ]; then - export atcfymdh=$( ${NDATE:?} -3 ${scc}${syy}${smm}${sdd}${shh}) -else - export atcfymdh=${scc}${syy}${smm}${sdd}${shh} -fi - -contour_interval=100.0 -write_vit=n -want_oci=.TRUE. - -cat < ${namelist} -&datein inp%bcc=${scc},inp%byy=${syy},inp%bmm=${smm}, - inp%bdd=${sdd},inp%bhh=${shh},inp%model=${model}, - inp%modtyp='${modtyp}', - inp%lt_units='${lead_time_units}', - inp%file_seq='${file_sequence}', - inp%nesttyp='${nest_type}'/ -&atcfinfo atcfnum=${atcfnum},atcfname='${ATCFNAME}', - atcfymdh=${atcfymdh},atcffreq=${atcffreq}/ -&trackerinfo trkrinfo%westbd=${trkrwbd}, - trkrinfo%eastbd=${trkrebd}, - trkrinfo%northbd=${trkrnbd}, - trkrinfo%southbd=${trkrsbd}, - trkrinfo%type='${trkrtype}', - trkrinfo%mslpthresh=${mslpthresh}, - trkrinfo%v850thresh=${v850thresh}, - trkrinfo%gridtype='${modtyp}', - trkrinfo%contint=${contour_interval}, - trkrinfo%want_oci=${want_oci}, - trkrinfo%out_vit='${write_vit}', - trkrinfo%gribver=${gribver}, - trkrinfo%g2_jpdtn=${g2_jpdtn}/ -&phaseinfo phaseflag='${PHASEFLAG}', - phasescheme='${PHASE_SCHEME}', - wcore_depth=${WCORE_DEPTH}/ -&structinfo structflag='${STRUCTFLAG}', - ikeflag='${IKEFLAG}'/ -&fnameinfo gmodname='${atcfname}', - rundescr='${rundescr}', - atcfdescr='${atcfdescr}'/ -&verbose verb=3/ -&waitinfo use_waitfor='n', - wait_min_age=10, - wait_min_size=100, - wait_max_wait=1800, - wait_sleeptime=5, - per_fcst_command=''/ -EOF - -export pgm=gettrk -. $prep_step - -ln -s -f ${gribfile} fort.11 -ln -s -f ${DATA}/vitals.upd.${atcfout}.${PDY}${shh} fort.12 -ln -s -f ${DATA}/genvitals.upd.${cmodel}.${atcfout}.${PDY}${CYL} fort.14 -ihour=1 -for fhour in ${fcsthrs} ; do - fhour=$( echo "$fhour" | bc ) # strip leading zeros - printf "%4d %5d\n" $ihour $(( fhour * 60 )) - let ihour=ihour+1 -done > leadtimes.txt -ln -s -f leadtimes.txt fort.15 -#ln -s -f ${FIXRELO}/${cmodel}.tracker_leadtimes fort.15 -ln -s -f ${ixfile} fort.31 - -if [[ -z "$atcfout" ]] ; then - err_exit 'ERROR: exgfs_trkr script forgot to set $atcfout variable' -fi - -track_file_path=nowhere - -if [ ${trkrtype} = 'tracker' ]; then - if [ ${atcfout} = 'gfdt' -o ${atcfout} = 'gfdl' -o \ - ${atcfout} = 'hwrf' -o ${atcfout} = 'hwft' ]; then - ln -s -f ${DATA}/trak.${atcfout}.all.${stormenv}.${PDY}${CYL} fort.61 - ln -s -f ${DATA}/trak.${atcfout}.atcf.${stormenv}.${PDY}${CYL} fort.62 - ln -s -f ${DATA}/trak.${atcfout}.radii.${stormenv}.${PDY}${CYL} fort.63 - ln -s -f ${DATA}/trak.${atcfout}.atcf_gen.${stormenv}.${PDY}${CYL} fort.66 - ln -s -f ${DATA}/trak.${atcfout}.atcf_sink.${stormenv}.${PDY}${CYL} fort.68 - ln -s -f ${DATA}/trak.${atcfout}.atcf_hfip.${stormenv}.${PDY}${CYL} fort.69 - track_file_path=${DATA}/trak.${atcfout}.atcfunix.${stormenv}.${PDY}${CYL} - else - ln -s -f ${DATA}/trak.${atcfout}.all.${PDY}${CYL} fort.61 - ln -s -f ${DATA}/trak.${atcfout}.atcf.${PDY}${CYL} fort.62 - ln -s -f ${DATA}/trak.${atcfout}.radii.${PDY}${CYL} fort.63 - ln -s -f ${DATA}/trak.${atcfout}.atcf_gen.${PDY}${CYL} fort.66 - ln -s -f ${DATA}/trak.${atcfout}.atcf_sink.${PDY}${CYL} fort.68 - ln -s -f ${DATA}/trak.${atcfout}.atcf_hfip.${PDY}${CYL} fort.69 - track_file_path=${DATA}/trak.${atcfout}.atcfunix.${PDY}${CYL} - fi -else - ln -s -f ${DATA}/trak.${atcfout}.all.${regtype}.${PDY}${CYL} fort.61 - ln -s -f ${DATA}/trak.${atcfout}.atcf.${regtype}.${PDY}${CYL} fort.62 - ln -s -f ${DATA}/trak.${atcfout}.radii.${regtype}.${PDY}${CYL} fort.63 - ln -s -f ${DATA}/trak.${atcfout}.atcf_gen.${regtype}.${PDY}${CYL} fort.66 - ln -s -f ${DATA}/trak.${atcfout}.atcf_sink.${regtype}.${PDY}${CYL} fort.68 - ln -s -f ${DATA}/trak.${atcfout}.atcf_hfip.${regtype}.${PDY}${CYL} fort.69 - track_file_path=${DATA}/trak.${atcfout}.atcfunix.${regtype}.${PDY}${CYL} -fi - -if [[ "$track_file_path" == nowhere ]] ; then - err_exit 'ERROR: exgfs_trkr script forgot to set $track_file_path variable' -fi - -ln -s -f $track_file_path fort.64 - -if [ ${atcfname} = 'aear' ] -then - ln -s -f ${DATA}/trak.${atcfout}.initvitl.${PDY}${CYL} fort.65 -fi - -if [ ${write_vit} = 'y' ] -then - ln -s -f ${DATA}/output_genvitals.${atcfout}.${PDY}${shh} fort.67 -fi - -if [ ${PHASEFLAG} = 'y' ]; then - if [ ${atcfout} = 'gfdt' -o ${atcfout} = 'gfdl' -o \ - ${atcfout} = 'hwrf' -o ${atcfout} = 'hwft' ]; then - ln -s -f ${DATA}/trak.${atcfout}.cps_parms.${stormenv}.${PDY}${CYL} fort.71 - else - ln -s -f ${DATA}/trak.${atcfout}.cps_parms.${PDY}${CYL} fort.71 - fi -fi - -if [ ${STRUCTFLAG} = 'y' ]; then - if [ ${atcfout} = 'gfdt' -o ${atcfout} = 'gfdl' -o \ - ${atcfout} = 'hwrf' -o ${atcfout} = 'hwft' ]; then - ln -s -f ${DATA}/trak.${atcfout}.structure.${stormenv}.${PDY}${CYL} fort.72 - ln -s -f ${DATA}/trak.${atcfout}.fractwind.${stormenv}.${PDY}${CYL} fort.73 - ln -s -f ${DATA}/trak.${atcfout}.pdfwind.${stormenv}.${PDY}${CYL} fort.76 - else - ln -s -f ${DATA}/trak.${atcfout}.structure.${PDY}${CYL} fort.72 - ln -s -f ${DATA}/trak.${atcfout}.fractwind.${PDY}${CYL} fort.73 - ln -s -f ${DATA}/trak.${atcfout}.pdfwind.${PDY}${CYL} fort.76 - fi -fi - -if [ ${IKEFLAG} = 'y' ]; then - if [ ${atcfout} = 'gfdt' -o ${atcfout} = 'gfdl' -o \ - ${atcfout} = 'hwrf' -o ${atcfout} = 'hwft' ]; then - ln -s -f ${DATA}/trak.${atcfout}.ike.${stormenv}.${PDY}${CYL} fort.74 - else - ln -s -f ${DATA}/trak.${atcfout}.ike.${PDY}${CYL} fort.74 - fi -fi - -if [ ${trkrtype} = 'midlat' -o ${trkrtype} = 'tcgen' ]; then - ln -s -f ${DATA}/trkrmask.${atcfout}.${regtype}.${PDY}${CYL} fort.77 -fi - - -set +x -echo " " -echo " -----------------------------------------------" -echo " NOW EXECUTING TRACKER......" -echo " -----------------------------------------------" -echo " " -${TRACE_ON:-set -x} - -msg="$pgm start for $atcfout at ${CYL}z" -$postmsg "$jlogfile" "$msg" - -set +x -echo "+++ TIMING: BEFORE gettrk ---> $(date)" -${TRACE_ON:-set -x} - -set +x -echo " " -echo "TIMING: Before call to gettrk at $(date)" -echo " " -${TRACE_ON:-set -x} - -##/usrx/local/bin/getrusage -a /hwrf/save/Qingfu.Liu/trak/para/exec/gettrk <${namelist} - -${exectrkdir}/gettrk <${namelist} | tee gettrk.log -gettrk_rcc=$? - -set +x -echo " " -echo "TIMING: After call to gettrk at $(date)" -echo " " -${TRACE_ON:-set -x} - -set +x -echo "+++ TIMING: AFTER gettrk ---> $(date)" -${TRACE_ON:-set -x} - -#--------------------------------------------------------------# -# Send a message to the jlogfile for each storm that used -# tcvitals for hour 0 track/intensity info. -#--------------------------------------------------------------# - -pcount=0 -cat gettrk.log | grep -a 'NOTE: TCVITALS_USED_FOR_ATCF_F00' | \ -while read line -do - echo "line is [$line]" - if [[ ! ( "$pcount" -lt 30 ) ]] ; then - $postmsg "$jlogfile" "Hit maximum number of postmsg commands for tcvitals usage at hour 0. Will stop warning about that, to avoid spamming jlogfile." - break - fi - $postmsg "$jlogfile" "$line" - pcount=$(( pcount + 1 )) -done - -#--------------------------------------------------------------# -# Now copy the output track files to different directories -#--------------------------------------------------------------# - -set +x -echo " " -echo " -----------------------------------------------" -echo " NOW COPYING OUTPUT TRACK FILES TO COM " -echo " -----------------------------------------------" -echo " " -${TRACE_ON:-set -x} - -if [[ ! -e "$track_file_path" ]] ; then - $postmsg "$jlogfile" "WARNING: tracker output file does not exist. This is probably an error. File: $track_file_path" - $postmsg "$jlogfile" "WARNING: exgfs_trkr will create an empty track file and deliver that." - cat /dev/null > $track_file_path -elif [[ ! -s "$track_file_path" ]] ; then - $postmsg "$jlogfile" "WARNING: tracker output file is empty. That is only an error if there are storms or genesis cases somewhere in the world. File: $track_file_path" -else - $postmsg "$jlogfile" "SUCCESS: Track file exists and is non-empty: $track_file" - if [[ "$PHASEFLAG" == n ]] ; then - echo "Phase information was disabled. I will remove the empty phase information from the track file before delivery." - cp -p $track_file_path $track_file_path.orig - cut -c1-112 < $track_file_path.orig > $track_file_path - if [[ ! -s "$track_file_path" ]] ; then - $postmsg "$jlogfile" "WARNING: Something went wrong with \"cut\" command to remove phase information. Will deliver original file." - /bin/mv -f $track_file_path.orig $track_file_path - else - $postmsg "$jlogfile" "SUCCESS: Removed empty phase information because phase information is disabled." - fi - fi -fi - -#mkdir /global/save/Qingfu.Liu/gfspara_track/gfs.${PDY}${CYL} -#cp /ptmpp1/Qingfu.Liu/trakout2/${PDY}${CYL}/gfs/trak.gfso.atcf* /global/save/Qingfu.Liu/gfspara_track/gfs.${PDY}${CYL}/. -#rm -rf /ptmpp1/Qingfu.Liu/trakout2/${PDY}${CYL}/gfs/* - -if [ ${gettrk_rcc} -eq 0 ]; then - - if [ -s ${DATA}/output_genvitals.${atcfout}.${PDY}${shh} ]; then - cat ${DATA}/output_genvitals.${atcfout}.${PDY}${shh} >>${genvitfile} - fi - - if [ ${PARAFLAG} = 'YES' ] - then - - if [[ ! -s "$track_file_path" ]] ; then - $postmsg "$jlogfile" "WARNING: delivering empty track file to rundir." - fi - - cp $track_file_path ../. - cat $track_file_path >> \ - ${rundir}/${cmodel}.atcfunix.${syyyy} - if [ ${cmodel} = 'gfs' ]; then - cat ${rundir}/${cmodel}.atcfunix.${syyyy} | sed -e "s/ GFSO/ AVNO/g" >>${rundir}/avn.atcfunix.${syyyy} - fi -# cp ${DATA}/trak.${atcfout}.atcf_sink.${regtype}.${PDY}${CYL} ../. -# cp ${DATA}/trak.${atcfout}.atcf_gen.${regtype}.${PDY}${CYL} ../. - fi - - msg="$pgm end for $atcfout at ${CYL}z completed normally" - $postmsg "$jlogfile" "$msg" - -# Now copy track files into various archives.... - - if [ ${SENDCOM} = 'YES' ] - then - - if [[ ! -s "$track_file_path" ]] ; then - $postmsg "$jlogfile" "WARNING: delivering an empty track file to COM." - return - fi - - glatuxarch=${glatuxarch:-${gltrkdir}/tracks.atcfunix.${syy}} - - cat $track_file_path >>${glatuxarch} - if [ ${cmodel} = 'gfs' ]; then - cat $track_file_path | sed -e "s/ GFSO/ AVNO/g" >>${glatuxarch} - fi - - if [ ${PARAFLAG} = 'YES' ] - then - echo " " - tmatuxarch=${tmatuxarch:-/gpfs/gd2/emc/hwrf/save/${userid}/trak/prod/tracks.atcfunix.${syy}} - cat $track_file_path >>${tmatuxarch} - if [ ${cmodel} = 'gfs' ]; then - cat $track_file_path | sed -e "s/ GFSO/ AVNO/g" >>${tmatuxarch} - fi - else - - if [ ${cmodel} = 'gfdl' ] - then - cp $track_file_path ${COM}/${stormenv}.${PDY}${CYL}.trackeratcfunix - else - cp $track_file_path ${COM}/${atcfout}.t${CYL}z.cyclone.trackatcfunix - if [ ${cmodel} = 'gfs' ]; then - cat $track_file_path | sed -e "s/ GFSO/ AVNO/g" >${COM}/avn.t${CYL}z.cyclone.trackatcfunix - fi - fi - - tmscrdir=/gpfs/gd2/emc/hwrf/save/${userid}/trak/prod - - tmtrakstat=${tmscrdir}/tracker.prod.status - echo "${atcfout} tracker completed okay for ${PDY}${CYL}" >>${tmtrakstat} - - export SENDDBN=${SENDDBN:-YES} - if [ ${SENDDBN} = 'YES' ] - then - if [ ${cmodel} = 'gfdl' ] - then - $DBNROOT/bin/dbn_alert ATCFUNIX GFS_NAVY $job ${COM}/${stormenv}.${PDY}${CYL}.trackeratcfunix - else - $DBNROOT/bin/dbn_alert ATCFUNIX GFS_NAVY $job ${COM}/${atcfout}.t${CYL}z.cyclone.trackatcfunix - if [ ${cmodel} = 'gfs' ]; then - $DBNROOT/bin/dbn_alert ATCFUNIX GFS_NAVY $job ${COM}/avn.t${CYL}z.cyclone.trackatcfunix - fi - fi - fi - - if [[ "$SENDNHC" == YES ]] ; then - # We need to parse apart the atcfunix file and distribute the forecasts to - # the necessary directories. To do this, first sort the atcfunix records - # by forecast hour (k6), then sort again by ocean basin (k1), storm number (k2) - # and then quadrant radii wind threshold (k12). Once you've got that organized - # file, break the file up by putting all the forecast records for each storm - # into a separate file. Then, for each file, find the corresponding atcfunix - # file in the /nhc/com/prod/atcf directory and dump the atcfunix records for that - # storm in there. - - if [ ${cmodel} = 'gfdl' ] - then - auxfile=${COM}/${stormenv}.${PDY}${CYL}.trackeratcfunix - else - auxfile=$track_file_path - fi - - sort -k6 ${auxfile} | sort -k1 -k2 -k12 >atcfunix.sorted - - old_string="XX, XX" - - ict=0 - while read unixrec - do - storm_string=$( echo "${unixrec}" | cut -c1-6) - if [ "${storm_string}" = "${old_string}" ] - then - echo "${unixrec}" >>atcfunix_file.${ict} - else - let ict=ict+1 - echo "${unixrec}" >atcfunix_file.${ict} - old_string="${storm_string}" - fi - done >${ATCFdir}/${at}${NO}${syyyy}/a${at}${NO}${syyyy}.dat - cat atcfunix_file.$mct >>${ATCFdir}/${at}${NO}${syyyy}/a${at}${NO}${syyyy}.dat - cat atcfunix_file.$mct >>${ATCFdir}/${at}${NO}${syyyy}/ncep_a${at}${NO}${syyyy}.dat - if [ ${cmodel} = 'gfs' ]; then - cat atcfunix_file.$mct | sed -e "s/ GFSO/ AVNO/g" >>${ATCFdir}/${at}${NO}${syyyy}/a${at}${NO}${syyyy}.dat - cat atcfunix_file.$mct | sed -e "s/ GFSO/ AVNO/g" >>${ATCFdir}/${at}${NO}${syyyy}/ncep_a${at}${NO}${syyyy}.dat - fi - set +x - echo " " - echo "+++ Adding records to TPC ATCFUNIX directory: /tpcprd/atcf_unix/${at}${NO}${syyyy}" - echo " " - ${TRACE_ON:-set -x} - else - set +x - echo " " - echo "There is no TPC ATCFUNIX directory for: /tpcprd/atcf_unix/${at}${NO}${syyyy}" - ${TRACE_ON:-set -x} - fi - done - fi - fi - fi - - fi - -else - - if [ ${PARAFLAG} = 'YES' ] - then - echo " " - else - tmtrakstat=/gpfs/gd2/emc/hwrf/save/${userid}/trak/prod/tracker.prod.status - echo "ERROR: ${atcfout} tracker FAILED for ${PDY}${CYL}" >>${tmtrakstat} - fi - - set +x - echo " " - echo "!!! ERROR -- An error occurred while running gettrk.x, " - echo "!!! which is the program that actually gets the track." - echo "!!! Return code from gettrk.x = ${gettrk_rcc}" - echo "!!! model= ${atcfout}, forecast initial time = ${PDY}${CYL}" - echo "!!! Exiting...." - echo " " - ${TRACE_ON:-set -x} - err_exit " FAILED ${jobid} - ERROR RUNNING GETTRK IN TRACKER SCRIPT- ABNORMAL EXIT" - -fi diff --git a/ush/global_nceppost.sh b/ush/global_nceppost.sh index 45aebe8e4f..2c0711c57f 100755 --- a/ush/global_nceppost.sh +++ b/ush/global_nceppost.sh @@ -55,7 +55,7 @@ # CHGRESSH optional: the script to run chgres # default to to ${USHglobal}/global_chgres.sh # SIGLEVEL optional: the coordinate text file -# default to to /nwprod/fix/global_hyblev.l${LEVS}.txt +# default to to $HOMEgfs/fix/global_hyblev.l${LEVS}.txt ##### Chuang: Add new imported Shell Variable for ncep post # OUTTYP Output file type read in by post # 1: if user has a sigma file and needs post to run chgres to convert to gfs io file @@ -83,14 +83,10 @@ # GENPSICHIEXE Optional, specify where executable is for generating # psi and chi. ######################################################################## -# EXECUTIL Directory for utility executables -# defaults to /nwprod/util/exec -# USHUTIL Directory for utility scripts -# defaults to /nwprod/util/ush # EXECglobal Directory for global executables -# defaults to /nwprod/exec +# defaults to $HOMEgfs/exec # USHglobal Directory for global scripts -# defaults to /nwprod/ush +# defaults to $HOMEgfs/ush # DATA working directory # (if nonexistent will be made, used and deleted) # defaults to current working directory @@ -101,7 +97,6 @@ # POSTGPEXEC Global post executable # defaults to ${EXECglobal}/ncep_post # GRBINDEX GRIB index maker -# defaults to ${EXECUTIL}/grbindex$XC # ANOMCATSH Global anomaly GRIB script # defaults to ${USHglobal/global_anomcat.sh # POSTGPLIST File containing further namelist inputs @@ -197,11 +192,8 @@ export IO=${6:-${IO:-0}} export JO=${7:-${JO:-0}} export IGEN=${8:-${IGEN:-0}} # Directories. -export NWPROD=${NWPROD:-/nwprod} -#export EXECUTIL=${EXECUTIL:-$NWPROD/util/exec} -export USHUTIL=${USHUTIL:-$NWPROD/util/ush} -export EXECglobal=${EXECglobal:-$NWPROD/exec} -export USHglobal=${USHglobal:-$NWPROD/ush} +export EXECglobal=${EXECglobal:-$HOMEgfs/exec} +export USHglobal=${USHglobal:-$HOMEgfs/ush} export DATA=${DATA:-$(pwd)} # Filenames. export MP=${MP:-$([[ $LOADL_STEP_TYPE = PARALLEL ]]&&echo "p"||echo "s")} @@ -216,7 +208,7 @@ export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT} export ENDSCRIPT=${ENDSCRIPT} export GFSOUT=${GFSOUT:-gfsout} -export CTLFILE=${CTLFILE:-$NWPROD/parm/gfs_cntrl.parm} +export CTLFILE=${CTLFILE:-$HOMEgfs/parm/post/postcntrl_gfs.xml} export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} export GRIBVERSION=${GRIBVERSION:-'grib1'} # Other variables. @@ -251,7 +243,7 @@ if [ ${OUTTYP} -le 3 ] ; then fi fi -export SIGHDR=${SIGHDR:-$NWPROD/exec/global_sighdr} +export SIGHDR=${SIGHDR:-$HOMEgfs/exec/global_sighdr} export IDRT=${IDRT:-4} if [ ${OUTTYP} -le 1 ] ; then @@ -268,7 +260,7 @@ if [ ${OUTTYP} -le 1 ] ; then export CHGRESVARS="LATCH=$LATCH,$CHGRESVARS" fi #export SIGLEVEL=${SIGLEVEL:-""} - export SIGLEVEL=${SIGLEVEL:-"$NWPROD/fix/global_hyblev.l${LEVS}.txt"} + export SIGLEVEL=${SIGLEVEL:-"$HOMEgfs/fix/global_hyblev.l${LEVS}.txt"} # specify threads for running chgres export OMP_NUM_THREADS=$CHGRESTHREAD export NTHREADS=$OMP_NUM_THREADS diff --git a/ush/inter_flux.sh b/ush/inter_flux.sh index 6b3d434069..661fcb1fd0 100755 --- a/ush/inter_flux.sh +++ b/ush/inter_flux.sh @@ -8,10 +8,10 @@ source "$HOMEgfs/ush/preamble.sh" "$FH" # into lat-lon grids. #----------------------------------------------------------------------- -export CNVGRIB=${CNVGRIB:-${NWPROD:-/nwprod}/util/exec/cnvgrib21} -export COPYGB2=${COPYGB2:-${NWPROD:-/nwprod}/util/exec/copygb2} -export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} -export GRBINDEX=${GRBINDEX:-${NWPROD:-nwprod}/util/exec/grbindex} +export CNVGRIB=${CNVGRIB:-${grib_util_ROOT}/bin/cnvgrib} +export COPYGB2=${COPYGB2:-${grib_util_ROOT}/bin/copygb} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} +export GRBINDEX=${GRBINDEX:-${wgrib2_ROOT}/bin/grbindex} export RUN=${RUN:-"gfs"} export cycn=$(echo $CDATE |cut -c 9-10) export TCYC=${TCYC:-".t${cycn}z."} diff --git a/ush/mod_icec.sh b/ush/mod_icec.sh index f62131846e..96ccab9075 100755 --- a/ush/mod_icec.sh +++ b/ush/mod_icec.sh @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" f=$1 -export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} $WGRIB2 ${optncpu:-} $f \ -if 'LAND' -rpn 'sto_1' -fi \ diff --git a/ush/scale_dec.sh b/ush/scale_dec.sh index 59e2bab14e..77136d7f70 100755 --- a/ush/scale_dec.sh +++ b/ush/scale_dec.sh @@ -13,7 +13,7 @@ source "$HOMEgfs/ush/preamble.sh" f=$1 -export WGRIB2=${WGRIB2:-${NWROOT}/grib_util.v1.1.0/exec/wgrib2} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} # export WGRIB2=/gpfs/dell1/nco/ops/nwprod/grib_util.v1.1.0/exec/wgrib2 diff --git a/ush/syndat_getjtbul.sh b/ush/syndat_getjtbul.sh index 89196d0596..dd70849ad8 100755 --- a/ush/syndat_getjtbul.sh +++ b/ush/syndat_getjtbul.sh @@ -33,17 +33,8 @@ EXECSYND=${EXECSYND:-${HOMESYND}/exec} cd $DATA if [ "$#" -ne '1' ]; then - msg="**NON-FATAL ERROR PROGRAM SYNDAT_GETJTBUL run date not in \ + echo "**NON-FATAL ERROR PROGRAM SYNDAT_GETJTBUL run date not in \ positional parameter 1" - set +x - echo - echo $msg - echo - ${TRACE_ON:-set -x} - echo $msg >> $pgmout - set +u - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - set -u echo "Leaving sub-shell syndat_getjtbul.sh to recover JTWC Bulletins" \ >> $pgmout @@ -124,11 +115,8 @@ fi perl -wpi.ORIG -e 's/(^.... ... )(\S{9,9})(\S{1,})/$1$2/' jtwcbul diff jtwcbul.ORIG jtwcbul > jtwcbul_changes.txt if [ -s jtwcbul_changes.txt ]; then - msg="***WARNING: SOME JTWC VITALS SEGMENTS REQUIRED PRELIMINARY MODIFICATION!" - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - echo -e "\n${msg}. Changes follow:" >> $pgmout - cat jtwcbul_changes.txt >> $pgmout - echo -e "\n" >> $pgmout + echo "***WARNING: SOME JTWC VITALS SEGMENTS REQUIRED PRELIMINARY MODIFICATION!" + cat jtwcbul_changes.txt fi # Execute bulletin processing @@ -175,30 +163,12 @@ available for qctropcy for $CDATE10" fi fi else - msg="**NON-FATAL ERROR PROGRAM SYNDAT_GETJTBUL FOR $CDATE10 \ + echo "**NON-FATAL ERROR PROGRAM SYNDAT_GETJTBUL FOR $CDATE10 \ RETURN CODE $errget" fi - set +x - echo - echo $msg - echo - ${TRACE_ON:-set -x} - echo $msg >> $pgmout - set +u - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - set -u else - msg="program SYNDAT_GETJTBUL completed normally for $CDATE10, JTWC \ + echo "program SYNDAT_GETJTBUL completed normally for $CDATE10, JTWC \ rec. passed to qctropcy" - set +x - echo - echo $msg - echo - ${TRACE_ON:-set -x} - echo $msg >> $pgmout - set +u - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - set -u fi set +x echo diff --git a/ush/syndat_qctropcy.sh b/ush/syndat_qctropcy.sh index 571a7543b5..402db48cd1 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) -# jlogfile - path to job log file (skipped over by this script if not -# passed in) # SENDCOM switch copy output files to $COMSP # (Default: YES) # files_override - switch to override default "files" setting for given run diff --git a/ush/trim_rh.sh b/ush/trim_rh.sh index 2de2e17c7b..5a8903cae6 100755 --- a/ush/trim_rh.sh +++ b/ush/trim_rh.sh @@ -7,7 +7,7 @@ source "$HOMEgfs/ush/preamble.sh" f=$1 -export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} +export WGRIB2=${WGRIB2:-${wgrib2_ROOT}/bin/wgrib2} $WGRIB2 ${optncpu:-} $f -not_if ':RH:' -grib $f.new \ -if ':RH:' -rpn "10:*:0.5:+:floor:1000:min:10:/" -set_grib_type same \ diff --git a/ush/tropcy_relocate.sh b/ush/tropcy_relocate.sh index e3a82efaf7..cc3856dea8 100755 --- a/ush/tropcy_relocate.sh +++ b/ush/tropcy_relocate.sh @@ -124,7 +124,6 @@ # -stdoutmode ordered" # USHGETGES String indicating directory path for GETGES utility ush # file -# Default is "/nwprod/util/ush" # USHRELO String indicating directory path for RELOCATE ush files # Default is "${HOMERELO}/ush" # EXECRELO String indicating directory path for RELOCATE executables @@ -158,8 +157,6 @@ # be used by the script. If they are not, they will be skipped # over by the script. # -# jlogfile String indicating path to joblog file -# # Exported Shell Variables: # CDATE10 String indicating the center date/time for the relocation # processing @@ -183,9 +180,7 @@ # $USHRELO/tropcy_relocate_extrkr.sh) # $DATA/err_chk (here and in child script # $USHRELO/tropcy_relocate_extrkr.sh) -# NOTE 1: postmsg above is required ONLY if "$jlogfile" is -# present. -# NOTE 2: The last three scripts above are NOT REQUIRED utilities. +# NOTE: The last three scripts above are NOT REQUIRED utilities. # If $DATA/prep_step not found, a scaled down version of it is # executed in-line. If $DATA/err_exit or $DATA/err_chk are not # found and a fatal error has occurred, then the script calling @@ -216,7 +211,7 @@ source "$HOMEgfs/ush/preamble.sh" MACHINE=${MACHINE:-$(hostname -s | cut -c 1-3)} SENDCOM=${SENDCOM:-YES} -export NWROOT=${NWROOT:-/nwprod2} +export OPSROOT=${OPSROOT:-/lfs/h1/ops/prod} GRIBVERSION=${GRIBVERSION:-"grib2"} if [ ! -d $DATA ] ; then mkdir -p $DATA ;fi @@ -284,13 +279,12 @@ ${TRACE_ON:-set -x} envir=${envir:-prod} if [ $MACHINE != sgi ]; then - HOMEALL=${HOMEALL:-$NWROOT} + HOMEALL=${HOMEALL:-$OPSROOT} else HOMEALL=${HOMEALL:-/disk1/users/snake/prepobs} fi HOMERELO=${HOMERELO:-${shared_global_home}} -#HOMERELO=${HOMERELO:-$NWROOT/tropcy_qc_reloc.${tropcy_qc_reloc_ver}} envir_getges=${envir_getges:-$envir} if [ $modhr -eq 0 ]; then @@ -327,11 +321,7 @@ GETTX=${GETTX:-$EXECRELO/gettrk} # attempt to perform tropical cyclone relocation # ---------------------------------------------- -msg="Attempt to perform tropical cyclone relocation for $CDATE10" -set +u -##[ -n "$jlogfile" ] && $DATA/postmsg "$jlogfile" "$msg" -[ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" -set -u +echo "Attempt to perform tropical cyclone relocation for $CDATE10" if [ $modhr -ne 0 ]; then @@ -524,11 +514,8 @@ grep "$pdy $cyc" VITL errgrep=$? > tcvitals if [ $errgrep -ne 0 ] ; then - msg="NO TCVITAL RECORDS FOUND FOR $CDATE10 - EXIT TROPICAL CYCLONE \ + echo "NO TCVITAL RECORDS FOUND FOR $CDATE10 - EXIT TROPICAL CYCLONE \ RELOCATION PROCESSING" - set +u - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - set -u # The existence of ${COMSP}tropcy_relocation_status.$tmmark file will tell the # subsequent PREP processing that RELOCATION processing occurred, echo @@ -727,11 +714,8 @@ else rm ${COMSP}sgesprep_pathname.$tmmark - msg="TROPICAL CYCLONE RELOCATION PROCESSING SUCCESSFULLY COMPLETED FOR \ + echo "TROPICAL CYCLONE RELOCATION PROCESSING SUCCESSFULLY COMPLETED FOR \ $CDATE10" - set +u - [ -n "$jlogfile" ] && postmsg "$jlogfile" "$msg" - set -u # end GFDL ges manipulation # ------------------------- diff --git a/util/sorc/webtitle.fd/makefile b/util/sorc/webtitle.fd/makefile index bcad6f8f9f..b6ea1ca304 100755 --- a/util/sorc/webtitle.fd/makefile +++ b/util/sorc/webtitle.fd/makefile @@ -11,12 +11,12 @@ OBJS= webtitle.o # CMD Name of the executable # PROFLIB Library needed for profiling # -FC = ifort +FC = ifort LIBS= ${W3NCO_LIB4} CMD = webtitle -FFLAGS = +FFLAGS = -g -traceback #FFLAGS = -debug # Lines from here on down should not need to be changed. They are the diff --git a/util/ush/make_tif.sh b/util/ush/make_tif.sh index 2609d1d797..2391ca9d81 100755 --- a/util/ush/make_tif.sh +++ b/util/ush/make_tif.sh @@ -2,18 +2,9 @@ cd $DATA # -# Use Image Magick to convert the GIF to TIF +# Use Image Magick system module to convert the GIF to TIF # format # -# module show imagemagick-intel-sandybridge/6.8.3 on CRAY -# export PATH=$PATH:/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/bin:. -# export LIBPATH="$LIBPATH":/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/lib -# export DELEGATE_PATH=/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/share/ImageMagick-6 - -# module show imagemagick/6.9.9-25 on DELL - export PATH=$PATH:/usrx/local/dev/packages/ImageMagick/6.9.9-25/bin:. - export LIBPATH="$LIBPATH":/usrx/local/dev/packages/ImageMagick/6.9.9-25/lib - export DELEGATE_PATH=/usrx/local/dev/packages/ImageMagick/6.9.9-25/share/ImageMagick-6 outname=out.tif diff --git a/workflow/hosts/hera.yaml b/workflow/hosts/hera.yaml index 0e2f7d7d2e..5f7951ff58 100644 --- a/workflow/hosts/hera.yaml +++ b/workflow/hosts/hera.yaml @@ -1,7 +1,8 @@ base_git: '/scratch1/NCEPDEV/global/glopara/git' dmpdir: '/scratch1/NCEPDEV/global/glopara/dump' -nwprod: '/scratch1/NCEPDEV/global/glopara/nwpara' +packageroot: '/scratch1/NCEPDEV/global/glopara/nwpara' comroot: '/scratch1/NCEPDEV/global/glopara/com' +cominsyn: '${COMROOT}/gfs/prod/syndat' homedir: '/scratch1/NCEPDEV/global/$USER' stmp: '/scratch1/NCEPDEV/stmp2/$USER' ptmp: '/scratch1/NCEPDEV/stmp4/$USER' diff --git a/workflow/hosts/orion.yaml b/workflow/hosts/orion.yaml index de8866b0d5..ce7d93eaba 100644 --- a/workflow/hosts/orion.yaml +++ b/workflow/hosts/orion.yaml @@ -1,7 +1,8 @@ base_git: '/work/noaa/global/glopara/git' dmpdir: '/work/noaa/rstprod/dump' -nwprod: '/work/noaa/global/glopara/nwpara' +packageroot: '/work/noaa/global/glopara/nwpara' comroot: '/work/noaa/global/glopara/com' +cominsyn: '${COMROOT}/gfs/prod/syndat' homedir: '/work/noaa/global/$USER' stmp: '/work/noaa/stmp/$USER' ptmp: '/work/noaa/stmp/$USER' diff --git a/workflow/hosts/wcoss2.yaml b/workflow/hosts/wcoss2.yaml new file mode 100644 index 0000000000..e715ed3e9b --- /dev/null +++ b/workflow/hosts/wcoss2.yaml @@ -0,0 +1,20 @@ +base_git: '/lfs/h2/emc/global/save/emc.global/git' +dmpdir: '/lfs/h2/emc/global/noscrub/emc.global/dump' +packageroot: '${PACKAGEROOT:-"/lfs/h1/ops/prod/packages"}' +comroot: '${COMROOT:-"/lfs/h1/ops/prod/com"}' +cominsyn: '${COMROOT}/gfs/${gfs_ver:-"v16.2"})/syndat' +homedir: '/lfs/h2/emc/global/noscrub/$USER' +stmp: '/lfs/h2/emc/stmp/$USER' +ptmp: '/lfs/h2/emc/ptmp/$USER' +noscrub: $HOMEDIR +account: 'GFS-DEV' +scheduler: pbspro +queue: 'dev' +queue_service: 'dev_transfer' +partition_batch: '' +chgrp_rstprod: 'YES' +chgrp_cmd: 'chgrp rstprod' +hpssarch: 'YES' +localarch: 'NO' +atardir: '/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT' +supported_resolutions: ['C768', 'C384', 'C192', 'C96', 'C48'] diff --git a/workflow/rocoto/workflow_tasks.py b/workflow/rocoto/workflow_tasks.py index 4d2b980b94..53321f14fd 100644 --- a/workflow/rocoto/workflow_tasks.py +++ b/workflow/rocoto/workflow_tasks.py @@ -98,7 +98,13 @@ def get_resource(self, task_name): memory = task_config.get(f'memory_{task_name}', None) - native = '--export=NONE' if scheduler in ['slurm'] else None + native = None + if scheduler in ['pbspro']: + native = '-l debug=true,place=vscatter' + if task_config.get('is_exclusive', False): + native += ':exclhost' + elif scheduler in ['slurm']: + native = '--export=NONE' queue = task_config['QUEUE'] if task_name in Tasks.SERVICE_TASKS and scheduler not in ['slurm']: diff --git a/workflow/setup_expt.py b/workflow/setup_expt.py index 58bf2838c1..bc2eff7f43 100755 --- a/workflow/setup_expt.py +++ b/workflow/setup_expt.py @@ -122,8 +122,9 @@ def edit_baseconfig(host, inputs): "@HOMEgfs@": _top, "@BASE_GIT@": host.info["base_git"], "@DMPDIR@": host.info["dmpdir"], - "@NWPROD@": host.info["nwprod"], + "@PACKAGEROOT@": host.info["packageroot"], "@COMROOT@": host.info["comroot"], + "@COMINsyn@": host.info["cominsyn"], "@HOMEDIR@": host.info["homedir"], "@EXPDIR@": inputs.expdir, "@ROTDIR@": inputs.comrot,