/[MITgcm]/MITgcm/verification/testreport
ViewVC logotype

Diff of /MITgcm/verification/testreport

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.32 by edhill, Sun Dec 7 07:06:13 2003 UTC revision 1.64 by edhill, Mon Jan 31 19:26:24 2005 UTC
# Line 13  usage() Line 13  usage()
13      echo "  (-help|-h)               print usage"      echo "  (-help|-h)               print usage"
14      echo "  (-mpi)                   use MPI input files"      echo "  (-mpi)                   use MPI input files"
15      echo "  (-ieee|-noieee)          if possible, use IEEE compiler flags"      echo "  (-ieee|-noieee)          if possible, use IEEE compiler flags"
16      echo "                             (DEF=\"noieee\")"      echo "                             (DEF=\"-ieee\")"
17      echo "  (-optfile=|-of=)STRING   list of optfiles to use"      echo "  (-optfile=|-of=)STRING   list of optfiles to use"
18      echo "  (-a|-addr) STRING        list of email recipients"      echo "  (-a|-addr) STRING        list of email recipients"
19      echo "                             (DEF=\"edhill@mitgcm.org\")"      echo "                             (DEF=\"edhill@mitgcm.org\")"
# Line 27  usage() Line 27  usage()
27      echo "                             (DEF=\"make output.txt\")"      echo "                             (DEF=\"make output.txt\")"
28      echo "  (-m|-make) STRING        command to use for \"make\""      echo "  (-m|-make) STRING        command to use for \"make\""
29      echo "                             (DEF=\"make\")"      echo "                             (DEF=\"make\")"
30        echo "  (-ptracers|-ptr) STRING  specify which ptracers to test"
31        echo "                             (DEF=\"1 2 3 4 5\")"
32        echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"
33      echo "  (-clean)                 *ONLY* run \"make CLEAN\""      echo "  (-clean)                 *ONLY* run \"make CLEAN\""
34      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""
35      echo "  (-nogenmake|-ng)         skip the genmake stage"      echo "  (-nogenmake|-ng)         skip the genmake stage"
36      echo "  (-noclean|-nc)           skip the \"make clean\" stage"      echo "  (-noclean|-nc)           skip the \"make clean\" stage"
37      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"
38        echo "  (-deldir|-dd)            on success, delete the output directory"
39      echo      echo
40      echo "and where STRING follows a whitespace-delimited format"      echo "and where STRING can be a whitespace-delimited list"
41      echo "such as:"      echo "such as:"
42        echo
43      echo "  -t 'exp0 exp2 exp3' "      echo "  -t 'exp0 exp2 exp3' "
44      echo "  -addr='abc@123.com testing@home.org'"      echo "  -addr='abc@123.com testing@home.org'"
45      echo      echo
46        echo "provided that the expression is properly quoted within the current"
47        echo "shell (note the use of single quotes to protect white space)."
48        echo
49      exit 1      exit 1
50  }  }
51    
52  #  build the mpack utility  #  build the mpack utility
53  build_mpack()  build_mpack()
54  {  {
55      echo -n "building the mpack utility...  "      printf "building the mpack utility...  "
56      if test ! -x "$MPACKDIR/mpack" ; then      if test ! -x "$MPACKDIR/mpack" ; then
57          if test ! -d $MPACKDIR ; then          if test ! -d $MPACKDIR ; then
58              echo              echo
# Line 54  build_mpack() Line 62  build_mpack()
62              echo              echo
63              HAVE_MPACK=f              HAVE_MPACK=f
64          fi          fi
65          echo -n "building mpack...  "          printf "building mpack...  "
66          if test "x$CC" = x ; then          if test "x$CC" = x ; then
67              export CC=cc              export CC=cc
68          fi          fi
# Line 77  build_mpack() Line 85  build_mpack()
85    
86  testoutput_for_prop()  testoutput_for_prop()
87  {  {
88      # testoutput_for_prop dir s1 label subdir      # testoutput_for_prop dir s1 label subdir extension
89      #      #
90      #  compares files in $dir/$subdir/output.txt and $dir/results/output.txt      #  compares files in $dir/$subdir/output.txt and $dir/results/output.txt
91      #  using search strings s1 and text label      #  using search strings s1 and text label
# Line 99  testoutput_for_prop() Line 107  testoutput_for_prop()
107          return 99          return 99
108      fi      fi
109      if [ $debug -gt 0 ]; then      if [ $debug -gt 0 ]; then
110          echo testoutput_for_prop: grep "$2" $1/results/output.txt 1>&2          echo testoutput_for_prop: grep "$2" $1/results/output.txt$5 1>&2
111      fi      fi
112      grep "$2" $1/results/output.txt | sed 's/.*=//' | cat -n > tmp2.txt      grep "$2" $1/results/output.txt$5 | sed 's/.*=//' | cat -n > tmp2.txt
113      lncnt=`wc -l tmp2.txt | awk '{print $1}' `      lncnt=`wc -l tmp2.txt | awk '{print $1}' `
114      if [ $lncnt -lt 3 ]; then      if [ $lncnt -lt 3 ]; then
115          if [ $verbose -gt 0 ]; then          if [ $verbose -gt 0 ]; then
# Line 169  testoutput_ad() Line 177  testoutput_ad()
177      rm -f t[01][56].txt t[56].txt      rm -f t[01][56].txt t[56].txt
178  }  }
179    
180    check_for_add_mon_output()
181    {
182        # Check for additional types of monitor output
183        if test "x$1" = x ; then
184            return
185        fi
186    
187        for ii in $PTRACERS_NUM ; do
188            eval "HAVE_PTR0"$ii"=f"
189        done
190    
191        ptr_add="trcstat_ptracerXX_min trcstat_ptracerXX_max"
192        ptr_add="$ptr_add trcstat_ptracerXX_mean trcstat_ptracerXX_sd"
193        for ii in $PTRACERS_NUM ; do
194            for jj in $ptr_add ; do
195                name=`eval "echo $jj | sed -e 's|XX|0"$ii"|g'"`
196                tst=`grep $name $1 | wc -l | awk '{print $1}'`
197                if test ! "x$tst" = x0 ; then
198                    eval "HAVE_PTR0"$ii"=t"
199                fi
200            done
201            #  eval 'echo "HAVE_PTR0'$ii' = $HAVE_PTR0'$ii'"'
202        done
203    }
204    
205  testoutput()  testoutput()
206  {  {
207      # testoutput directory subdir      # testoutput directory subdir extension
208      #      #
209      #  test output in "directory"      #  test output in "directory"
210      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
211          if [ $debug -gt 0 ]; then          if [ $debug -gt 0 ]; then
212              echo testoutput: testoutput_for_prop $1 cg2d_init_res 1>&2              echo testoutput: testoutput_for_prop $1 cg2d_init_res 1>&2
213          fi          fi
214          testoutput_for_prop $1 "cg2d_init_res" "cg2d init. residual" $2; cg2dres=$?          testoutput_for_prop $1 "cg2d_init_res" "cg2d init. residual" $2 $3; cg2dres=$?
215          if [ $debug -gt 0 ]; then          if [ $debug -gt 0 ]; then
216              echo testoutput: cg2dres=$cg2dres 1>&2              echo testoutput: cg2dres=$cg2dres 1>&2
217          fi          fi
218          testoutput_for_prop $1 "dynstat_theta_min" "theta minimum" $2; tmin=$?          testoutput_for_prop $1 "dynstat_theta_min" "theta minimum" $2 $3; tmin=$?
219          testoutput_for_prop $1 "dynstat_theta_max" "theta maximum" $2; tmax=$?          testoutput_for_prop $1 "dynstat_theta_max" "theta maximum" $2 $3; tmax=$?
220          testoutput_for_prop $1 "dynstat_theta_mean" "theta mean" $2; tmean=$?          testoutput_for_prop $1 "dynstat_theta_mean" "theta mean" $2 $3; tmean=$?
221          testoutput_for_prop $1 "dynstat_theta_sd" "theta s.d." $2; tsd=$?          testoutput_for_prop $1 "dynstat_theta_sd" "theta s.d." $2 $3; tsd=$?
222          testoutput_for_prop $1 "dynstat_salt_min" "salt minimum" $2; smin=$?          testoutput_for_prop $1 "dynstat_salt_min" "salt minimum" $2 $3; smin=$?
223          testoutput_for_prop $1 "dynstat_salt_max" "salt maximum" $2; smax=$?          testoutput_for_prop $1 "dynstat_salt_max" "salt maximum" $2 $3; smax=$?
224          testoutput_for_prop $1 "dynstat_salt_mean" "salt mean" $2; smean=$?          testoutput_for_prop $1 "dynstat_salt_mean" "salt mean" $2 $3; smean=$?
225          testoutput_for_prop $1 "dynstat_salt_sd" "salt s.d." $2; ssd=$?          testoutput_for_prop $1 "dynstat_salt_sd" "salt s.d." $2 $3; ssd=$?
226          testoutput_for_prop $1 "dynstat_uvel_min" "U minimum" $2; umin=$?          testoutput_for_prop $1 "dynstat_uvel_min" "U minimum" $2 $3; umin=$?
227          testoutput_for_prop $1 "dynstat_uvel_max" "U maximum" $2; umax=$?          testoutput_for_prop $1 "dynstat_uvel_max" "U maximum" $2 $3; umax=$?
228          testoutput_for_prop $1 "dynstat_uvel_mean" "U mean" $2; umean=$?          testoutput_for_prop $1 "dynstat_uvel_mean" "U mean" $2 $3; umean=$?
229          testoutput_for_prop $1 "dynstat_uvel_sd" "U s.d." $2; usd=$?          testoutput_for_prop $1 "dynstat_uvel_sd" "U s.d." $2 $3; usd=$?
230          testoutput_for_prop $1 "dynstat_vvel_min" "V minimum" $2; vmin=$?          testoutput_for_prop $1 "dynstat_vvel_min" "V minimum" $2 $3; vmin=$?
231          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2; vmax=$?          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?
232          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2; vmean=$?          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?
233          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2; vsd=$?          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2 $3; vsd=$?
234          dashnum $cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd \  
235              $umin $umax $umean $usd $vmin $vmax $vmean $vsd          #  This is for PTRACERS
236            for ii in $PTRACERS_NUM ; do
237                eval `echo "p0"$ii"_min=99"`
238                eval `echo "p0"$ii"_max=99"`
239                eval `echo "p0"$ii"_mean=99"`
240                eval `echo "p0"$ii"_sd=99"`
241                tst=`eval 'echo "$HAVE_PTR0'$ii'"'`
242                #echo 'tst = '$tst
243                if test "x$tst" = xt ; then
244                    a="trcstat_ptracer0"
245                    testoutput_for_prop $1 "$a"$ii"_min"  "p0"$ii"_min"  $2 $3
246                    RETVAL=$? ; eval `echo "p0"$ii"_min="$RETVAL`
247                    testoutput_for_prop $1 "$a"$ii"_max"  "p0"$ii"_max"  $2 $3
248                    RETVAL=$? ; eval `echo "p0"$ii"_max="$RETVAL`
249                    testoutput_for_prop $1 "$a"$ii"_mean" "p0"$ii"_mean" $2 $3
250                    RETVAL=$? ; eval `echo "p0"$ii"_mean="$RETVAL`
251                    testoutput_for_prop $1 "$a"$ii"_sd"   "p0"$ii"_sd"   $2 $3
252                    RETVAL=$? ; eval `echo "p0"$ii"_sd="$RETVAL`
253                fi
254            done
255    
256            allargs="$cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd"
257            allargs="$allargs $umin $umax $umean $usd $vmin $vmax $vmean $vsd"
258            allargs="$allargs $p01_min $p01_max $p01_mean $p01_sd"
259            allargs="$allargs $p02_min $p02_max $p02_mean $p02_sd"
260            allargs="$allargs $p03_min $p03_max $p03_mean $p03_sd"
261            allargs="$allargs $p04_min $p04_max $p04_mean $p04_sd"
262            allargs="$allargs $p05_min $p05_max $p05_mean $p05_sd"
263    
264            eval "dashnum $allargs"
265    
266      else      else
267          testoutput_ad $1 $2 "precision_grdchk_result"          testoutput_ad $1 $2 "precision_grdchk_result"
268      fi      fi
# Line 211  genmakemodel() Line 274  genmakemodel()
274      if test "x$NOGENMAKE" = xt ; then      if test "x$NOGENMAKE" = xt ; then
275          echo "genmake skipped!"          echo "genmake skipped!"
276      else      else
277          GENMAKE2="$BASH ../../../tools/genmake2"          if test "x$BASH" = x ; then
278                GENMAKE2="../../../tools/genmake2"
279            else
280                GENMAKE2="$BASH ../../../tools/genmake2 -bash $BASH"
281            fi
282          (          (
283              cd $1;              cd $1;
284              command="$GENMAKE2  -ds -m $MAKE"              command="$GENMAKE2  -ds -m $MAKE"
# Line 230  genmakemodel() Line 297  genmakemodel()
297              printf 'genmake ... ' 1>&2              printf 'genmake ... ' 1>&2
298              $command > make.log 2>&1              $command > make.log 2>&1
299              RETVAL=$?              RETVAL=$?
300              cp Makefile $CDIR              #  Reduce the size of the testing emails!
301                head -100 Makefile > $CDIR/Makefile_head
302              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
303                  tail make.log                  tail make.log
304                  echo "genmakemodel: genmake failed" 1>&2                  echo "genmakemodel: genmake failed" 1>&2
# Line 302  makemodel() Line 370  makemodel()
370          if test -r Makefile ; then          if test -r Makefile ; then
371              printf 'make ... ' 1>&2              printf 'make ... ' 1>&2
372              if test "x$ADM" = x ; then              if test "x$ADM" = x ; then
373                  $MAKE >> make.log 2>&1                  if test "x$JOBS" = x ; then
374                        $MAKE >> make.log 2>&1
375                    else
376                        $MAKE -j $JOBS >> make.log 2>&1
377                    fi
378              else              else
379                  $MAKE adall >> make.log 2>&1                  $MAKE adall >> make.log 2>&1
380              fi              fi
# Line 329  symlink_mpifiles() Line 401  symlink_mpifiles()
401      code_dir=$2      code_dir=$2
402      BUILD_DIR=$dir/$3      BUILD_DIR=$dir/$3
403      CODE_DIR=$dir/$code_dir      CODE_DIR=$dir/$code_dir
404        
405      # These are files that should replace their counter-part when using -mpi      # These are files that should replace their counter-part when using -mpi
406      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`
407    
# Line 344  symlink_mpifiles() Line 416  symlink_mpifiles()
416              RETVAL=$?              RETVAL=$?
417              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
418                  if ! test -f $BUILD_DIR/$i ; then                  if ! test -f $BUILD_DIR/$i ; then
419                  #echo Linking $name to $i                      #echo Linking $name to $i
420                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)
421                  fi                  fi
422              fi              fi
423          done          done
424      else      else
425      # NO: We undo any _mpi symbolically linked files          # NO: We undo any _mpi symbolically linked files
426          for ii in $MPI_FILES ; do          for ii in $MPI_FILES ; do
427              i=`echo $ii | sed 's:^\./::'`              i=`echo $ii | sed 's:^\./::'`
428              name=`echo $i | sed 's:_mpi::' `              name=`echo $i | sed 's:_mpi::' `
429              if test -L $BUILD_DIR/$name ; then              if test -L $BUILD_DIR/$name ; then
430                  linktarg=`(cd $BUILD_DIR; readlink $name)`                  cmp $BUILD_DIR/$name "../$code_dir/$name"_mpi > /dev/null 2>&1
431                  if test $linktarg = "../$code_dir/$name"_mpi ; then                  RETVAL=$?
432                  #echo Un-linking $name from $linktarg                  if test "x$RETVAL" = x0 ; then
433                        #echo Un-linking $name from $linktarg
434                      rm -f $BUILD_DIR/$name                      rm -f $BUILD_DIR/$name
435                  fi                  fi
436              fi              fi
# Line 377  linkdata() Line 450  linkdata()
450              if test "x$ADM" = x ; then              if test "x$ADM" = x ; then
451                  files=`( cd ../input ; ls -1 | grep -v CVS )`                  files=`( cd ../input ; ls -1 | grep -v CVS )`
452                  for i in $files ; do                  for i in $files ; do
453                      if test ! -d "../input/"$i ; then                      if test ! -d "../input/"$i -a ! -f $i ; then
454                          ln -sf "../input/"$i $i                          ln -sf "../input/"$i $i
455                      fi                      fi
456                  done                  done
# Line 409  runmodel() Line 482  runmodel()
482          cd $1          cd $1
483          printf 'runmodel ... ' 1>&2          printf 'runmodel ... ' 1>&2
484          # make output.txt          # make output.txt
485          $COMMAND >> run.log 2>&1          echo
486            rm -f run.log
487            # echo "COMMAND='$COMMAND'"
488            # echo "pwd='"`pwd`"'"
489            ( eval $COMMAND ) > run.log 2>&1
490          RETVAL=$?          RETVAL=$?
491          if test "x$RETVAL" = x0 ; then          if test "x$RETVAL" = x0 ; then
492                tail run.log
493              echo successful 1>&2              echo successful 1>&2
494              if test "x$ADM" = x ; then              # === Reduce the size of the testing emails!
495                  cp output.txt $CDIR"/output.txt"              # if test "x$ADM" = x ; then
496              else              #   cp output.txt $CDIR"/output.txt"
497                  cp output.txt_adm $CDIR"/output.txt_adm"              # else
498              fi              #   cp output.txt_adm $CDIR"/output.txt_adm"
499                # fi
500                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
501              return 0              return 0
502          else          else
503              tail run.log              tail run.log
504              echo failed 1>&2              echo failed 1>&2
505              cp run.log $CDIR"/run.log"              cp run.log $CDIR"/run.log"
506                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
507              return 1              return 1
508          fi          fi
509      )      )
# Line 432  createcodelet() Line 513  createcodelet()
513  {  {
514      # create codelet for comparing model output      # create codelet for comparing model output
515    
516      echo -n "creating the comparison code...  "      printf "creating the comparison code...  "
517      cat > tmp_cmpnum.c <<EOF      cat > tmp_cmpnum.c <<EOF
518  #include <stdio.h>  #include <stdio.h>
519  #include <math.h>  #include <math.h>
520  int main( int argc, char** argv )  {  int main( int argc, char** argv )  {
521    int linnum,best;    int linnum,best,lncnt;
522    double a,b,diff;    double a,b,abave,relerr;
523    best = -16;    best = -22;
524    while( 1 )  {    lncnt = 0;
525      while( 1 & (lncnt+=1) < 999 )  {
526      scanf("%d", &linnum);      scanf("%d", &linnum);
527      if (linnum == -1)  break;      if (linnum == -1)  break;
528      scanf("%lf", &a);  scanf("%lf", &b);      scanf("%lf", &a);  scanf("%lf", &b);
529      diff = 0.5*(fabs(a)+fabs(b));      abave = 0.5*(fabs(a)+fabs(b));
530      if (diff > 1.e-12) {      if (abave > 0.0) {
531        diff=fabs(a-b)/diff;        relerr=fabs(a-b)/abave;
532        if (diff > 0.0) {        if (relerr > 0.0) { linnum = (int)rint(log10(relerr)); }
533          linnum = (int)log10(diff);        else { linnum = -16 ; }
534          best = (best > linnum) ? best : linnum;        best = (best > linnum) ? best : linnum;
       }  
       else {  
         if (best == -16 && diff != 0)  best = -22;  
       }  
535      }      }
536    }    }
537      if (lncnt == 999) best=-29;
538    printf("%d\n", -best);    printf("%d\n", -best);
539    return 0;    return 0;
540  }  }
541  EOF  EOF
542      cc -o tmp_cmpnum tmp_cmpnum.c -lm      $CC -o tmp_cmpnum tmp_cmpnum.c -lm
543    
544      if [ -x ./tmp_cmpnum ]; then      if [ -x ./tmp_cmpnum ]; then
545          echo "OK"          echo "OK"
546          return 0          return 0
547      else      else
548          echo          echo
549          echo "ERROR: failed to compile comparison code"          echo "ERROR: failed to compile comparison code -- please specify"
550            echo "  a C compiler using the CC environment variable."
551          exit 1          exit 1
552      fi      fi
553  }  }
# Line 536  clean=0 Line 616  clean=0
616  expts=''  expts=''
617  # ieee=1  # ieee=1
618    
619  IEEE=  IEEE=true
620  if test "x$MITGCM_IEEE" != x ; then  if test "x$MITGCM_IEEE" != x ; then
621      IEEE=$MITGCM_IEEE      IEEE=$MITGCM_IEEE
622  fi  fi
# Line 556  MPACKDIR="../tools/mpack-1.6" Line 636  MPACKDIR="../tools/mpack-1.6"
636  HAVE_MPACK=  HAVE_MPACK=
637  MPACK="$MPACKDIR/mpack"  MPACK="$MPACKDIR/mpack"
638  COMMAND=  COMMAND=
639  MAKE=make  if test "x$MAKE" = x ; then
640        MAKE=make
641    fi
642    if test "x$CC" = x ; then
643        CC=cc
644    fi
645    JOBS=
646  MPI=f  MPI=f
647    DELDIR=
648    
649  ADM=  ADM=
650    
651  echo -n "parsing options...  "  # Additional monitor types
652    PTRACERS_NUM="1 2 3 4 5"
653    
654    printf "parsing options...  "
655    
656  ac_prev=  ac_prev=
657  for ac_option ; do  for ac_option ; do
# Line 610  for ac_option ; do Line 700  for ac_option ; do
700          -make=* | --make=*)          -make=* | --make=*)
701              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
702    
703            -ptracers | --ptracers | -ptr | --ptr)
704                ac_prev=PTRACERS_NUM ;;
705            -ptracers=* | --ptracers=* | -ptr=* | --ptr=*)
706                PTRACERS_NUM=$ac_optarg ;;
707    
708            -j) ac_prev=JOBS ;;
709            -j=*) JOBS=$ac_optarg ;;
710    
711          -clean | --clean)          -clean | --clean)
712              CLEANUP=t ;;              CLEANUP=t ;;
713    
# Line 633  for ac_option ; do Line 731  for ac_option ; do
731          -debug) debug=1 ;;          -debug) debug=1 ;;
732          -quiet) verbose=0 ;;          -quiet) verbose=0 ;;
733    
734            -deldir | -dd) DELDIR=t ;;
735    
736          -*)          -*)
737              echo "Error: unrecognized option: "$ac_option              echo "Error: unrecognized option: "$ac_option
738              usage              usage
# Line 666  if test "x$ADM" = xt -a "x$COMMAND" = x Line 766  if test "x$ADM" = xt -a "x$COMMAND" = x
766  fi  fi
767    
768  if test "x$COMMAND" = x ; then  if test "x$COMMAND" = x ; then
769      COMMAND="make output.txt"      COMMAND="$MAKE output.txt"
770  fi  fi
771    
772  echo "OK"  echo "OK"
# Line 699  if test "x$RETVAL" != x0 ; then Line 799  if test "x$RETVAL" != x0 ; then
799      exit 1      exit 1
800  fi  fi
801  SUMMARY="$DRESULTS/summary.txt"  SUMMARY="$DRESULTS/summary.txt"
802  echo -n "Start time:  " >> $SUMMARY  printf "Start time:  " >> $SUMMARY
803  start_date=`date`  start_date=`date`
804  echo $start_date > $SUMMARY  echo $start_date > $SUMMARY
805    
# Line 731  fi Line 831  fi
831  echo  echo
832  echo >> $SUMMARY  echo >> $SUMMARY
833  if test "x$ADM" = x ; then  if test "x$ADM" = x ; then
834      cat << EOF | tee -a $SUMMARY      line_0="            ----T-----  ----S-----  ----U-----  ----V-----"
835                  T           S           U           V      line_1="G D M    c        m  s        m  s        m  s        m  s"
836  G D M    c        m  s        m  s        m  s        m  s      line_2="E p a R  g  m  m  e  .  m  m  e  .  m  m  e  .  m  m  e  ."
837  E p a R  g  m  m  e  .  m  m  e  .  m  m  e  .  m  m  e  .      line_3="N n k u  2  i  a  a  d  i  a  a  d  i  a  a  d  i  a  a  d"
838  N n k u  2  i  a  a  d  i  a  a  d  i  a  a  d  i  a  a  d      line_4="2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  ."
839  2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .      for ii in $PTRACERS_NUM ; do
840            #  tst=`eval 'echo $HAVE_PTR0'$ii`
841  EOF          #  if test "x$tst" = xt ; then
842            line_0="$line_0  --PTR 0"$ii"--"
843            line_1="$line_1        m  s"
844            line_2="$line_2  m  m  e  ."
845            line_3="$line_3  i  a  a  d"
846            line_4="$line_4  n  x  n  ."
847            #  fi
848        done
849        echo "$line_0" | tee -a $SUMMARY
850        echo "$line_1" | tee -a $SUMMARY
851        echo "$line_2" | tee -a $SUMMARY
852        echo "$line_3" | tee -a $SUMMARY
853        echo "$line_4" | tee -a $SUMMARY
854        echo " "       | tee -a $SUMMARY
855  else  else
856      echo "ADJOINT=true" >> $SUMMARY      echo "ADJOINT=true" >> $SUMMARY
857      echo >> $SUMMARY      echo >> $SUMMARY
# Line 762  for dir in $TESTDIRS ; do Line 875  for dir in $TESTDIRS ; do
875          if test -r $dir/input/Makefile ; then          if test -r $dir/input/Makefile ; then
876              ( cd $dir/input ; make CLEAN )              ( cd $dir/input ; make CLEAN )
877          fi          fi
878            (
879                cd $dir
880                rm -rf tr_run.*
881            )
882          continue          continue
883      fi      fi
884    
# Line 777  for dir in $TESTDIRS ; do Line 894  for dir in $TESTDIRS ; do
894          echo "can't read \"$fout\" -- skipping $dir"          echo "can't read \"$fout\" -- skipping $dir"
895          continue          continue
896      fi      fi
897        if test "x$ADM" = x ; then
898            check_for_add_mon_output  $fout
899        fi
900    
901        # Check for additional types of monitor output
902    
903      builddir="input"      builddir="input"
904      rundir="input"      rundir="input"
# Line 788  for dir in $TESTDIRS ; do Line 910  for dir in $TESTDIRS ; do
910          linkdata $use_seperate_build $dir/$rundir          linkdata $use_seperate_build $dir/$rundir
911      fi      fi
912            
913        #  Check whether there are "extra runs" for this testdir
914        extra_runs=
915        if test "x$ADM" = x -a "x$use_seperate_build" = x1 ; then
916            ex_run_dirs=`( cd $dir ; echo input.* )`
917            echo "ex_run_dirs='$ex_run_dirs'"
918            for exd in $ex_run_dirs ; do
919                name=`echo $exd | sed -e 's/input.//g'`
920                outf="$dir/results/output.txt.$name"
921                if test -f $outf -a -r $outf ; then
922                    extra_runs="$extra_runs $name"
923                fi
924            done
925        fi
926    
927      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
928          code_dir=code          code_dir=code
929          CODE_DIR=$dir/code          CODE_DIR=$dir/code
# Line 830  for dir in $TESTDIRS ; do Line 966  for dir in $TESTDIRS ; do
966      echo      echo
967      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
968          fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`          fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`
969            echo
970            echo "$fres" >> $SUMMARY
971            echo "fresults='$fres'" > $CDIR"/summary.txt"
972            echo "MACH='$MACH'" >> $CDIR"/summary.txt"
973            echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
974            echo "DATE='$DATE'" >> $CDIR"/summary.txt"
975            echo "tdir='$dir'" >> $CDIR"/summary.txt"
976    
977            for ex in $extra_runs ; do
978                test ! -e "$dir/tr_run.$ex" && mkdir "$dir/tr_run.$ex"
979                for ldir in input.$ex input ; do
980                    (
981                        cd "$dir/$ldir" > /dev/null 2>&1
982                        ls -1 2>/dev/null \
983                            | sed -e 's|^CVS$||g' | sed -e 's|^output.txt$||g'
984                    ) > tr_exrun_links
985                    (
986                        cd "$dir/tr_run.$ex"
987                        cat ../../tr_exrun_links | while read i ; do
988                            if test ! "x$i" = x ; then
989                                test ! -r $i  &&  ln -s "../"$ldir"/"$i $i
990                            fi
991                        done
992                    )
993                    test -e tr_exrun_links  &&  rm -f tr_exrun_links
994                done
995                ldir=build
996                (
997                    cd "$dir/$ldir" > /dev/null 2>&1
998                    ls -1 Makefile *.[fFhco] mitgcmuv  2>/dev/null \
999                        | sed -e 's|^CVS$||g' | sed -e 's|^output.txt$||g'
1000                ) > tr_exrun_links
1001                (
1002                    cd "$dir/tr_run.$ex"
1003                        cat ../../tr_exrun_links | while read i ; do
1004                            if test ! "x$i" = x ; then
1005                                test ! -r $i  &&  ln -s "../"$ldir"/"$i $i
1006                            fi
1007                        done
1008                )
1009                test -e tr_exrun_links  &&  rm -f tr_exrun_links
1010                runmodel $dir/tr_run.$ex && run=Y \
1011                    && results=`testoutput $dir tr_run.$ex "."$ex`
1012                fres=`printf '%s %s %s %s' ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N}`
1013                fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`
1014                fres="$fres.$ex"
1015                echo
1016                echo "$fres" >> $SUMMARY
1017                echo "fresults='$fres'" > $CDIR"/summary.txt"
1018                echo "MACH='$MACH'" >> $CDIR"/summary.txt"
1019                echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1020                echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1021                echo "tdir='$dir'" >> $CDIR"/summary.txt"
1022            done
1023      else      else
1024          fres=`printf '%s %s %s %s' ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N}`          fres=`printf '%s %s %s %s' ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N}`
1025          fres=$fres"$results   $dir"          fres=$fres"$results   $dir"
1026            echo
1027            echo "$fres" >> $SUMMARY
1028            echo "fresults='$fres'" > $CDIR"/summary.txt"
1029            echo "MACH='$MACH'" >> $CDIR"/summary.txt"
1030            echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1031            echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1032            echo "tdir='$dir'" >> $CDIR"/summary.txt"
1033      fi      fi
     echo  
     echo "$fres" >> $SUMMARY  
     echo "fresults='$fres'" > $CDIR"/summary.txt"  
     echo "MACH='$MACH'" >> $CDIR"/summary.txt"  
     echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"  
     echo "DATE='$DATE'" >> $CDIR"/summary.txt"  
     echo "tdir='$dir'" >> $CDIR"/summary.txt"  
1034            
1035      echo "-------------------------------------------------------------------------------"      echo "-------------------------------------------------------------------------------"
1036            
1037  done  done
1038    
1039  echo -n "Start time:  " >> $SUMMARY  printf "Start time:  " >> $SUMMARY
1040  echo $start_date >> $SUMMARY  echo $start_date >> $SUMMARY
1041  echo -n "End time:    " >> $SUMMARY  printf "End time:    " >> $SUMMARY
1042  date >> $SUMMARY  date >> $SUMMARY
1043    
1044  #  If addresses were supplied and mpack built successfully, then try  #  If addresses were supplied and mpack built successfully, then try
# Line 859  else Line 1049  else
1049      if test "x$HAVE_MPACK" = xt ; then      if test "x$HAVE_MPACK" = xt ; then
1050          tar -cf $DRESULTS".tar" $DRESULTS > /dev/null 2>&1 \          tar -cf $DRESULTS".tar" $DRESULTS > /dev/null 2>&1 \
1051              && gzip $DRESULTS".tar" \              && gzip $DRESULTS".tar" \
1052              && $MPACK -s MITgcm-test -m 1500000 $DRESULTS".tar.gz" $ADDRESSES              && $MPACK -s MITgcm-test -m 3555000 $DRESULTS".tar.gz" $ADDRESSES
1053          RETVAL=$?          RETVAL=$?
1054          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1055              echo              echo
# Line 889  if test "x$CLEANUP" != xt ; then Line 1079  if test "x$CLEANUP" != xt ; then
1079      cat $SUMMARY > tr_out.txt      cat $SUMMARY > tr_out.txt
1080  fi  fi
1081    
1082    if test "x$DELDIR" = xt ; then
1083        rm -rf $DRESULTS
1084    fi
1085    

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.64

  ViewVC Help
Powered by ViewVC 1.1.22