/[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.40 by edhill, Tue Jul 6 19:53:34 2004 UTC revision 1.75 by jmc, Fri Feb 24 23:15:25 2006 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 "  (-odir) STRING           used to build output directory name"
31        echo "                             (DEF=\"hostname\")"
32        echo "  (-ptracers|-ptr) STRING  specify which ptracers to test"
33        echo "                             (DEF=\"1 2 3 4 5\")"
34        echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"
35      echo "  (-clean)                 *ONLY* run \"make CLEAN\""      echo "  (-clean)                 *ONLY* run \"make CLEAN\""
36      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""
37      echo "  (-nogenmake|-ng)         skip the genmake stage"      echo "  (-nogenmake|-ng)         skip the genmake stage"
# Line 34  usage() Line 39  usage()
39      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"
40      echo "  (-deldir|-dd)            on success, delete the output directory"      echo "  (-deldir|-dd)            on success, delete the output directory"
41      echo      echo
42      echo "and where STRING follows a whitespace-delimited format"      echo "and where STRING can be a whitespace-delimited list"
43      echo "such as:"      echo "such as:"
44        echo
45      echo "  -t 'exp0 exp2 exp3' "      echo "  -t 'exp0 exp2 exp3' "
46      echo "  -addr='abc@123.com testing@home.org'"      echo "  -addr='abc@123.com testing@home.org'"
47      echo      echo
48        echo "provided that the expression is properly quoted within the current"
49        echo "shell (note the use of single quotes to protect white space)."
50        echo
51      exit 1      exit 1
52  }  }
53    
# Line 88  testoutput_for_prop() Line 97  testoutput_for_prop()
97      fi      fi
98      if [ -r $1/$4/output.txt ]; then      if [ -r $1/$4/output.txt ]; then
99          grep "$2" $1/$4/output.txt | sed 's/.*=//' | cat -n > tmp1.txt          grep "$2" $1/$4/output.txt | sed 's/.*=//' | cat -n > tmp1.txt
100          lncnt=`wc -l tmp1.txt | awk '{print $1}' `          lncntA=`wc -l tmp1.txt | awk '{print $1}' `
101          if [ $lncnt -lt 3 ]; then          if [ $lncntA -lt 3 ]; then
102              if [ $verbose -gt 0 ]; then              if [ $verbose -gt 0 ]; then
103                  echo Not enough lines of output when searching for "$2" 1>&2                  echo Not enough lines of output when searching for "$2" 1>&2
104              fi              fi
# Line 103  testoutput_for_prop() Line 112  testoutput_for_prop()
112          echo testoutput_for_prop: grep "$2" $1/results/output.txt$5 1>&2          echo testoutput_for_prop: grep "$2" $1/results/output.txt$5 1>&2
113      fi      fi
114      grep "$2" $1/results/output.txt$5 | sed 's/.*=//' | cat -n > tmp2.txt      grep "$2" $1/results/output.txt$5 | sed 's/.*=//' | cat -n > tmp2.txt
115      lncnt=`wc -l tmp2.txt | awk '{print $1}' `      lncntB=`wc -l tmp2.txt | awk '{print $1}' `
116      if [ $lncnt -lt 3 ]; then      if [ $lncntB -lt 3 ]; then
117          if [ $verbose -gt 0 ]; then          if [ $verbose -gt 0 ]; then
118              echo Not enough lines of output when searching for "$2" 1>&2              echo Not enough lines of output when searching for "$2" 1>&2
119          fi          fi
120          return 99          return 99
121      fi      fi
122        if [ $lncntA -ne $lncntB ]; then
123            if [ $verbose -gt 0 ]; then
124                echo Not same Nb of lines when searching for "$2" ":" $lncntA $lncntB 1>&2
125            fi
126            return 99
127        fi
128        has_nan=`cat tmp1.txt | grep -i nan | wc -l`
129        if [ $has_nan -gt 0  ] ; then
130            echo testoutput_for_prop: output.txt contains $has_nan NaN values  1>&2
131            return 99
132        fi
133        has_inf=`cat tmp1.txt | grep -i inf | wc -l`
134        if [ $has_inf -gt 0  ] ; then
135            echo testoutput_for_prop: output.txt contains $has_inf Inf values  1>&2
136            return 99
137        fi
138      if [ $debug -gt 0 ]; then      if [ $debug -gt 0 ]; then
139          echo testoutput_for_prop: join tmp1.txt tmp2.txt 1>&2          echo testoutput_for_prop: join tmp1.txt tmp2.txt 1>&2
140      fi      fi
# Line 170  testoutput_ad() Line 195  testoutput_ad()
195      rm -f t[01][56].txt t[56].txt      rm -f t[01][56].txt t[56].txt
196  }  }
197    
198    check_for_add_mon_output()
199    {
200        # Check for additional types of monitor output
201        if test "x$1" = x ; then
202            return
203        fi
204    
205        for ii in $PTRACERS_NUM ; do
206            eval "HAVE_PTR0"$ii"=f"
207        done
208    
209        ptr_add="trcstat_ptracerXX_min trcstat_ptracerXX_max"
210        ptr_add="$ptr_add trcstat_ptracerXX_mean trcstat_ptracerXX_sd"
211        for ii in $PTRACERS_NUM ; do
212            for jj in $ptr_add ; do
213                name=`eval "echo $jj | sed -e 's|XX|0"$ii"|g'"`
214                tst=`grep $name $1 | wc -l | awk '{print $1}'`
215                if test ! "x$tst" = x0 ; then
216                    eval "HAVE_PTR0"$ii"=t"
217                fi
218            done
219            #  eval 'echo "HAVE_PTR0'$ii' = $HAVE_PTR0'$ii'"'
220        done
221    }
222    
223  testoutput()  testoutput()
224  {  {
225      # testoutput directory subdir extension      # testoutput directory subdir extension
# Line 199  testoutput() Line 249  testoutput()
249          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?
250          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?
251          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=$?
252          dashnum $cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd \  
253              $umin $umax $umean $usd $vmin $vmax $vmean $vsd          #  This is for PTRACERS
254            for ii in $PTRACERS_NUM ; do
255                eval `echo "p0"$ii"_min=99"`
256                eval `echo "p0"$ii"_max=99"`
257                eval `echo "p0"$ii"_mean=99"`
258                eval `echo "p0"$ii"_sd=99"`
259                tst=`eval 'echo "$HAVE_PTR0'$ii'"'`
260                #echo 'tst = '$tst
261                if test "x$tst" = xt ; then
262                    a="trcstat_ptracer0"
263                    testoutput_for_prop $1 "$a"$ii"_min"  "p0"$ii"_min"  $2 $3
264                    RETVAL=$? ; eval `echo "p0"$ii"_min="$RETVAL`
265                    testoutput_for_prop $1 "$a"$ii"_max"  "p0"$ii"_max"  $2 $3
266                    RETVAL=$? ; eval `echo "p0"$ii"_max="$RETVAL`
267                    testoutput_for_prop $1 "$a"$ii"_mean" "p0"$ii"_mean" $2 $3
268                    RETVAL=$? ; eval `echo "p0"$ii"_mean="$RETVAL`
269                    testoutput_for_prop $1 "$a"$ii"_sd"   "p0"$ii"_sd"   $2 $3
270                    RETVAL=$? ; eval `echo "p0"$ii"_sd="$RETVAL`
271                fi
272            done
273    
274            allargs="$cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd"
275            allargs="$allargs $umin $umax $umean $usd $vmin $vmax $vmean $vsd"
276            allargs="$allargs $p01_min $p01_max $p01_mean $p01_sd"
277            allargs="$allargs $p02_min $p02_max $p02_mean $p02_sd"
278            allargs="$allargs $p03_min $p03_max $p03_mean $p03_sd"
279            allargs="$allargs $p04_min $p04_max $p04_mean $p04_sd"
280            allargs="$allargs $p05_min $p05_max $p05_mean $p05_sd"
281    
282            eval "dashnum $allargs"
283    
284      else      else
285          testoutput_ad $1 $2 "precision_grdchk_result"          testoutput_ad $1 $2 "precision_grdchk_result"
286      fi      fi
# Line 232  genmakemodel() Line 312  genmakemodel()
312              if test "x$IEEE" != x ; then              if test "x$IEEE" != x ; then
313                  command="$command -ieee"                  command="$command -ieee"
314              fi              fi
315                if test "x$MPI" = xt ; then
316                    command="$command -mpi"
317                fi
318              printf 'genmake ... ' 1>&2              printf 'genmake ... ' 1>&2
319              $command > make.log 2>&1              $command > make.log 2>&1
320              RETVAL=$?              RETVAL=$?
321              cp Makefile $CDIR              #  Reduce the size of the testing emails!
322                head -100 Makefile > $CDIR/Makefile_head
323              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
324                  tail make.log                  tail make.log
325                  echo "genmakemodel: genmake failed" 1>&2                  echo "genmakemodel: genmake failed" 1>&2
# Line 276  makeclean() Line 360  makeclean()
360      fi      fi
361  }  }
362    
363    postclean()
364    {
365        # postclean directory
366        if test "x$POSTCLEAN" = xt ; then
367            (
368                cd $1;
369                if test -r Makefile ; then
370                    $MAKE CLEAN >> /dev/null 2>&1
371                fi
372                exit 0
373            )
374        fi
375    }
376    
377  makedependmodel()  makedependmodel()
378  {  {
379      # makedependmodel directory      # makedependmodel directory
# Line 307  makemodel() Line 405  makemodel()
405          if test -r Makefile ; then          if test -r Makefile ; then
406              printf 'make ... ' 1>&2              printf 'make ... ' 1>&2
407              if test "x$ADM" = x ; then              if test "x$ADM" = x ; then
408                  $MAKE >> make.log 2>&1                  if test "x$JOBS" = x ; then
409                        $MAKE >> make.log 2>&1
410                    else
411                        $MAKE -j $JOBS >> make.log 2>&1
412                    fi
413              else              else
414                  $MAKE adall >> make.log 2>&1                  $MAKE adall >> make.log 2>&1
415              fi              fi
# Line 334  symlink_mpifiles() Line 436  symlink_mpifiles()
436      code_dir=$2      code_dir=$2
437      BUILD_DIR=$dir/$3      BUILD_DIR=$dir/$3
438      CODE_DIR=$dir/$code_dir      CODE_DIR=$dir/$code_dir
439        
440      # These are files that should replace their counter-part when using -mpi      # These are files that should replace their counter-part when using -mpi
441      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`      MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`
442    
# Line 349  symlink_mpifiles() Line 451  symlink_mpifiles()
451              RETVAL=$?              RETVAL=$?
452              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
453                  if ! test -f $BUILD_DIR/$i ; then                  if ! test -f $BUILD_DIR/$i ; then
454                  #echo Linking $name to $i                      #echo Linking $name to $i
455                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)                      (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)
456                  fi                  fi
457              fi              fi
458          done          done
459      else      else
460      # NO: We undo any _mpi symbolically linked files          # NO: We undo any _mpi symbolically linked files
461          for ii in $MPI_FILES ; do          for ii in $MPI_FILES ; do
462              i=`echo $ii | sed 's:^\./::'`              i=`echo $ii | sed 's:^\./::'`
463              name=`echo $i | sed 's:_mpi::' `              name=`echo $i | sed 's:_mpi::' `
464              if test -L $BUILD_DIR/$name ; then              if test -L $BUILD_DIR/$name ; then
465                  linktarg=`(cd $BUILD_DIR; readlink $name)`                  cmp $BUILD_DIR/$name "../$code_dir/$name"_mpi > /dev/null 2>&1
466                  if test $linktarg = "../$code_dir/$name"_mpi ; then                  RETVAL=$?
467                  #echo Un-linking $name from $linktarg                  if test "x$RETVAL" = x0 ; then
468                        #echo Un-linking $name from $linktarg
469                      rm -f $BUILD_DIR/$name                      rm -f $BUILD_DIR/$name
470                  fi                  fi
471              fi              fi
# Line 382  linkdata() Line 485  linkdata()
485              if test "x$ADM" = x ; then              if test "x$ADM" = x ; then
486                  files=`( cd ../input ; ls -1 | grep -v CVS )`                  files=`( cd ../input ; ls -1 | grep -v CVS )`
487                  for i in $files ; do                  for i in $files ; do
488                      if test ! -d "../input/"$i ; then                      if test ! -d "../input/"$i -a ! -f $i ; then
489                          ln -sf "../input/"$i $i                          ln -sf "../input/"$i $i
490                      fi                      fi
491                  done                  done
# Line 412  runmodel() Line 515  runmodel()
515      #  (where "$COMMAND" is relative to "directory")      #  (where "$COMMAND" is relative to "directory")
516      (      (
517          cd $1          cd $1
518          printf 'runmodel ... ' 1>&2          printf 'runmodel in %s ...' $1 1>&2
519          # make output.txt          # make output.txt
520          echo          echo
521            rm -f run.log
522            if test output.txt -ot mitgcmuv ; then
523               ( eval $COMMAND ) > run.log 2>&1
524               RETVAL=$?
525            else
526               echo ' output.txt is up to date ' > run.log 2>&1
527               RETVAL=0
528            fi
529          # echo "COMMAND='$COMMAND'"          # echo "COMMAND='$COMMAND'"
530          # echo "pwd='"`pwd`"'"          # echo "pwd='"`pwd`"'"
         ( eval $COMMAND ) >> run.log 2>&1  
         RETVAL=$?  
531          if test "x$RETVAL" = x0 ; then          if test "x$RETVAL" = x0 ; then
532                tail run.log
533              echo successful 1>&2              echo successful 1>&2
534              if test "x$ADM" = x ; then              # === Reduce the size of the testing emails!
535                  cp output.txt $CDIR"/output.txt"              # if test "x$ADM" = x ; then
536              else              #   cp output.txt $CDIR"/output.txt"
537                  cp output.txt_adm $CDIR"/output.txt_adm"              # else
538              fi              #   cp output.txt_adm $CDIR"/output.txt_adm"
539                # fi
540                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
541              return 0              return 0
542          else          else
543              tail run.log              tail run.log
544              echo failed 1>&2              echo failed 1>&2
545              cp run.log $CDIR"/run.log"              cp run.log $CDIR"/run.log"
546                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
547              return 1              return 1
548          fi          fi
549      )      )
# Line 446  createcodelet() Line 559  createcodelet()
559  #include <math.h>  #include <math.h>
560  int main( int argc, char** argv )  {  int main( int argc, char** argv )  {
561    int linnum,best,lncnt;    int linnum,best,lncnt;
562    double a,b,diff;    double a,b,abave,relerr;
563    best = -16;    best = -22;
564    lncnt = 0;    lncnt = 0;
565    while( 1 & (lncnt+=1) < 999 )  {    while( 1 & (lncnt+=1) < 999 )  {
566      scanf("%d", &linnum);      scanf("%d", &linnum);
567      if (linnum == -1)  break;      if (linnum == -1)  break;
568      scanf("%lf", &a);  scanf("%lf", &b);      scanf("%lf", &a);  scanf("%lf", &b);
569      diff = 0.5*(fabs(a)+fabs(b));      abave = 0.5*(fabs(a)+fabs(b));
570      if (diff > 1.e-12) {      if (abave > 0.0) {
571        diff=fabs(a-b)/diff;        relerr=fabs(a-b)/abave;
572        if (diff > 0.0) {        if (relerr > 0.0) { linnum = (int)rint(log10(relerr)); }
573          linnum = (int)log10(diff);        else { linnum = -16 ; }
574          best = (best > linnum) ? best : linnum;        best = (best > linnum) ? best : linnum;
       }  
       else {  
         if (best == -16 && diff != 0)  best = -22;  
       }  
575      }      }
576    }    }
577    if (lncnt == 999) best=-29;    if (lncnt == 999) best=-29;
# Line 470  int main( int argc, char** argv )  { Line 579  int main( int argc, char** argv )  {
579    return 0;    return 0;
580  }  }
581  EOF  EOF
582      cc -o tmp_cmpnum tmp_cmpnum.c -lm      $CC -o tmp_cmpnum tmp_cmpnum.c -lm
583    
584      if [ -x ./tmp_cmpnum ]; then      if [ -x ./tmp_cmpnum ]; then
585          echo "OK"          echo "OK"
586          return 0          return 0
587      else      else
588          echo          echo
589          echo "ERROR: failed to compile comparison code"          echo "ERROR: failed to compile comparison code -- please specify"
590            echo "  a C compiler using the CC environment variable."
591          exit 1          exit 1
592      fi      fi
593  }  }
# Line 557  QUICK=f Line 667  QUICK=f
667  NOGENMAKE=f  NOGENMAKE=f
668  NOCLEAN=f  NOCLEAN=f
669  NODEPEND=f  NODEPEND=f
670    POSTCLEAN=f
671    
672  BASH=  BASH=
673  OPTFILE=NONE  OPTFILE=NONE
# Line 566  MPACKDIR="../tools/mpack-1.6" Line 677  MPACKDIR="../tools/mpack-1.6"
677  HAVE_MPACK=  HAVE_MPACK=
678  MPACK="$MPACKDIR/mpack"  MPACK="$MPACKDIR/mpack"
679  COMMAND=  COMMAND=
680  MAKE=make  if test "x$MAKE" = x ; then
681        MAKE=make
682    fi
683    if test "x$CC" = x ; then
684        CC=cc
685    fi
686    JOBS=
687  MPI=f  MPI=f
688    OUTDIR=
689  DELDIR=  DELDIR=
690    
691  ADM=  ADM=
692    
693    # Additional monitor types
694    PTRACERS_NUM="1 2 3 4 5"
695    
696  printf "parsing options...  "  printf "parsing options...  "
697    
698  ac_prev=  ac_prev=
# Line 621  for ac_option ; do Line 742  for ac_option ; do
742          -make=* | --make=*)          -make=* | --make=*)
743              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
744    
745            -odir | --odir)
746                ac_prev=OUTDIR ;;
747            -odir=* | --odir=*)
748                OUTDIR=$ac_optarg ;;
749    
750            -ptracers | --ptracers | -ptr | --ptr)
751                ac_prev=PTRACERS_NUM ;;
752            -ptracers=* | --ptracers=* | -ptr=* | --ptr=*)
753                PTRACERS_NUM=$ac_optarg ;;
754    
755            -j) ac_prev=JOBS ;;
756            -j=*) JOBS=$ac_optarg ;;
757    
758          -clean | --clean)          -clean | --clean)
759              CLEANUP=t ;;              CLEANUP=t ; DELDIR=t ;;
760    
761          -quick | --quick | -q | --q)          -quick | --quick | -q | --q)
762              QUICK=t ;;              QUICK=t ;;
# Line 633  for ac_option ; do Line 767  for ac_option ; do
767          -nodepend | --nodepend | -nd | --nd)          -nodepend | --nodepend | -nd | --nd)
768              NODEPEND=t ;;              NODEPEND=t ;;
769    
770            -postclean | --postclean | -pc | --pc)
771                POSTCLEAN=t ;;
772    
773          -mpi) MPI=t ;;          -mpi) MPI=t ;;
774    
775          -adm | -ad) ADM=t ;;          -adm | -ad) ADM=t ;;
# Line 679  if test "x$ADM" = xt -a "x$COMMAND" = x Line 816  if test "x$ADM" = xt -a "x$COMMAND" = x
816  fi  fi
817    
818  if test "x$COMMAND" = x ; then  if test "x$COMMAND" = x ; then
819      COMMAND="make output.txt"      COMMAND="./mitgcmuv > output.txt"
820  fi  fi
821    
822  echo "OK"  echo "OK"
# Line 699  MACH=`hostname` Line 836  MACH=`hostname`
836  UNAMEA=`uname -a`  UNAMEA=`uname -a`
837  DATE=`date +%Y%m%d`  DATE=`date +%Y%m%d`
838  BASE="tr_"$MACH"_"$DATE"_"  BASE="tr_"$MACH"_"$DATE"_"
839    if test "x$OUTDIR" != x ; then
840        BASE="tr_"$OUTDIR"_"$DATE"_"
841    fi
842  DNUM=0  DNUM=0
843  DRESULTS="$BASE$DNUM"  DRESULTS="$BASE$DNUM"
844  while test -e $DRESULTS ; do  while test -e $DRESULTS ; do
# Line 744  fi Line 884  fi
884  echo  echo
885  echo >> $SUMMARY  echo >> $SUMMARY
886  if test "x$ADM" = x ; then  if test "x$ADM" = x ; then
887      cat << EOF | tee -a $SUMMARY      line_0="            ----T-----  ----S-----  ----U-----  ----V-----"
888                  T           S           U           V      line_1="G D M    c        m  s        m  s        m  s        m  s"
889  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  ."
890  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"
891  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  ."
892  2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .      for ii in $PTRACERS_NUM ; do
893            #  tst=`eval 'echo $HAVE_PTR0'$ii`
894  EOF          #  if test "x$tst" = xt ; then
895            line_0="$line_0  --PTR 0"$ii"--"
896            line_1="$line_1        m  s"
897            line_2="$line_2  m  m  e  ."
898            line_3="$line_3  i  a  a  d"
899            line_4="$line_4  n  x  n  ."
900            #  fi
901        done
902        echo "$line_0" | tee -a $SUMMARY
903        echo "$line_1" | tee -a $SUMMARY
904        echo "$line_2" | tee -a $SUMMARY
905        echo "$line_3" | tee -a $SUMMARY
906        echo "$line_4" | tee -a $SUMMARY
907        echo " "       | tee -a $SUMMARY
908  else  else
909      echo "ADJOINT=true" >> $SUMMARY      echo "ADJOINT=true" >> $SUMMARY
910      echo >> $SUMMARY      echo >> $SUMMARY
# Line 775  for dir in $TESTDIRS ; do Line 928  for dir in $TESTDIRS ; do
928          if test -r $dir/input/Makefile ; then          if test -r $dir/input/Makefile ; then
929              ( cd $dir/input ; make CLEAN )              ( cd $dir/input ; make CLEAN )
930          fi          fi
931            (
932                cd $dir
933                rm -rf tr_run.*
934            )
935          continue          continue
936      fi      fi
937    
# Line 790  for dir in $TESTDIRS ; do Line 947  for dir in $TESTDIRS ; do
947          echo "can't read \"$fout\" -- skipping $dir"          echo "can't read \"$fout\" -- skipping $dir"
948          continue          continue
949      fi      fi
950        if test "x$ADM" = x ; then
951            check_for_add_mon_output  $fout
952        fi
953    
954        # Check for additional types of monitor output
955    
956      builddir="input"      builddir="input"
957      rundir="input"      rundir="input"
# Line 834  for dir in $TESTDIRS ; do Line 996  for dir in $TESTDIRS ; do
996      echo "Experiment:  $dir"      echo "Experiment:  $dir"
997      echo      echo
998      unset genmake makedepend make run      unset genmake makedepend make run
999      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1000    
1001      #  Create an output dir for each OPTFILE/tdir combination      #  Create an output dir for each OPTFILE/tdir combination
1002      rel_CDIR=$DRESULTS"/"$dir      rel_CDIR=$DRESULTS"/"$dir
# Line 865  for dir in $TESTDIRS ; do Line 1027  for dir in $TESTDIRS ; do
1027          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1028          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1029    
         OLD_COMMAND=$COMMAND  
         COMMAND="./mitgcmuv > output.txt"  
