/[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.44 by edhill, Mon Jul 12 14:02:25 2004 UTC revision 1.90 by ce107, Wed Jan 31 21:28:34 2007 UTC
# Line 11  usage() Line 11  usage()
11      echo      echo
12      echo "where possible OPTIONS are:"      echo "where possible OPTIONS are:"
13      echo "  (-help|-h)               print usage"      echo "  (-help|-h)               print usage"
14      echo "  (-mpi)                   use MPI input files"      echo "  (-mth)                   run multi threaded (using eedata.mth)"
15        echo "  (-mpi)                   compile and run using MPI"
16      echo "  (-ieee|-noieee)          if possible, use IEEE compiler flags"      echo "  (-ieee|-noieee)          if possible, use IEEE compiler flags"
17      echo "                             (DEF=\"-ieee\")"      echo "                             (DEF=\"-ieee\")"
18      echo "  (-optfile=|-of=)STRING   list of optfiles to use"      echo "  (-of=|-optfile=)STRING   list of optfiles to use"
19      echo "  (-a|-addr) STRING        list of email recipients"      echo "  (-a|-addr) STRING        list of email recipients"
20      echo "                             (DEF=\"edhill@mitgcm.org\")"      echo "                             (DEF=\"edhill@mitgcm.org\")"
21      echo "  (-t|-tdir) STRING        list of test dirs to use"      echo "  (-t|-tdir) STRING        list of group and/or exp. dirs to test"
22      echo "                             (DEF=\"\" which builds all)"      echo "                             (recognized groups: basic, tutorials)"
23        echo "                             (DEF=\"\" which test all)"
24        echo "  (-skd|-skipdir) STRING   list of exp. dirs to skip"
25        echo "                             (DEF=\"\" which test all)"
26      echo "  (-b|-bash) STRING        preferred location of a \"bash\" or"      echo "  (-b|-bash) STRING        preferred location of a \"bash\" or"
27      echo "                             Bourne-compatible \"sh\" shell"      echo "                             Bourne-compatible \"sh\" shell"
28      echo "                             (DEF=\"\" for \"bash\")"      echo "                             (DEF=\"\" for \"bash\")"
# Line 27  usage() Line 31  usage()
31      echo "                             (DEF=\"make output.txt\")"      echo "                             (DEF=\"make output.txt\")"
32      echo "  (-m|-make) STRING        command to use for \"make\""      echo "  (-m|-make) STRING        command to use for \"make\""
33      echo "                             (DEF=\"make\")"      echo "                             (DEF=\"make\")"
34        echo "  (-odir) STRING           used to build output directory name"
35        echo "                             (DEF=\"hostname\")"
36        echo "  (-ptr|-ptracers) STRING  specify which ptracers to test"
37        echo "                             (DEF=\"1 2 3 4 5\")"
38      echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"      echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"
39      echo "  (-clean)                 *ONLY* run \"make CLEAN\""      echo "  (-clean)                 *ONLY* run \"make CLEAN\""
40      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""
# Line 34  usage() Line 42  usage()
42      echo "  (-noclean|-nc)           skip the \"make clean\" stage"      echo "  (-noclean|-nc)           skip the \"make clean\" stage"
43      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"
44      echo "  (-deldir|-dd)            on success, delete the output directory"      echo "  (-deldir|-dd)            on success, delete the output directory"
45        echo "  (-ts)                    provide timing information per timestep"
46        echo "  (-papis)                 provide MFlop/s per timestep using PAPI"
47        echo "  (-pcls)                  provide MFlop/s per timestep using PCL"
48      echo      echo
49      echo "and where STRING follows a whitespace-delimited format"      echo "and where STRING can be a whitespace-delimited list"
50      echo "such as:"      echo "such as:"
51        echo
52      echo "  -t 'exp0 exp2 exp3' "      echo "  -t 'exp0 exp2 exp3' "
53      echo "  -addr='abc@123.com testing@home.org'"      echo "  -addr='abc@123.com testing@home.org'"
54      echo      echo
55        echo "provided that the expression is properly quoted within the current"
56        echo "shell (note the use of single quotes to protect white space)."
57        echo
58      exit 1      exit 1
59  }  }
60    
# Line 81  testoutput_for_prop() Line 96  testoutput_for_prop()
96  {  {
97      # testoutput_for_prop dir s1 label subdir extension      # testoutput_for_prop dir s1 label subdir extension
98      #      #
99      #  compares files in $dir/$subdir/output.txt and $dir/results/output.txt      #  compares files $dir/$subdir/$OUTPUTFILE and $dir/results/output.txt
100      #  using search strings s1 and text label      #  using search strings s1 and text label
101    
102      if [ $debug -gt 0 ]; then      if [ $debug -gt 0 ]; then
103          echo testoutput_for_prop: grep "$2" $1/$4/output.txt 1>&2          echo testoutput_for_prop: grep "$2" $1/$4/$OUTPUTFILE 1>&2
104      fi      fi
105      if [ -r $1/$4/output.txt ]; then      if [ -r $1/$4/$OUTPUTFILE ]; then
106          grep "$2" $1/$4/output.txt | sed 's/.*=//' | cat -n > tmp1.txt          grep "$2" $1/$4/$OUTPUTFILE | sed 's/.*=//' | cat -n > tmp1.txt
107          lncnt=`wc -l tmp1.txt | awk '{print $1}' `          lncntA=`wc -l tmp1.txt | awk '{print $1}' `
108          if [ $lncnt -lt 3 ]; then          if [ $lncntA -lt 3 ]; then
109              if [ $verbose -gt 0 ]; then              if [ $verbose -gt 0 ]; then
110                  echo Not enough lines of output when searching for "$2" 1>&2                  echo Not enough lines of output when searching for "$2" 1>&2
111              fi              fi
112              return 99              return 99
113          fi          fi
114      else      else
115          echo testoutput_for_prop: output.txt from model run was not readable 1>&2          echo testoutput_for_prop: $OUTPUTFILE from model run was not readable 1>&2
116          return 99          return 99
117      fi      fi
118      if [ $debug -gt 0 ]; then      if [ $debug -gt 0 ]; then
119          echo testoutput_for_prop: grep "$2" $1/results/output.txt$5 1>&2          echo testoutput_for_prop: grep "$2" $1/results/output.$5 1>&2
120      fi      fi
121      grep "$2" $1/results/output.txt$5 | sed 's/.*=//' | cat -n > tmp2.txt      grep "$2" $1/results/output.$5 | sed 's/.*=//' | cat -n > tmp2.txt
122      lncnt=`wc -l tmp2.txt | awk '{print $1}' `      lncntB=`wc -l tmp2.txt | awk '{print $1}' `
123      if [ $lncnt -lt 3 ]; then      if [ $lncntB -lt 3 ]; then
124          if [ $verbose -gt 0 ]; then          if [ $verbose -gt 0 ]; then
125              echo Not enough lines of output when searching for "$2" 1>&2              echo Not enough lines of output when searching for "$2" 1>&2
126          fi          fi
127          return 99          return 99
128      fi      fi
129        if [ $lncntA -ne $lncntB ]; then
130            if [ $verbose -gt 0 ]; then
131                echo Not same Nb of lines when searching for "$2" ":" $lncntA $lncntB 1>&2
132            fi
133            return 99
134        fi
135        has_nan=`cat tmp1.txt | grep -i nan | wc -l`
136        if [ $has_nan -gt 0  ] ; then
137            echo testoutput_for_prop: $OUTPUTFILE contains $has_nan NaN values  1>&2
138            return 99
139        fi
140        has_inf=`cat tmp1.txt | grep -i inf | wc -l`
141        if [ $has_inf -gt 0  ] ; then
142            echo testoutput_for_prop: $OUTPUTFILE contains $has_inf Inf values  1>&2
143            return 99
144        fi
145      if [ $debug -gt 0 ]; then      if [ $debug -gt 0 ]; then
146          echo testoutput_for_prop: join tmp1.txt tmp2.txt 1>&2          echo testoutput_for_prop: join tmp1.txt tmp2.txt 1>&2
147      fi      fi
# Line 157  dashnum() Line 188  dashnum()
188    
189  testoutput_ad()  testoutput_ad()
190  {  {
191      grep $3 $1/results_ad/output.txt_adm | awk '{print NR " " $5}' > t05.txt      grep $3 $1/results_ad/output_adm.txt | awk '{print NR " " $5}' > t05.txt
192      grep $3 $1/$2/output.txt_adm | awk '{print NR " " $5}' > t15.txt      grep $3 $1/$2/$OUTPUTFILE | awk '{print NR " " $5}' > t15.txt
193      grep $3 $1/results_ad/output.txt_adm | awk '{print NR " " $6}' > t06.txt      grep $3 $1/results_ad/output_adm.txt | awk '{print NR " " $6}' > t06.txt
194      grep $3 $1/$2/output.txt_adm | awk '{print NR " " $6}' > t16.txt      grep $3 $1/$2/$OUTPUTFILE | awk '{print NR " " $6}' > t16.txt
195      join t05.txt t15.txt > t5.txt      join t05.txt t15.txt > t5.txt
196      join t06.txt t16.txt > t6.txt      join t06.txt t16.txt > t6.txt
197      echo "-1" >> t5.txt      echo "-1" >> t5.txt
# Line 171  testoutput_ad() Line 202  testoutput_ad()
202      rm -f t[01][56].txt t[56].txt      rm -f t[01][56].txt t[56].txt
203  }  }
204    
205    check_for_add_mon_output()
206    {
207        # Check for additional types of monitor output
208        if test "x$1" = x ; then
209            return
210        fi
211    
212        for ii in $PTRACERS_NUM ; do
213            eval "HAVE_PTR0"$ii"=f"
214        done
215    
216        ptr_add="trcstat_ptracerXX_min trcstat_ptracerXX_max"
217        ptr_add="$ptr_add trcstat_ptracerXX_mean trcstat_ptracerXX_sd"
218        for ii in $PTRACERS_NUM ; do
219            for jj in $ptr_add ; do
220                name=`eval "echo $jj | sed -e 's|XX|0"$ii"|g'"`
221                tst=`grep $name $1 | wc -l | awk '{print $1}'`
222                if test ! "x$tst" = x0 ; then
223                    eval "HAVE_PTR0"$ii"=t"
224                fi
225            done
226            #  eval 'echo "HAVE_PTR0'$ii' = $HAVE_PTR0'$ii'"'
227        done
228    }
229    
230  testoutput()  testoutput()
231  {  {
232      # testoutput directory subdir extension      # testoutput directory subdir extension
# Line 200  testoutput() Line 256  testoutput()
256          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?
257          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?
258          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2 $3; vsd=$?          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2 $3; vsd=$?
259          dashnum $cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd \  
260              $umin $umax $umean $usd $vmin $vmax $vmean $vsd          #  This is for PTRACERS
261            for ii in $PTRACERS_NUM ; do
262                eval `echo "p0"$ii"_min=99"`
263                eval `echo "p0"$ii"_max=99"`
264                eval `echo "p0"$ii"_mean=99"`
265                eval `echo "p0"$ii"_sd=99"`
266                tst=`eval 'echo "$HAVE_PTR0'$ii'"'`
267                #echo 'tst = '$tst
268                if test "x$tst" = xt ; then
269                    a="trcstat_ptracer0"
270                    testoutput_for_prop $1 "$a"$ii"_min"  "p0"$ii"_min"  $2 $3
271                    RETVAL=$? ; eval `echo "p0"$ii"_min="$RETVAL`
272                    testoutput_for_prop $1 "$a"$ii"_max"  "p0"$ii"_max"  $2 $3
273                    RETVAL=$? ; eval `echo "p0"$ii"_max="$RETVAL`
274                    testoutput_for_prop $1 "$a"$ii"_mean" "p0"$ii"_mean" $2 $3
275                    RETVAL=$? ; eval `echo "p0"$ii"_mean="$RETVAL`
276                    testoutput_for_prop $1 "$a"$ii"_sd"   "p0"$ii"_sd"   $2 $3
277                    RETVAL=$? ; eval `echo "p0"$ii"_sd="$RETVAL`
278                fi
279            done
280    
281            allargs="$cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd"
282            allargs="$allargs $umin $umax $umean $usd $vmin $vmax $vmean $vsd"
283            allargs="$allargs $p01_min $p01_max $p01_mean $p01_sd"
284            allargs="$allargs $p02_min $p02_max $p02_mean $p02_sd"
285            allargs="$allargs $p03_min $p03_max $p03_mean $p03_sd"
286            allargs="$allargs $p04_min $p04_max $p04_mean $p04_sd"
287            allargs="$allargs $p05_min $p05_max $p05_mean $p05_sd"
288    
289            eval "dashnum $allargs"
290    
291      else      else
292          testoutput_ad $1 $2 "precision_grdchk_result"          testoutput_ad $1 $2 "precision_grdchk_result"
293      fi      fi
# Line 225  genmakemodel() Line 311  genmakemodel()
311                  command="$command --mods=../code"                  command="$command --mods=../code"
312              else              else
313                  command="$command --mods=../code_ad"                  command="$command --mods=../code_ad"
                 command="$command -adof=../../../tools/adjoint_options/adjoint_staf"  
314              fi              fi
315              if test "x$OPTFILE" != xNONE ; then              if test "x$OPTFILE" != xNONE ; then
316                  command="$command --optfile=$OPTFILE"                  command="$command --optfile=$OPTFILE"
# Line 233  genmakemodel() Line 318  genmakemodel()
318              if test "x$IEEE" != x ; then              if test "x$IEEE" != x ; then
319                  command="$command -ieee"                  command="$command -ieee"
320              fi              fi
321                if test "x$MPI" = xt ; then
322                    command="$command -mpi"
323                fi
324                if test "x$TS" = xt ; then
325                    command="$command -ts"
326                fi
327                if test "x$PAPIS" = xt ; then
328                    command="$command -papis"
329                else
330                if test "x$PCLS" = xt ; then
331                    command="$command -pcls"
332                fi
333                fi
334              printf 'genmake ... ' 1>&2              printf 'genmake ... ' 1>&2
335              $command > make.log 2>&1              $command > make.log 2>&1
336              RETVAL=$?              RETVAL=$?
337              #  Reduce the size of the testing emails!              #  Reduce the size of the testing emails!
338              #  cp Makefile $CDIR              head -100 Makefile > $CDIR/Makefile_head
339              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
340                  tail make.log                  tail make.log
341                  echo "genmakemodel: genmake failed" 1>&2                  echo "genmakemodel: genmake failed" 1>&2
# Line 254  makeclean() Line 352  makeclean()
352  {  {
353      # makeclean directory      # makeclean directory
354      if test "x$NOCLEAN" = xt ; then      if test "x$NOCLEAN" = xt ; then
355          echo "make CLEAN skipped!"          echo "make Clean skipped!"
356      else      else
357          (          (
358              cd $1;              cd $1;
359              if test -e output.txt ; then              #if test -e $OUTPUTFILE ; then rm -f $OUTPUTFILE ; fi
                 rm -f output.txt  
             fi  
             printf 'make CLEAN ... ' 2>&1  
360              if test -r Makefile ; then              if test -r Makefile ; then
361                  $MAKE CLEAN >> make.log 2>&1                  printf 'clean build-dir: make Clean ... ' 2>&1
362                    $MAKE Clean >> make.log 2>&1
363                  RETVAL=$?                  RETVAL=$?
364                  if test "x$RETVAL" != x0 ; then                  if test "x$RETVAL" != x0 ; then
365                      tail make.log                      tail make.log
366                      echo "makeclean: \"make CLEAN\" failed" 1>&2                      echo "makeclean: \"make Clean\" failed" 1>&2
367                      cp make.log $CDIR"/make.log"                      cp make.log $CDIR"/make.log"
368                      return 1                      return 1
369                  fi                  fi
# Line 278  makeclean() Line 374  makeclean()
374      fi      fi
375  }  }
376    
377    run_clean()
378    {
379        # run_clean directory
380        if test "x$NOCLEAN" = xt ; then
381            echo "run_clean skipped!"
382        else
383            (
384                cd $1;
385                printf 'clean run-dir ... ' 2>&1
386                # part of what is done after "make clean" when doing "make CLEAN"
387                find . -name "*.meta" -exec rm {} \;
388                find . -name "*.data" -exec rm {} \;
389                find . -name "fort.*" -exec rm {} \;
390                find . -type l -exec rm {} \;
391                rm -f $EXECUTABLE *.txt STD* *diagnostics.log datetime
392                rm -rf mnc_test_*
393                echo successful 1>&2
394                exit 0
395            )
396        fi
397    }
398    
399  makedependmodel()  makedependmodel()
400  {  {
401      # makedependmodel directory      # makedependmodel directory
# Line 340  symlink_mpifiles() Line 458  symlink_mpifiles()
458      code_dir=$2      code_dir=$2
459      BUILD_DIR=$dir/$3      BUILD_DIR=$dir/$3
460      CODE_DIR=$dir/$code_dir      CODE_DIR=$dir/$code_dir
461        
462      # These are files that should replace their counter-part when using -mpi      # These are files that should replace their counter-part when using -mpi
463      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`
464    
# Line 355  symlink_mpifiles() Line 473  symlink_mpifiles()
473              RETVAL=$?              RETVAL=$?
474              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
475                  if ! test -f $BUILD_DIR/$i ; then                  if ! test -f $BUILD_DIR/$i ; then
476                  #echo Linking $name to $i                      #echo Linking $name to $i
477                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)
478                  fi                  fi
479              fi              fi
480          done          done
481      else      else
482      # NO: We undo any _mpi symbolically linked files          # NO: We undo any _mpi symbolically linked files
483          for ii in $MPI_FILES ; do          for ii in $MPI_FILES ; do
484              i=`echo $ii | sed 's:^\./::'`              i=`echo $ii | sed 's:^\./::'`
485              name=`echo $i | sed 's:_mpi::' `              name=`echo $i | sed 's:_mpi::' `
486              if test -L $BUILD_DIR/$name ; then              if test -L $BUILD_DIR/$name ; then
487                  linktarg=`(cd $BUILD_DIR; readlink $name)`                  cmp $BUILD_DIR/$name "../$code_dir/$name"_mpi > /dev/null 2>&1
488                  if test $linktarg = "../$code_dir/$name"_mpi ; then                  RETVAL=$?
489                  #echo Un-linking $name from $linktarg                  if test "x$RETVAL" = x0 ; then
490                        #echo Un-linking $name from $linktarg
491                      rm -f $BUILD_DIR/$name                      rm -f $BUILD_DIR/$name
492                  fi                  fi
493              fi              fi
# Line 379  symlink_mpifiles() Line 498  symlink_mpifiles()
498    
499  linkdata()  linkdata()
500  {  {
501      # linkdata flag      # linkdata run_dir input_dir_1 input_dir_2 ...
502      #      #
503      # symbolically link data files to run directory      # symbolically link data files to run directory
504      if test "x$1" = x1 ; then      if test -d $1 ; then
505          (          (
506              cd $2              cd $1 ; shift
507              if test "x$ADM" = x ; then              if test -r "../"$1"/eedata.mth" ; then
508                  files=`( cd ../input ; ls -1 | grep -v CVS )`              # found eedata.mth in 1rst input dir and it is readable
509                  for i in $files ; do                  if test "x$MULTI_THREAD" = "xt" ; then
510                      if test ! -d "../input/"$i ; then                  # multi-threaded test: remove symbolic link & link eedata.mth
511                          ln -sf "../input/"$i $i                      if test -h eedata ; then rm -f eedata ; fi
512                      fi                      if test ! -r eedata ; then
513                  done                          ln -sf "../"$1"/eedata.mth" eedata ;
514              else                          printf 'eedata.mth ' 1>&2
                 files=`( cd ../input ; ls -1 *.bin | grep -v CVS )`  
                 for i in $files ; do  
                     if test ! -d "../input/"$i ; then  
                         ln -sf "../input/"$i $i  
                     fi  
                 done  
                 files=`( cd ../input_ad ; ls -1 | grep -v CVS )`  
                 for i in $files ; do  
                     if test ! -d "../input_ad/"$i ; then  
                         ln -sf "../input_ad/"$i $i  
515                      fi                      fi
516                  done                  else
517                    # not multi-threaded test: remove eedata symbolic link
518                        if test -h eedata ; then rm -f eedata ; fi
519                    fi
520              fi              fi
521                for ldir in $* ; do
522                    if test -d "../"$ldir ; then
523                        printf 'ldir='${ldir} 1>&2
524                        files=`( cd "../"$ldir ; ls -1 | grep -v CVS )`
525                        for i in $files ; do
526                            if test ! -d "../"$ldir/$i ; then
527                                if test ! -r $i  ; then
528                                    printf ' '$i 1>&2
529                                    ln -sf "../"$ldir"/"$i $i
530                                fi
531                            fi
532                        done
533                        if test -x "../"$ldir"/"prepare_run ; then
534                            "../"$ldir"/"prepare_run
535                        fi
536                        printf ' ; ' 1>&2
537                    fi
538                done
539          )          )
540      fi      fi
541  }  }
# Line 418  runmodel() Line 548  runmodel()
548      #  (where "$COMMAND" is relative to "directory")      #  (where "$COMMAND" is relative to "directory")
549      (      (
550          cd $1          cd $1
551          printf 'runmodel ... ' 1>&2          printf 'runmodel in %s ...' $1 1>&2
552          # make output.txt          # make output.txt
553          echo          echo
554          # echo "COMMAND='$COMMAND'"          if test ! -x $EXECUTABLE -a -x "../"$builddir"/"$EXECUTABLE ; then
555          # echo "pwd='"`pwd`"'"              echo " link" $EXECUTABLE "from dir ../"$builddir > run.log_00
556          ( eval $COMMAND ) >> run.log 2>&1              ln -sf "../"$builddir"/"$EXECUTABLE .
557          RETVAL=$?          fi
558          if test "x$RETVAL" = x0 ; then          if test ! -x $EXECUTABLE ; then
559                    rm -f run.log ; touch run.log
560                    if test -f run.log_00 ; then cat run.log_00 >> run.log ; fi
561                    echo " no executable:" $EXECUTABLE >> run.log
562                    RETVAL=8
563                    ENDVAL=-1
564            else
565                if test $OUTPUTFILE -ot $EXECUTABLE ; then
566                    rm -f run.log ; touch run.log
567                    if test -f run.log_00 ; then cat run.log_00 >> run.log ; fi
568                    ( eval $COMMAND ) >> run.log 2>&1
569                    RETVAL=$?
570                else
571                    RETVAL=0
572                    if test -f run.log ; then
573                        if test -f run.log_00 ; then cat run.log_00 >> run.log ; fi
574                        echo "---------->> $OUTPUTFILE is up to date " >> run.log 2>&1
575                    else
576                        touch run.log
577                        if test -f run.log_00 ; then cat run.log_00 >> run.log ; fi
578                        echo "---------->> $OUTPUTFILE is up to date " >> run.log 2>&1
579                        echo " no previous run.log: assume NORMAL END" >> run.log 2>&1
580                    fi
581                fi
582                ENDVAL=`cat run.log | grep -v 'ABNORMAL END' | grep -c 'NORMAL END'`
583            fi
584            rm -f run.log_00
585            #if test "x$RETVAL" = x0 ; then
586            if [ $RETVAL -eq 0 -a $ENDVAL -gt 0 ] ; then
587                tail run.log
588              echo successful 1>&2              echo successful 1>&2
589              # === Reduce the size of the testing emails!              # === Reduce the size of the testing emails!
590              # if test "x$ADM" = x ; then              #cp $OUTPUTFILE $CDIR"/"$OUTPUTFILE
591              #   cp output.txt $CDIR"/output.txt"              if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
             # else  
             #   cp output.txt_adm $CDIR"/output.txt_adm"  
             # fi  
592              return 0              return 0
593          else          else
594              tail run.log              tail run.log
595              echo failed 1>&2              echo failed '(run:' $RETVAL ' end:' $ENDVAL ')' 1>&2
596              cp run.log $CDIR"/run.log"              cp run.log $CDIR"/run.log"
597                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
598              return 1              return 1
599          fi          fi
600      )      )
# Line 453  createcodelet() Line 610  createcodelet()
610  #include <math.h>  #include <math.h>
611  int main( int argc, char** argv )  {  int main( int argc, char** argv )  {
612    int linnum,best,lncnt;    int linnum,best,lncnt;
613    double a,b,diff;    double a,b,abave,relerr;
614    best = -16;    best = -22;
615    lncnt = 0;    lncnt = 0;
616    while( 1 & (lncnt+=1) < 999 )  {    while( 1 & (lncnt+=1) < 999 )  {
617      scanf("%d", &linnum);      scanf("%d", &linnum);
618      if (linnum == -1)  break;      if (linnum == -1)  break;
619      scanf("%lf", &a);  scanf("%lf", &b);      scanf("%lf", &a);  scanf("%lf", &b);
620      diff = 0.5*(fabs(a)+fabs(b));      abave = 0.5*(fabs(a)+fabs(b));
621      if (diff > 1.e-12) {      if (abave > 0.0) {
622        diff=fabs(a-b)/diff;        relerr=fabs(a-b)/abave;
623        if (diff > 0.0) {        if (relerr > 0.0) { linnum = (int)rint(log10(relerr)); }
624          linnum = (int)log10(diff);        else { linnum = -16 ; }
625          best = (best > linnum) ? best : linnum;        best = (best > linnum) ? best : linnum;
       }  
       else {  
         if (best == -16 && diff != 0)  best = -22;  
       }  
626      }      }
627    }    }
628    if (lncnt == 999) best=-29;    if (lncnt == 999) best=-29;
# Line 477  int main( int argc, char** argv )  { Line 630  int main( int argc, char** argv )  {
630    return 0;    return 0;
631  }  }
632  EOF  EOF
633      cc -o tmp_cmpnum tmp_cmpnum.c -lm      $CC -o tmp_cmpnum tmp_cmpnum.c -lm
634    
635      if [ -x ./tmp_cmpnum ]; then      if [ -x ./tmp_cmpnum ]; then
636          echo "OK"          echo "OK"
637          return 0          return 0
638      else      else
639          echo          echo
640          echo "ERROR: failed to compile comparison code"          echo "ERROR: failed to compile comparison code -- please specify"
641            echo "  a C compiler using the CC environment variable."
642          exit 1          exit 1
643      fi      fi
644  }  }
# Line 512  formatresults() Line 666  formatresults()
666            
667  }  }
668    
 show_help()  
 {  
     cat - << EOF  
 $0 [-help] [-quick] [-verbose] dir1 [dir2] [...]  
   
  -help|-h      Show this help message  
  -quiet     Reduce the amount of output  
  -verbose   Produce copious amounts of output  
  -debug     Produce even more output which will mean nothing to most  
  -force     Do "make CLEAN" before compiling. This forces a complete rebuild.  
  -clean     Do "make CLEAN" after compiling and testing.  
  -cleanup   Aggresively removes all model output, executables and object files  
             and then exits. Use with care.  
   
 Normal usage:  
  $0 *       Configure, compile, run and analyze in all experiment directories  
 EOF  
 }  
   
669  scandirs()  scandirs()
670  {  {
671      if [ $# -eq 0 ]; then      if [ $# -eq 1 ]; then
672          for arg in * ; do          for arg in * ; do
673              test -d $arg/input && echo $arg              test -d $arg/$1 && echo $arg
674          done          done
675      else      else
676          echo $*          echo $*
677      fi      fi
678  }  }
679    
# Line 564  QUICK=f Line 699  QUICK=f
699  NOGENMAKE=f  NOGENMAKE=f
700  NOCLEAN=f  NOCLEAN=f
701  NODEPEND=f  NODEPEND=f
702    POSTCLEAN=f
703    
704  BASH=  BASH=
705  OPTFILE=NONE  OPTFILE=NONE
706  ADDRESSES=  ADDRESSES=
707  TESTDIRS=  TESTDIRS=
708    SKIPDIRS=
709  MPACKDIR="../tools/mpack-1.6"  MPACKDIR="../tools/mpack-1.6"
710  HAVE_MPACK=  HAVE_MPACK=
711  MPACK="$MPACKDIR/mpack"  MPACK="$MPACKDIR/mpack"
712  COMMAND=  COMMAND=
713  MAKE=make  if test "x$MAKE" = x ; then
714        MAKE=make
715    fi
716    if test "x$CC" = x ; then
717        CC=cc
718    fi
719  JOBS=  JOBS=
720  MPI=f  MPI=f
721    MULTI_THREAD=f
722    OUTDIR=
723  DELDIR=  DELDIR=
724    
725  ADM=  ADM=
726    
727    # Additional monitor types
728    PTRACERS_NUM="1 2 3 4 5"
729    
730  printf "parsing options...  "  printf "parsing options...  "
731    
732  ac_prev=  ac_prev=
# Line 614  for ac_option ; do Line 761  for ac_option ; do
761          -tdir=* | --tdir=*)          -tdir=* | --tdir=*)
762              TESTDIRS=$ac_optarg ;;              TESTDIRS=$ac_optarg ;;
763    
764            -skipdir | --skipdir | -skd | --skd)
765                ac_prev=SKIPDIRS ;;
766            -skipdir=* | --skipdir=*)
767                SKIPDIRS=$ac_optarg ;;
768    
769          -bash | --bash | -b | --b)          -bash | --bash | -b | --b)
770              ac_prev=BASH ;;              ac_prev=BASH ;;
771          -bash=* | --bash=*)          -bash=* | --bash=*)
# Line 629  for ac_option ; do Line 781  for ac_option ; do
781          -make=* | --make=*)          -make=* | --make=*)
782              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
783    
784            -odir | --odir)
785                ac_prev=OUTDIR ;;
786            -odir=* | --odir=*)
787                OUTDIR=$ac_optarg ;;
788    
789            -ptracers | --ptracers | -ptr | --ptr)
790                ac_prev=PTRACERS_NUM ;;
791            -ptracers=* | --ptracers=* | -ptr=* | --ptr=*)
792                PTRACERS_NUM=$ac_optarg ;;
793    
794          -j) ac_prev=JOBS ;;          -j) ac_prev=JOBS ;;
795          -j=*) JOBS=$ac_optarg ;;          -j=*) JOBS=$ac_optarg ;;
796    
797          -clean | --clean)          -clean | --clean)
798              CLEANUP=t ;;              CLEANUP=t ; DELDIR=t ;;
799    
800          -quick | --quick | -q | --q)          -quick | --quick | -q | --q)
801              QUICK=t ;;              QUICK=t ;;
# Line 644  for ac_option ; do Line 806  for ac_option ; do
806          -nodepend | --nodepend | -nd | --nd)          -nodepend | --nodepend | -nd | --nd)
807              NODEPEND=t ;;              NODEPEND=t ;;
808    
809            -postclean | --postclean | -pc | --pc)
810                POSTCLEAN=t ;;
811    
812          -mpi) MPI=t ;;          -mpi) MPI=t ;;
813    
814            -mth) MULTI_THREAD=t ;;
815    
816          -adm | -ad) ADM=t ;;          -adm | -ad) ADM=t ;;
817    
818          -ieee) IEEE=true ;;          -ieee) IEEE=true ;;
# Line 657  for ac_option ; do Line 824  for ac_option ; do
824    
825          -deldir | -dd) DELDIR=t ;;          -deldir | -dd) DELDIR=t ;;
826    
827            -ts) TS=t;;
828    
829            -papis) PAPIS=t;;
830    
831            -pcls) PCL=t;;
832    
833          -*)          -*)
834              echo "Error: unrecognized option: "$ac_option              echo "Error: unrecognized option: "$ac_option
835              usage              usage
# Line 678  if test "x$QUICK" = xt ; then Line 851  if test "x$QUICK" = xt ; then
851  fi  fi
852    
853  if test "x$TESTDIRS" = x ; then  if test "x$TESTDIRS" = x ; then
854      TESTDIRS=`scandirs`      if test "x$ADM" = xt ; then
855            LIST=`scandirs results_ad`
856        else
857            LIST=`scandirs results`
858        fi
859    else
860        #- expand group of experiments:
861        LIST=" "
862        for xx in $TESTDIRS
863        do
864          case $xx in
865            'basic') LIST=${LIST}" aim.5l_cs hs94.128x64x5 ideal_2D_oce"
866                     LIST=${LIST}" lab_sea tutorial_baroclinic_gyre"
867                     LIST=${LIST}" tutorial_global_oce_latlon tutorial_plume_on_slope"
868                    ;;
869            'tutorials')
870                     LIST=${LIST}" "`ls | grep 'tutorial_'` ;;
871            *)       LIST=${LIST}" "$xx ;;
872          esac
873        done
874  fi  fi
875    #echo 'LIST='${LIST}'<'
876    #- skip dirs, remove duplicate and non-directory:
877    TESTDIRS=" "
878    count=0
879    for xx in $LIST
880    do
881        yy=`echo $SKIPDIRS | grep -c $xx`
882        if test $yy = 0 ; then
883            if test -d $xx ; then
884                yy=`echo $TESTDIRS | grep -c $xx`
885                if test $yy = 0 ; then TESTDIRS=${TESTDIRS}" "$xx ; fi
886            else count=1 ;
887                echo ""; echo -n " -- skip \"$xx\" (not a directory !)"
888            fi
889        else
890            if test $count = 1 ; then echo -n ", \"$xx\""
891            else count=1 ; echo "" ;  echo -n " skip: \"$xx\""
892            fi
893        fi
894    done
895    if test $count = 1 ; then echo "" ; echo -n " ... " ; fi
896    #echo 'TESTDIRS='${TESTDIRS}'<'
897    
898  if test "x$OPTFILE" = xNONE -a "x$MITGCM_OF" != x ; then  if test "x$OPTFILE" = xNONE -a "x$MITGCM_OF" != x ; then
899      OPTFILE=$MITGCM_OF      OPTFILE=$MITGCM_OF
900  fi  fi
901    
902  if test "x$ADM" = xt -a "x$COMMAND" = x ; then  if test "x$ADM" = xt ; then
903      COMMAND="./mitgcmuv_ad > output.txt_adm 2>&1"      EXECUTABLE="mitgcmuv_ad"
904        OUTPUTFILE="output_adm.txt"
905    else
906        EXECUTABLE="mitgcmuv"
907        OUTPUTFILE="output.txt"
908  fi  fi
909    
910  if test "x$COMMAND" = x ; then  if test "x$COMMAND" = x ; then
911      COMMAND="make output.txt"      COMMAND="./$EXECUTABLE > $OUTPUTFILE"
912    fi
913    if test "x$MPI" = xt ; then
914        OUTPUTFILE="STDOUT.0000"
915  fi  fi
916    
917  echo "OK"  #echo "OK"
918    echo "OK (COMMAND= $COMMAND )"
919    
920  #  create the FORTRAN comparison code  #  create the FORTRAN comparison code
921  createcodelet  createcodelet
# Line 710  MACH=`hostname` Line 932  MACH=`hostname`
932  UNAMEA=`uname -a`  UNAMEA=`uname -a`
933  DATE=`date +%Y%m%d`  DATE=`date +%Y%m%d`
934  BASE="tr_"$MACH"_"$DATE"_"  BASE="tr_"$MACH"_"$DATE"_"
935    if test "x$OUTDIR" != x ; then
936        BASE="tr_"$OUTDIR"_"$DATE"_"
937    fi
938  DNUM=0  DNUM=0
939  DRESULTS="$BASE$DNUM"  DRESULTS="$BASE$DNUM"
940  while test -e $DRESULTS ; do  while test -e $DRESULTS ; do
# Line 755  fi Line 980  fi
980  echo  echo
981  echo >> $SUMMARY  echo >> $SUMMARY
982  if test "x$ADM" = x ; then  if test "x$ADM" = x ; then
983      cat << EOF | tee -a $SUMMARY      line_0="            ----T-----  ----S-----  ----U-----  ----V-----"
984                  T           S           U           V      line_1="G D M    c        m  s        m  s        m  s        m  s"
985  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  ."
986  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"
987  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  ."
988  2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .      for ii in $PTRACERS_NUM ; do
989            #  tst=`eval 'echo $HAVE_PTR0'$ii`
990  EOF          #  if test "x$tst" = xt ; then
991            line_0="$line_0  --PTR 0"$ii"--"
992            line_1="$line_1        m  s"
993            line_2="$line_2  m  m  e  ."
994            line_3="$line_3  i  a  a  d"
995            line_4="$line_4  n  x  n  ."
996            #  fi
997        done
998        echo "$line_0" | tee -a $SUMMARY
999        echo "$line_1" | tee -a $SUMMARY
1000        echo "$line_2" | tee -a $SUMMARY
1001        echo "$line_3" | tee -a $SUMMARY
1002        echo "$line_4" | tee -a $SUMMARY
1003        echo " "       | tee -a $SUMMARY
1004  else  else
1005      echo "ADJOINT=true" >> $SUMMARY      echo "ADJOINT=true" >> $SUMMARY
1006      echo >> $SUMMARY      echo >> $SUMMARY
# Line 781  for dir in $TESTDIRS ; do Line 1019  for dir in $TESTDIRS ; do
1019      #  Cleanup only!      #  Cleanup only!
1020      if test "x$CLEANUP" = xt ; then      if test "x$CLEANUP" = xt ; then
1021          if test -r $dir/build/Makefile ; then          if test -r $dir/build/Makefile ; then
1022                echo '  ------  clean dir:' $dir/build
1023              ( cd $dir/build ; make CLEAN )              ( cd $dir/build ; make CLEAN )
1024          fi          fi
1025          if test -r $dir/input/Makefile ; then          if test -d $dir/run/CVS ; then
1026              ( cd $dir/input ; make CLEAN )              echo '  ------  clean dir:' $dir/run
1027                run_clean $dir/run
1028          fi          fi
1029            (
1030                cd $dir
1031                rm -rf tr_run.*
1032            )
1033          continue          continue
1034      fi      fi
1035    
# Line 795  for dir in $TESTDIRS ; do Line 1039  for dir in $TESTDIRS ; do
1039      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
1040          fout=$dir"/results/output.txt"          fout=$dir"/results/output.txt"
1041      else      else
1042          fout=$dir"/results_ad/output.txt_adm"          fout=$dir"/results_ad/output_adm.txt"
1043      fi      fi
1044      if test ! -r $fout ; then      if test ! -r $fout ; then
1045          echo "can't read \"$fout\" -- skipping $dir"          echo "can't read \"$fout\" -- skipping $dir"
1046          continue          continue
1047      fi      fi
1048        if test "x$ADM" = x ; then
1049            check_for_add_mon_output  $fout
1050        fi
1051    
1052      builddir="input"      # Check for additional types of monitor output
1053      rundir="input"  
1054      use_seperate_build=0      builddir="build"
1055      if test -d $dir/build -a -r $dir/build ; then      if test ! -d $dir/$builddir ; then mkdir $dir/$builddir ; fi
1056          builddir="build"      rundir="run"
1057          rundir="build"     #rundir=$builddir
1058          use_seperate_build=1      if test ! -d $dir/$rundir ; then
1059          linkdata $use_seperate_build $dir/$rundir          rundir=$builddir
1060      fi      fi
1061            
     #  Check whether there are "extra runs" for this testdir  
     extra_runs=  
     if test "x$ADM" = x -a "x$use_seperate_build" = x1 ; then  
         ex_run_dirs=`( cd $dir ; echo input.* )`  
         echo "ex_run_dirs='$ex_run_dirs'"  
         for exd in $ex_run_dirs ; do  
             name=`echo $exd | sed -e 's/input.//g'`  
             outf="$dir/results/output.txt.$name"  
             if test -f $outf -a -r $outf ; then  
                 extra_runs="$extra_runs $name"  
             fi  
         done  
     fi  
   
1062      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
1063          code_dir=code          code_dir=code
1064          CODE_DIR=$dir/code          CODE_DIR=$dir/code
1065            input_dirs='input'
1066      else      else
1067          code_dir=code_ad          code_dir=code_ad
1068          CODE_DIR=$dir/code_ad          CODE_DIR=$dir/code_ad
1069            input_dirs='input_ad input'
1070      fi      fi
1071      BUILD_DIR=$dir/$builddir      BUILD_DIR=$dir/$builddir
1072    
# Line 839  for dir in $TESTDIRS ; do Line 1074  for dir in $TESTDIRS ; do
1074          echo "can't find \"$CODE_DIR/SIZE.h_mpi\" -- skipping $dir"          echo "can't find \"$CODE_DIR/SIZE.h_mpi\" -- skipping $dir"
1075          continue          continue
1076      fi      fi
1077        if test ! -r $dir"/input/eedata.mth" -a "x$MULTI_THREAD" = "xt" ; then
1078            echo "can't find \"$dir/input/eedata.mth\" -- skipping $dir"
1079            continue
1080        fi
1081    
1082        #  Check whether there are "extra runs" for this testdir
1083        extra_runs=
1084        if test "x$ADM" = x ; then
1085            ex_run_dirs=`( cd $dir ; echo input.* )`
1086            #echo "ex_run_dirs='$ex_run_dirs'"
1087            for exd in $ex_run_dirs ; do
1088                name=`echo $exd | sed -e 's/input.//g'`
1089                outf="$dir/results/output.$name.txt"
1090                if test -f $outf -a -r $outf ; then
1091                    if test "x$MULTI_THREAD" = "xt" ; then
1092                        if test -r $dir"/"$exd"/eedata.mth" ; then
1093                            extra_runs="$extra_runs $name"
1094                        #else echo $dir"/"$exd"/eedata.mth: not found"
1095                        fi
1096                    else
1097                        extra_runs="$extra_runs $name"
1098                    fi
1099                fi
1100            done
1101        fi
1102    
1103      echo "-------------------------------------------------------------------------------"      echo "-------------------------------------------------------------------------------"
1104      echo      echo
1105      echo "Experiment:  $dir"      if test "x$extra_runs" = "x" ; then
1106           echo "Experiment:  $dir"
1107        else
1108           echo "Experiment:  $dir ; extra_runs=$extra_runs"
1109        fi
1110      echo      echo
1111      unset genmake makedepend make run      unset genmake makedepend make run
1112      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1113    
1114      #  Create an output dir for each OPTFILE/tdir combination      #  Create an output dir for each OPTFILE/tdir combination
1115      rel_CDIR=$DRESULTS"/"$dir      rel_CDIR=$DRESULTS"/"$dir
# Line 853  for dir in $TESTDIRS ; do Line 1117  for dir in $TESTDIRS ; do
1117      CDIR=`pwd`"/$rel_CDIR"      CDIR=`pwd`"/$rel_CDIR"
1118            
1119      if test "x$CLEANUP" = xt ; then      if test "x$CLEANUP" = xt ; then
1120          makeclean $dir/$builddir          echo '====>>> this is to check that we never go through this part <<< ==='
1121            makeclean $dir/$builddir \
1122                && run_clean $dir/$rundir
1123      else      else
1124          genmakemodel $dir/$builddir && genmake=Y \          genmakemodel $dir/$builddir && genmake=Y \
1125              && makeclean $dir/$builddir \              && makeclean $dir/$builddir \
1126                && run_clean $dir/$rundir \
1127              && symlink_mpifiles $dir $code_dir $builddir \              && symlink_mpifiles $dir $code_dir $builddir \
1128              && makedependmodel $dir/$builddir && makedepend=Y \              && makedependmodel $dir/$builddir && makedepend=Y \
1129              && makemodel $dir/$builddir && make=Y \              && makemodel $dir/$builddir && make=Y \
1130              && linkdata $use_seperate_build $dir/$rundir \              && linkdata $dir/$rundir $input_dirs \
1131              && runmodel $dir/$rundir && run=Y \              && runmodel $dir/$rundir && run=Y \
1132              && results=`testoutput $dir $rundir`              && results=`testoutput $dir $rundir "txt"`
1133      fi      fi
1134            
1135      echo      echo
# Line 876  for dir in $TESTDIRS ; do Line 1143  for dir in $TESTDIRS ; do
1143          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1144          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1145    
         OLD_COMMAND=$COMMAND  
         COMMAND="./mitgcmuv > output.txt"  
1146          for ex in $extra_runs ; do          for ex in $extra_runs ; do
1147              test -e "$dir/tr_run.$ex" && rm -rf "$dir/tr_run.$ex"              unset run
1148              mkdir "$dir/tr_run.$ex"              results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1149              links=`( cd "$dir/input" > /dev/null 2>&1 ; ls -1 | grep -v CVS )`              #  Create an output dir for each OPTFILE/tdir.ex combination
1150              (              rel_CDIR=$DRESULTS"/"$dir"."$ex
1151                  cd "$dir/tr_run.$ex"              mkdir $rel_CDIR
1152                  for i in $links; do              CDIR=`pwd`"/$rel_CDIR"
1153                      ln -s ../input/$i $i              test ! -e "$dir/tr_run.$ex" && mkdir "$dir/tr_run.$ex"
1154                  done              run_clean $dir/tr_run.$ex
1155              )              linkdata $dir/tr_run.$ex input.$ex input
             links=`( cd "$dir/input.$ex" > /dev/null 2>&1 ; ls -1 | grep -v CVS )`  
             (  
                 cd "$dir/tr_run.$ex"  
                 for i in $links; do  
                     test -e $i  &&  rm -f $i  
                     ln -s ../input.$ex/$i $i  
                 done  
                 ln -s ../$builddir/mitgcmuv mitgcmuv  
             )  
1156              runmodel $dir/tr_run.$ex && run=Y \              runmodel $dir/tr_run.$ex && run=Y \
1157                  && results=`testoutput $dir tr_run.$ex "."$ex`                  && results=`testoutput $dir tr_run.$ex ${ex}".txt"`
1158              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}`
1159              fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`              fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`
1160              fres="$fres.$ex"              fres="$fres.$ex"
# Line 908  for dir in $TESTDIRS ; do Line 1164  for dir in $TESTDIRS ; do
1164              echo "MACH='$MACH'" >> $CDIR"/summary.txt"              echo "MACH='$MACH'" >> $CDIR"/summary.txt"
1165              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1166              echo "DATE='$DATE'" >> $CDIR"/summary.txt"              echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1167              echo "tdir='$dir'" >> $CDIR"/summary.txt"              echo "tdir='$dir.$ex'" >> $CDIR"/summary.txt"
1168                if test "x$POSTCLEAN" = xt ; then
1169                    run_clean $dir/tr_run.$ex
1170                fi
1171          done          done
         COMMAND=$OLD_COMMAND  
1172      else      else
1173          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}`
1174          fres=$fres"$results   $dir"          fres=$fres"$results   $dir"
# Line 921  for dir in $TESTDIRS ; do Line 1179  for dir in $TESTDIRS ; do
1179          echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"          echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1180          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1181          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1182            grep -A3 'Seconds in section "ALL' $dir/$rundir/$OUTPUTFILE \
1183                               >> $CDIR"/summary.txt"
1184        fi
1185    
1186        #postclean $dir/$builddir
1187        if test "x$POSTCLEAN" = xt ; then
1188            makeclean $dir/$builddir \
1189                && run_clean $dir/$rundir
1190      fi      fi
1191            
1192      echo "-------------------------------------------------------------------------------"      echo "-------------------------------------------------------------------------------"
# Line 963  fi Line 1229  fi
1229  rm -f tmp_cmpnum.c tmp_cmpnum  rm -f tmp_cmpnum.c tmp_cmpnum
1230    
1231  if test "x$CLEANUP" != xt ; then  if test "x$CLEANUP" != xt ; then
1232      cat $SUMMARY      cat $SUMMARY | sed 's/ -- -- -- --//g'
1233      if test -e tr_out.txt ; then      if test -e tr_out.txt ; then
1234          mv tr_out.txt tr_out.txt.old          mv tr_out.txt tr_out.txt.old
1235      fi      fi
1236      cat $SUMMARY > tr_out.txt      cat $SUMMARY | sed 's/ -- -- -- --//g' > tr_out.txt
1237  fi  fi
1238    
1239  if test "x$DELDIR" = xt ; then  if test "x$DELDIR" = xt ; then

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.90

  ViewVC Help
Powered by ViewVC 1.1.22