#!/bin/sh if [ $# -ne 2 ]; then echo "# ERROR: The MACHINE_PHASE variable does not appear to be set!" echo echo "# Usage: wcoss.sh.ecf %ECF_NAME% %MACHINE_PHASE%" echo "# where MACHINE_PHASE can be set to p1, p2, or xc40" exit 1 fi ECF_NAME=$1 MACHINE_PHASE=$2 MODEL=$(echo ${ECF_NAME##*/wcoss_} | cut -d / -f2) SET=$(echo ${ECF_NAME##*/wcoss_} | cut -d / -f3- | tr / _) if [ -n "$SET" ] && [ "$MODEL" != "$SET" ]; then RUN=${MODEL}_$(echo "$SET" | perl -pe "s/${MODEL}_?//") else RUN=$MODEL fi case $MACHINE_PHASE in p1) COMROOT=/com QUEUE=prod_serv BSUBR="-R affinity[core] -R span[ptile=%CPUS:1%]" ;; p2) COMROOT=/com2 QUEUE=prod2_serv BSUBR="-R affinity[core] -R span[ptile=%CPUS:1%]" ;; xc40) COMROOT=/gpfs/hps/nco/ops/com QUEUE=prod_transfer ;; p3) COMROOT=/gpfs/dell1/nco/ops/com QUEUE=prod_transfer BSUBR="-R affinity[core] -R span[ptile=%CPUS:1%]" ;; p35) COMROOT=/gpfs/dell4/nco/ops/com QUEUE=prod2_transfer BSUBR="-R affinity[core] -R span[ptile=%CPUS:1%]" ;; *) >&2 echo "Phase $MACHINE_PHASE is not recognized." esac cat < %include END if [ "$MACHINE_PHASE" = "p1" ]; then echo "module load prod_util" echo "if [ -n "%PDY:%" ]; then export PDY=\${PDY:-%PDY:%}; fi" fi cat < if [ -d \\\$HOME\${model}/parm/transfer ]; then eval export TRANSFER_LIST=\\\$HOME\${model}/parm/transfer/transfer_\${RUN}.list else eval export TRANSFER_LIST=\\\$HOME\${model}/parm/transfer_\${RUN}.list fi fi END if [ "$MACHINE_PHASE" = "p1" ]; then echo "# Force phase 1 transfers to use phase 2 version file and package" echo ". /nw\${envir}2/versions/transfers.ver" echo "export HOMEtransfers=/nw\${envir}2/transfers.\${transfers_ver:?}" else echo "model=transfers" echo "%include " fi if [ "$RUN" != "ecf_scripts" ]; then echo "module load rsync/\${rsync_ver:?}" fi cat < %manual %include %end END