1030          for ex in $extra_runs ; do          for ex in $extra_runs ; do
1031              test -e "$dir/tr_run" && rm -rf "$dir/tr_run"              unset run
1032              mkdir "$dir/tr_run"              results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1033              links=`( cd "$dir/input" > /dev/null 2>&1 ; ls -1 | grep -v CVS )`              #  Create an output dir for each OPTFILE/tdir.ex combination
1034                rel_CDIR=$DRESULTS"/"$dir"."$ex
1035                mkdir $rel_CDIR
1036                CDIR=`pwd`"/$rel_CDIR"
1037                test ! -e "$dir/tr_run.$ex" && mkdir "$dir/tr_run.$ex"
1038                for ldir in input.$ex input ; do
1039                    (
1040                        cd "$dir/$ldir" > /dev/null 2>&1
1041                        ls -1 2>/dev/null \
1042                            | sed -e 's|^CVS$||g' | sed -e 's|^output.txt$||g'
1043                    ) > tr_exrun_links
1044                    (
1045                        cd "$dir/tr_run.$ex"
1046                        cat ../../tr_exrun_links | while read i ; do
1047                            if test ! "x$i" = x ; then
1048                                test ! -r $i  &&  ln -s "../"$ldir"/"$i $i
1049                            fi
1050                        done
1051                    )
1052                    test -e tr_exrun_links  &&  rm -f tr_exrun_links
1053                done
1054                ldir=build
1055              (              (
1056                  cd "$dir/tr_run"                  cd $dir/tr_run.$ex
1057                  for i in $links; do                  test ! -e mitgcmuv  &&  ln -s "../"$ldir"/"mitgcmuv .
                     ln -s ../input/$i $i  
                 done  
             )  
             links=`( cd "$dir/input.$ex" > /dev/null 2>&1 ; ls -1 | grep -v CVS )`  
             (  
                 cd "$dir/tr_run"  
                 for i in $links; do  
                     test -e $i  &&  rm -f $i  
                     ln -s ../input.$ex/$i $i  
                 done  
                 ln -s ../$builddir/mitgcmuv mitgcmuv  
1058              )              )
1059              runmodel $dir/tr_run && run=Y \              runmodel $dir/tr_run.$ex && run=Y \
1060                  && results=`testoutput $dir tr_run "."$ex`                  && results=`testoutput $dir tr_run.$ex "."$ex`
1061              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}`
1062              fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`              fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results`
1063              fres="$fres.$ex"              fres="$fres.$ex"
# Line 897  for dir in $TESTDIRS ; do Line 1067  for dir in $TESTDIRS ; do
1067              echo "MACH='$MACH'" >> $CDIR"/summary.txt"              echo "MACH='$MACH'" >> $CDIR"/summary.txt"
1068              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1069              echo "DATE='$DATE'" >> $CDIR"/summary.txt"              echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1070              echo "tdir='$dir'" >> $CDIR"/summary.txt"              echo "tdir='$dir.$ex'" >> $CDIR"/summary.txt"
1071          done          done
         COMMAND=$OLD_COMMAND  
1072      else      else
1073          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}`
1074          fres=$fres"$results   $dir"          fres=$fres"$results   $dir"
# Line 911  for dir in $TESTDIRS ; do Line 1080  for dir in $TESTDIRS ; do
1080          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1081          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1082      fi      fi
1083    
1084        postclean $dir/$builddir
1085            
1086      echo "-------------------------------------------------------------------------------"      echo "-------------------------------------------------------------------------------"
1087            
# Line 929  else Line 1100  else
1100      if test "x$HAVE_MPACK" = xt ; then      if test "x$HAVE_MPACK" = xt ; then
1101          tar -cf $DRESULTS".tar" $DRESULTS > /dev/null 2>&1 \          tar -cf $DRESULTS".tar" $DRESULTS > /dev/null 2>&1 \
1102              && gzip $DRESULTS".tar" \              && gzip $DRESULTS".tar" \
1103              && $MPACK -s MITgcm-test -m 1500000 $DRESULTS".tar.gz" $ADDRESSES              && $MPACK -s MITgcm-test -m 3555000 $DRESULTS".tar.gz" $ADDRESSES
1104          RETVAL=$?          RETVAL=$?
1105          if test "x$RETVAL" != x0 ; then          if test "x$RETVAL" != x0 ; then
1106              echo              echo
# Line 952  fi Line 1123  fi
1123  rm -f tmp_cmpnum.c tmp_cmpnum  rm -f tmp_cmpnum.c tmp_cmpnum
1124    
1125  if test "x$CLEANUP" != xt ; then  if test "x$CLEANUP" != xt ; then
1126      cat $SUMMARY      cat $SUMMARY | sed 's/ -- -- -- --//g'
1127      if test -e tr_out.txt ; then      if test -e tr_out.txt ; then
1128          mv tr_out.txt tr_out.txt.old          mv tr_out.txt tr_out.txt.old
1129      fi      fi
1130      cat $SUMMARY > tr_out.txt      cat $SUMMARY | sed 's/ -- -- -- --//g' > tr_out.txt
1131  fi  fi
1132    
1133  if test "x$DELDIR" = xt ; then  if test "x$DELDIR" = xt ; then

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.75

  ViewVC Help
Powered by ViewVC 1.1.22