#!/usr/bin/env sh #### UNIX Script Documentation Block # # Script Name: JNWM_COASTAL #### date export PS4=' $SECONDS + ' set -xa ########################## # Specify NET and RUN Name ########################## export NET=nwm export RUN=nwm export cycle=t${cyc}z ######################################################## # Make working directory ######################################################## export DATA=${DATA:-${DATAROOT:?}/${model}_${CASETYPE}_${cyc}_${nwmVer}} if [ ! -d $DATA ]; then mkdir -p ${DATA} fi cd ${DATA} #################################### # Specify Application Areas #################################### export HOMEnwm=${HOMEnwm:-${PACKAGEROOT:?}/${NET}.${nwm_ver}} export USHnwm=${USHnwm:-${HOMEnwm}/ush} export EXECnwm=${EXECnwm:-${HOMEnwm}/exec} export PARMnwm=${PARMnwm:-${HOMEnwm}/parm} export SCRIPTnwm=${SCRIPTnwm:-${HOMEnwm}/scripts} ################################### # define dbn_alert type ################################### export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-NWM_NCDF} export DBN_ALERT_TYPE_SHEF=${DBN_ALERT_TYPE_SHEF:-NWM_SHEF} ############################################## # Set PDY ############################################## setpdy.sh . ./PDY ################################### # Intput data directory ################################### export GESIN=${GESIN:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDY}/nwges/${RUN}} export GESINm1=${GESIN:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDYm1}/nwges/${RUN}} export GESINDPARM=${GESIN:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDY}/nwges/${RUN}}/dynparm export GESINDPARM1=${GESIN:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDYm1}/nwges/${RUN}}/dynparm export GESOUT=${GESOUT:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDY}/nwges/${RUN}} export GESOUTm1=${GESOUTm1:-$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${PDYm1}/nwges/${RUN}} export COMINestofs=${COMINestofs:-$(compath.py ${envir}/stofs/$stofs_ver)} export COMINpsurge=${COMINpsurge:-$(compath.py ${envir}/psurge/$psurge_ver)} ################################### # Output data directory ################################### export COMOUT=${COMOUT:-$(compath.py -o ${RUN}/${nwm_ver})/$RUN.$PDY} export COMOUTm1=${COMOUTm1:-$(compath.py -o ${RUN}/${nwm_ver})/$RUN.$PDYm1} export DATAlogs=$DATA/logs export COMOUTlogs=${COMOUTlogs:-${COMOUT}/logs} export pgmout="${DATAlogs}/${CASETYPE}_OUTPUT_${PDY}${cyc}.$$" export USE_PSURGE="NO" export RESUME_RESTART="NO" case $CASETYPE in "analysis_assim_coastal_atlgulf" | "analysis_assim_coastal_pacific" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR=1 hoursOld="" export forcing_atm=$GESIN/analysis_assim export forcing_atm_ana=$GESIN/analysis_assim export LENGTH_HRS='-3' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='analysis_assim' export NWM_CYCLE='analysis_assim' export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "analysis_assim_coastal_hawaii" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR=1 hoursOld="" export forcing_atm=$GESIN/analysis_assim_hawaii export forcing_atm_ana=$GESIN/analysis_assim_hawaii export LENGTH_HRS='-3' export GEOGRID_FILE=${PARMnwm}/domain_hawaii/geo_em_HI.nc export NWM_BASE_CYCLE='analysis_assim_hawaii' export NWM_CYCLE='analysis_assim_hawaii' export NWM_RESTART_CYCLE='analysis_assim_hawaii' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "analysis_assim_coastal_prvi" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR=1 hoursOld="" export forcing_atm=$GESIN/analysis_assim_puertorico export forcing_atm_ana=$GESIN/analysis_assim_puertorico export LENGTH_HRS='-3' export GEOGRID_FILE=${PARMnwm}/domain_puertorico/geo_em_PRVI.nc export NWM_BASE_CYCLE='analysis_assim_puertorico' export NWM_CYCLE='analysis_assim_puertorico' export NWM_RESTART_CYCLE='analysis_assim_puertorico' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "analysis_assim_long_coastal_atlgulf" | "analysis_assim_long_coastal_pacific") export RESTART_CYCLE_LENGTH=-12 export RESTART_WRITE_HR=6 hoursOld="" export forcing_atm=$GESIN/analysis_assim export forcing_atm_ana=$GESIN/analysis_assim export LENGTH_HRS='-12' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='analysis_assim_long' export NWM_CYCLE='analysis_assim_long' export NWM_RESTART_CYCLE='analysis_assim_long' export COASTAL_RESTART_CYCLE="analysis_assim_long_coastal_${COASTAL_DOMAIN}" ;; "analysis_assim_extend_coastal_atlgulf" | "analysis_assim_extend_coastal_pacific" ) export RESTART_CYCLE_LENGTH=-28 export RESTART_WRITE_HR=24 hoursOld="" export forcing_atm=$GESIN/analysis_assim_extend export forcing_atm_ana=$GESINm1/analysis_assim export LENGTH_HRS='-28' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='analysis_assim_extend' export NWM_CYCLE='analysis_assim_extend' export NWM_RESTART_CYCLE='analysis_assim_extend' export COASTAL_RESTART_CYCLE="analysis_assim_extend_coastal_${COASTAL_DOMAIN}" ;; "short_range_coastal_atlgulf" | "short_range_coastal_pacific" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range export forcing_atm_ana=${COMOUT}/forcing_analysis_assim export LENGTH_HRS='18' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='short_range' export NWM_CYCLE='short_range' export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "short_range_coastal_atlgulf_psurge" | "short_range_coastal_pacific_psurge" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range export forcing_atm_ana=${COMOUT}/forcing_analysis_assim export LENGTH_HRS='18' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='short_range' export NWM_CYCLE='short_range' export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export USE_PSURGE="YES" ;; "short_range_coastal_hawaii" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range_hawaii export forcing_atm_ana=${COMOUT}/forcing_analysis_assim_hawaii export LENGTH_HRS='48' export GEOGRID_FILE=${PARMnwm}/domain_hawaii/geo_em_HI.nc export NWM_BASE_CYCLE='short_range_hawaii' export NWM_CYCLE='short_range_hawaii' export NWM_RESTART_CYCLE='analysis_assim_hawaii' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "short_range_coastal_hawaii_psurge" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range_hawaii export forcing_atm_ana=${COMOUT}/forcing_analysis_assim_hawaii export LENGTH_HRS='48' export GEOGRID_FILE=${PARMnwm}/domain_hawaii/geo_em_HI.nc export NWM_BASE_CYCLE='short_range_hawaii' export NWM_CYCLE='short_range_hawaii' export NWM_RESTART_CYCLE='analysis_assim_hawaii' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export USE_PSURGE="YES" ;; "short_range_coastal_prvi" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range_puertorico export forcing_atm_ana=${COMOUT}/forcing_analysis_assim_puertorico export LENGTH_HRS='48' export GEOGRID_FILE=${PARMnwm}/domain_puertorico/geo_em_PRVI.nc export NWM_BASE_CYCLE='short_range_puertorico' export NWM_CYCLE='short_range_puertorico' export NWM_RESTART_CYCLE='analysis_assim_puertorico' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" ;; "short_range_coastal_prvi_psurge" ) export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="" export hoursOld=$PDY$cyc export forcing_atm=$GESIN/short_range_puertorico export forcing_atm_ana=${COMOUT}/forcing_analysis_assim_puertorico export LENGTH_HRS='48' export GEOGRID_FILE=${PARMnwm}/domain_puertorico/geo_em_PRVI.nc export NWM_BASE_CYCLE='short_range_puertorico' export NWM_CYCLE='short_range_puertorico' export NWM_RESTART_CYCLE='analysis_assim_puertorico' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export USE_PSURGE="YES" ;; "medium_range_coastal_atlgulf_mem${mem}" | "medium_range_coastal_pacific_mem${mem}") export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="48" export time_lagged=$((($mem - 1) * 6)) export hoursOld=$($NDATE -$time_lagged $PDY$cyc) export hoursOld_m1=$($NDATE -24 $hoursOld) daysOld=`echo ${hoursOld} | cut -c1-8` export GESINmd=$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${daysOld}/nwges/${RUN} export forcing_atm=$GESINmd/medium_range export forcing_atm_ana=${COMOUT}/forcing_analysis_assim if [ $mem -eq 1 ]; then export LENGTH_HRS='240' else export LENGTH_HRS='204' fi export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='medium_range_mem'${mem} export NWM_CYCLE='medium_range_mem'${mem} export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export RESUME_RESTART="YES" ;; "medium_range_coastal_atlgulf_mem${mem}_psurge" | "medium_range_coastal_pacific_mem${mem}_psurge") export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="48" export time_lagged=$((($mem - 1) * 6)) export hoursOld=$($NDATE -$time_lagged $PDY$cyc) export hoursOld_m1=$($NDATE -24 $hoursOld) daysOld=`echo ${hoursOld} | cut -c1-8` export GESINmd=$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${daysOld}/nwges/${RUN} export forcing_atm=$GESINmd/medium_range export forcing_atm_ana=${COMOUT}/forcing_analysis_assim if [ $mem -eq 1 ]; then export LENGTH_HRS='240' else export LENGTH_HRS='204' fi export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='medium_range_mem'${mem} export NWM_CYCLE='medium_range_mem'${mem} export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export USE_PSURGE="YES" export RESUME_RESTART="YES" ;; "medium_range_blend_coastal_atlgulf" | "medium_range_blend_coastal_pacific") export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="48" export hoursOld=$PDY$cyc export hoursOld_m1=$($NDATE -24 $hoursOld) daysOld=`echo ${hoursOld} | cut -c1-8` export GESINmd=$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${daysOld}/nwges/${RUN} export forcing_atm=$GESINmd/medium_range_blend export forcing_atm_ana=${COMOUT}/forcing_analysis_assim export LENGTH_HRS='240' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='medium_range_blend' export NWM_CYCLE='medium_range_blend' export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export RESUME_RESTART="YES" ;; "medium_range_blend_coastal_atlgulf_psurge" | "medium_range_blend_coastal_pacific_psurge") export RESTART_CYCLE_LENGTH=-3 export RESTART_WRITE_HR="48" export hoursOld=$PDY$cyc export hoursOld_m1=$($NDATE -24 $hoursOld) daysOld=`echo ${hoursOld} | cut -c1-8` export GESINmd=$(compath.py -o ${NET}/${nwm_ver})/${RUN}.${daysOld}/nwges/${RUN} export forcing_atm=$GESINmd/medium_range_blend export forcing_atm_ana=${COMOUT}/forcing_analysis_assim export LENGTH_HRS='240' export GEOGRID_FILE=${PARMnwm}/domain/geo_em_CONUS.nc export NWM_BASE_CYCLE='medium_range_blend' export NWM_CYCLE='medium_range_blend' export NWM_RESTART_CYCLE='analysis_assim' export COASTAL_RESTART_CYCLE="analysis_assim_coastal_${COASTAL_DOMAIN}" export USE_PSURGE="YES" export RESUME_RESTART="YES" ;; esac if [ ! -e $GESIN ]; then err_exit "Forcing engine directory ${GESIN} does not exist" fi if [ ! -e $DATAlogs ]; then mkdir -p $DATAlogs fi if [ ! -e $COMOUTlogs ]; then mkdir -p $COMOUTlogs fi if [ "$SENDCOM" = "YES" ]; then mkdir -m 775 -p $COMOUT fi env ######################################################## # Execute the script. ######################################################## ${SCRIPTnwm}/exnwm_coastal.sh msg="JOB $job FOR NWM_COASTAL HAS COMPLETED NORMALLY" postmsg $pgmout "$msg" if [ -e $pgmout ]; then cat $pgmout cpfs $pgmout $COMOUTlogs/ fi cd $DATAROOT if [ "$KEEPDATA" != YES ]; then rm -rf $DATA fi date