#!/bin/ksh # # run one of the wsr jobs # echo `date` $0 $* begin mach=`uname -n` machl=`echo $mach|cut -c1` case $machl in (c) echo `date` job starting on cirrus wsrmachine=ccs ;; (s) echo `date` job starting on stratus wsrmachine=ccs ;; (t) echo `date` job starting on tide #export MP_TASK_AFFINITY=core wsrmachine=wcoss ;; (g) echo `date` job starting on gyre wsrmachine=wcoss ;; (*) echo UNKNOWN MACHINE $mach wsrmachine=unknown ;; esac if (( $# >= 1 )); then job=$1 args=good chainsubmit=no case $job in (ecmwfens) jobcardslist=wsr_ecmwfens.job chainsubmit=no ;; (ecmwf) jobcardslist=wsr_ecmwfens.job chainsubmit=no ;; (e) jobcardslist="wsr_ecmwfens.job" chainsubmit=no ;; (prep) jobcardslist=wsr_prep.job chainsubmit=no ;; (p) jobcardslist=wsr_prep.job chainsubmit=no ;; (main) jobcardslist=wsr_main.job chainsubmit=no ;; (m) jobcardslist=wsr_main.job chainsubmit=no ;; (epm) jobcardslist="wsr_ecmwfens.job wsr_prep.job wsr_main.job" chainsubmit=yes ;; (pm) jobcardslist="wsr_prep.job wsr_main.job" chainsubmit=yes ;; (*) args=bad ;; esac echo jobcardslist=$jobcardslist submit=no submit=yes renameold=yes renameold=no if (( $# >= 2 )); then flags=$2 case $flags in (nos) submit=no ;; (nosubmit) submit=no ;; (submit) submit=yes ;; (submitold) submit=yes renameold=no ;; (submitnew) submit=yes ;; (new) renameold=yes ;; (old) renameold=no ;; (*) args=bad ;; esac fi echo submit=$submit echo renameold=$renameold if [[ $args = good ]]; then chainfirst=yes for jobcards in $jobcardslist do echo `date` $0 $* set up directories for $jobcards controldir=`dirname $0` if [[ "$controldir" = '.' ]]; then controldir=`pwd` fi echo controldir=$controldir basedir=`dirname $controldir` basedird=`dirname $basedir` basedirdb=`basename $basedird` expid=$basedirdb echo expid=$expid localprefixsave=$basedird echo localprefixsave=$localprefixsave # these sesttings for vertical directory structure basedirdd=`dirname $basedird` basedirddb=`basename $basedirdd` expid=$basedirddb echo expid=$expid localprefixsave=$basedirdd echo localprefixsave=$localprefixsave localprefixptmp=/ptmpd2/$LOGNAME/o/$expid echo localprefixptmp=$localprefixptmp if [[ -d $localprefixptmp ]]; then echo localprefixptmp=$localprefixptmp already exists else mkdir -p $localprefixptmp fi if [[ -d $localprefixptmp ]]; then cd $localprefixptmp rc=$? if (( rc == 0 )); then pwd if [[ $renameold = yes ]]; then if [[ $chainfirst = yes ]] ; then dtg=`date +%Y%m%d%H%M%S` echo dtg=$dtg for dir in com tmpnwprd control nwges do echo $dir rename before ls -ald ${dir}* if [[ -d $dir ]]; then echo $dir remove if empty find $dir -type d -depth -ls -exec rmdir {} \; ls -ald ${dir}* fi if [[ -d $dir ]]; then mv $dir $dir.$dtg fi echo $dir rename after ls -ald ${dir}* done fi fi gooddirs=yes for dir in com/logs com/output/dev/today control tmpnwprd do echo $dir create before mkdir -p $dir rc=$? if (( rc != 0 )); then echo mkdir $dir FAILED rc=$rc gooddirs=no fi echo $dir create after done if [[ $gooddirs = yes ]]; then echo `date` $0 $* jobcards before sed -e"s#EXPID#$expid#" \ -e"s#LOCALPREFIXPTMP#$localprefixptmp#" \ -e"s#LOCALPREFIXSAVE#$localprefixsave#" \ -e"s#LOCALCHAINOPTION#$chainsubmit#" \ $controldir/$jobcards > control/$jobcards cat control/$jobcards echo `date` $0 $* jobcards after if [[ $submit = yes ]]; then if [[ $chainfirst = yes ]]; then echo `date` $0 $* submit before case $wsrmachine in (ccs) llsubmit control/$jobcards ;; (wcoss) bsub < control/$jobcards ;; (*) echo CANNOT SUBMIT TO UNKNOWN CLUSTER $wsrmachine ;; esac echo `date` $0 $* submit after fi fi else echo SUBMIT SKIPPED BECAUSE gooddirs=$gooddirs fi else echo cd $localprefixptmp FAILED rc=$rc fi else echo localprefixptmp=$localprefixptmp DOES NOT EXIST fi chainfirst=no cd $controldir done fi else args=bad fi if [[ $args = bad ]]; then echo one argument required: job flags echo job: ecmwf prep main pm epm echo flags: submit submitold submitnew old new ls -al wsr*job fi echo `date` $0 $* end