%include
echo "=== BEGINNING %TASK% ==="
export WGRIB2=%WGRIB2_EXECUTABLE%
export COASTAL_WORK_DIR=%NWM_JOBDIR%/%NWM_DOMAIN%/%NWM_CYCLE%/%COASTAL_WORK_DIR%
export LENGTH_HRS=%LENGTH_HRS%
mkdir -p $COASTAL_WORK_DIR/outputs
echo "Running pschism..."
cd $COASTAL_WORK_DIR
echo "mpiexec %ECF_HOME%/coastal/pschism 2" | qsub -V -A %PROJ% -q %QUEUE% -o %ECF_JOBOUT% -W block=true \
-l select=%NUM_COMPUTE_NODES%:ncpus=%NUM_CPUS%:mpiprocs=%NUM_CPUS%:mem=%MEMORY_GB%G -l walltime=%WALLTIME% -N nwm_schism -joe -k oed &
%include
# if outputs/fatal.error size > 0, mark our status as failed
# TODO: use ecFlow to return a more useful error
if [ -s outputs/fatal.error ]; then
return 1
fi
cd $COASTAL_WORK_DIR/outputs
# combine hotstarts for analysis, or if running a chained renalysis
if [[ %LENGTH_HRS% < 0 || "%CHAINED_REANALYSIS%" != "" ]]; then
# create the hotstart for the next AnA run
%ECF_HOME%/coastal/combine_hotstart7 -i 18
mv 'hotstart_it=18.nc' hotstart_%COASTAL_DOMAIN%_ana_%CYCLE_DATE%_%CYCLE_TIME%.nc
# create the hotstart for the forecast runs
%ECF_HOME%/coastal/combine_hotstart7 -i 54
mv 'hotstart_it=54.nc' hotstart_%COASTAL_DOMAIN%_%CYCLE_DATE%_%CYCLE_TIME%.nc
#rm hotstart_0*.nc
fi
# remove traps so below cleanup doesn't error out if the
# files don't exist
trap 0
# clean up unneeded output
rm -f local_to_global*
rm -f global_to_local.prop
rm -f maxdahv_*
rm -f maxelev_*
rm -f nonfatal_*
echo "=== FINISHED %TASK% ==="
%include
%manual
This task runs SCHISM on the prepared coastal inputs, combines output and restarts, and writes output to:
$NWM_JOBDIR/$NWM_DOMAIN/$NWM_CYCLE/$COASTAL_WORK_DIR/outputs
%end