--- MITgcm/verification/testreport 2003/09/03 20:02:47 1.4 +++ MITgcm/verification/testreport 2003/09/16 18:16:03 1.9 @@ -1,6 +1,6 @@ #!/bin/bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.4 2003/09/03 20:02:47 edhill Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.9 2003/09/16 18:16:03 edhill Exp $ # usage() @@ -10,10 +10,23 @@ echo echo "where possible OPTIONS are:" echo " (-help|-h) print usage" - echo " (-optfile=|-of=)STRING list of genmake2 \"optfiles\"" + echo " (-mpi) use MPI input files" + echo " (-optfile=|-of=)STRING list of optfiles to use" echo " (-a|-addr)STRING list of email recipients" - echo " (-t|-tdir)STRING list of \"test\" dirs" + echo " (DEF=\"edhill@mitgcm.org\")" + echo " (-t|-tdir)STRING list of test dirs to use" + echo " (DEF=\"\" which builds all)" echo " (-b|-bash)STRING location of \"bash\" executable" + echo " (DEF=\"\" for \"/bin/bash\")" + echo " (-c|-command)STRING command to run" + echo " (DEF=\"make output.txt\")" + echo " (-m|-make)STRING command to use for \"make\"" + echo " (DEF=\"make\")" + echo + echo "and where STRING follows a whitespace-delimited format" + echo "such as:" + echo " -t 'exp0 exp2 exp3' " + echo " -addr='abc@123.com testing@home.org'" echo exit 1 } @@ -30,7 +43,7 @@ exit 1 fi echo -n "building mpack... " - ( cd $MPACKDIR && ./configure && make ) > build_mpack.out 2>&1 + ( cd $MPACKDIR && ./configure && $MAKE ) > build_mpack.out 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then echo @@ -166,7 +179,7 @@ cd $1; printf 'genmake ... ' 1>&2 # ../../../tools/genmake -ieee -mods=../code > make.log 2>&1 - $GENMAKE2 -ds --mods=../code "--optfile="$OPTFILE > make.log 2>&1 + $GENMAKE2 -ds -m $MAKE --mods=../code "--optfile="$OPTFILE > make.log 2>&1 RETVAL=$? for i in gm_state gm_optfile gm_local Makefile ; do if test -r $i ; then @@ -189,10 +202,12 @@ # makeclean directory ( cd $1; - rm -f output.txt + if test -e output.txt ; then + rm -f output.txt + fi printf 'make CLEAN ... ' 2>&1 if test -r Makefile ; then - make CLEAN >> make.log 2>&1 + $MAKE CLEAN >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -212,7 +227,7 @@ ( cd $1; printf 'make depend ... ' 1>&2 - make depend >> make.log 2>&1 + $MAKE depend >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -232,7 +247,7 @@ cd $1; if test -r Makefile ; then printf 'make ... ' 1>&2 - make >> make.log 2>&1 + $MAKE >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -258,24 +273,21 @@ runmodel() { - # runmodel directory exe + # runmodel directory # - # runs the model "exe" in "directory" (exe is relative to directory) + # runs "$COMMAND" in "directory" + # (where "$COMMAND" is relative to "directory") ( cd $1 - if [ -x $2 ]; then - if [ $quick -eq 0 ]; then - rm -f output.txt - fi - printf 'runmodel: ' 1>&2 - make output.txt - RETVAL=$? - if test "x$RETVAL" = x0 ; then - cp output.txt $CDIR"/output.txt" - return 0 - else - return 1 - fi + printf 'runmodel: ' 1>&2 + # make output.txt + $COMMAND + RETVAL=$? + if test "x$RETVAL" = x0 ; then + cp output.txt $CDIR"/output.txt" + return 0 + else + return 1 fi ) } @@ -384,10 +396,10 @@ # Default properties debug=0 verbose=1 -quick=0 clean=0 -ieee=1 expts='' +# ieee=1 +# quick=0 BASH= OPTFILES= @@ -395,6 +407,9 @@ TESTDIRS= MPACKDIR="../tools/mpack-1.6" MPACK="$MPACKDIR/mpack" +COMMAND="make output.txt" +MAKE=make +MPI=f echo -n "parsing options... " @@ -435,11 +450,20 @@ -bash=* | --bash=*) BASH=$ac_optarg ;; - -quick) quick=1 ;; + -command | --command | -c | --c) + ac_prev=COMMAND ;; + -command=* | --command=*) + COMMAND=$ac_optarg ;; + + -make | --make | -m | --m) + ac_prev=MAKE ;; + -make=* | --make=*) + MAKE=$ac_optarg ;; + + -mpi) MPI=t ;; -verbose) verbose=2 ;; -debug) debug=1 ;; -clean) clean=1 ;; - -noieee) ieee=0 ;; -quiet) verbose=0 ;; -*) @@ -521,7 +545,27 @@ | tee -a $SUMMARY continue fi - + + # Is this an MPI run? + if test "x$MPI" = xt ; then + if test ! -r $dir"/code/CPP_EEOPTIONS.h_mpi" -o ! -r $dir"/code/SIZE.h_mpi" ; then + echo | tee -a $SUMMARY + echo "can't read \"$dir/code/CPP_EEOPTIONS.h_mpi\" or \"$dir/code/SIZE.h_mpi\"" \ + | tee -a $SUMMARY + continue + else + cp $dir"/code/CPP_EEOPTIONS.h_mpi" $dir"/code/CPP_EEOPTIONS.h" + cp $dir"/code/SIZE.h_mpi" $dir"/code/SIZE.h" + fi + else + if test -r $dir"/code/CPP_EEOPTIONS.h_nompi" ; then + cp $dir"/code/CPP_EEOPTIONS.h_nompi" $dir"/code/CPP_EEOPTIONS.h" + fi + if test -r $dir"/code/SIZE.h_nompi" ; then + cp $dir"/code/SIZE.h_nompi" $dir"/code/SIZE.h" + fi + fi + # Create an output dir for each OPTFILE/tdir combination CDIR=$DRESULTS"/"$DRESULTS"_"$NDIR mkdir $CDIR @@ -551,7 +595,7 @@ && makedependmodel $dir/$builddir && makedepend=Y \ && makemodel $dir/$builddir && make=Y \ && linkdata $seperatebuilddir $dir/$rundir \ - && runmodel $dir/$builddir mitgcmuv && run=Y \ + && runmodel $dir/$builddir && run=Y \ && results=`testoutput $dir $rundir` echo formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} \