/[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.48 by jmc, Wed Nov 17 21:38:35 2004 UTC revision 1.79 by heimbach, Wed Jun 7 01:20:26 2006 UTC
# 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"      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\""
# Line 35  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 89  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 104  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 157  dashnum() Line 181  dashnum()
181    
182  testoutput_ad()  testoutput_ad()
183  {  {
184      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
185      grep $3 $1/$2/output.txt_adm | awk '{print NR " " $5}' > t15.txt      grep $3 $1/$2/output_adm.txt | awk '{print NR " " $5}' > t15.txt
186      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
187      grep $3 $1/$2/output.txt_adm | awk '{print NR " " $6}' > t16.txt      grep $3 $1/$2/output_adm.txt | awk '{print NR " " $6}' > t16.txt
188      join t05.txt t15.txt > t5.txt      join t05.txt t15.txt > t5.txt
189      join t06.txt t16.txt > t6.txt      join t06.txt t16.txt > t6.txt
190      echo "-1" >> t5.txt      echo "-1" >> t5.txt
# Line 171  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 200  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 225  genmakemodel() Line 304  genmakemodel()
304                  command="$command --mods=../code"                  command="$command --mods=../code"
305              else              else
306                  command="$command --mods=../code_ad"                  command="$command --mods=../code_ad"
                 command="$command -adof=../../../tools/adjoint_options/adjoint_staf"  
307              fi              fi
308              if test "x$OPTFILE" != xNONE ; then              if test "x$OPTFILE" != xNONE ; then
309                  command="$command --optfile=$OPTFILE"                  command="$command --optfile=$OPTFILE"
# Line 233  genmakemodel() Line 311  genmakemodel()
311              if test "x$IEEE" != x ; then              if test "x$IEEE" != x ; then
312                  command="$command -ieee"                  command="$command -ieee"
313              fi              fi
314                if test "x$MPI" = xt ; then
315                    command="$command -mpi"
316                fi
317              printf 'genmake ... ' 1>&2              printf 'genmake ... ' 1>&2
318              $command > make.log 2>&1              $command > make.log 2>&1
319              RETVAL=$?              RETVAL=$?
# Line 278  makeclean() Line 359  makeclean()
359      fi      fi
360  }  }
361    
362    postclean()
363    {
364        # postclean directory
365        if test "x$POSTCLEAN" = xt ; then
366            (
367                cd $1;
368                if test -r Makefile ; then
369                    $MAKE CLEAN >> /dev/null 2>&1
370                fi
371                exit 0
372            )
373        fi
374    }
375    
376  makedependmodel()  makedependmodel()
377  {  {
378      # makedependmodel directory      # makedependmodel directory
# Line 389  linkdata() Line 484  linkdata()
484              if test "x$ADM" = x ; then              if test "x$ADM" = x ; then
485                  files=`( cd ../input ; ls -1 | grep -v CVS )`                  files=`( cd ../input ; ls -1 | grep -v CVS )`
486                  for i in $files ; do                  for i in $files ; do
487                      if test ! -d "../input/"$i ; then                      if test ! -d "../input/"$i -a ! -f $i ; then
488                          ln -sf "../input/"$i $i                          ln -sf "../input/"$i $i
489                      fi                      fi
490                  done                  done
# Line 419  runmodel() Line 514  runmodel()
514      #  (where "$COMMAND" is relative to "directory")      #  (where "$COMMAND" is relative to "directory")
515      (      (
516          cd $1          cd $1
517          printf 'runmodel ... ' 1>&2          printf 'runmodel in %s ...' $1 1>&2
518          # make output.txt          # make output.txt
519          echo          echo
520          rm -f run.log          rm -f run.log
521            if test $OUTPUTFILE -ot $EXECUTABLE ; then
522               ( eval $COMMAND ) > run.log 2>&1
523               RETVAL=$?
524            else
525               echo " $OUTPUTFILE is up to date " > run.log 2>&1
526               RETVAL=0
527            fi
528          # echo "COMMAND='$COMMAND'"          # echo "COMMAND='$COMMAND'"
529          # echo "pwd='"`pwd`"'"          # echo "pwd='"`pwd`"'"
         ( eval $COMMAND ) > run.log 2>&1  
         RETVAL=$?  
530          if test "x$RETVAL" = x0 ; then          if test "x$RETVAL" = x0 ; then
531              tail run.log              tail run.log
532              echo successful 1>&2              echo successful 1>&2
# Line 434  runmodel() Line 534  runmodel()
534              # if test "x$ADM" = x ; then              # if test "x$ADM" = x ; then
535              #   cp output.txt $CDIR"/output.txt"              #   cp output.txt $CDIR"/output.txt"
536              # else              # else
537              #   cp output.txt_adm $CDIR"/output.txt_adm"              #   cp output_adm.txt $CDIR"/output_adm.txt"
538              # fi              # fi
539              if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi              if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
540              return 0              return 0
# Line 458  createcodelet() Line 558  createcodelet()
558  #include <math.h>  #include <math.h>
559  int main( int argc, char** argv )  {  int main( int argc, char** argv )  {
560    int linnum,best,lncnt;    int linnum,best,lncnt;
561    double a,b,diff;    double a,b,abave,relerr;
562    best = -16;    best = -22;
563    lncnt = 0;    lncnt = 0;
564    while( 1 & (lncnt+=1) < 999 )  {    while( 1 & (lncnt+=1) < 999 )  {
565      scanf("%d", &linnum);      scanf("%d", &linnum);
566      if (linnum == -1)  break;      if (linnum == -1)  break;
567      scanf("%lf", &a);  scanf("%lf", &b);      scanf("%lf", &a);  scanf("%lf", &b);
568      diff = 0.5*(fabs(a)+fabs(b));      abave = 0.5*(fabs(a)+fabs(b));
569      if (diff > 1.e-12) {      if (abave > 0.0) {
570        diff=fabs(a-b)/diff;        relerr=fabs(a-b)/abave;
571        if (diff > 0.0) {        if (relerr > 0.0) { linnum = (int)rint(log10(relerr)); }
572          linnum = (int)log10(diff);        else { linnum = -16 ; }
573          best = (best > linnum) ? best : linnum;        best = (best > linnum) ? best : linnum;
       }  
       else {  
         if (best == -16 && diff != 0)  best = -22;  
       }  
574      }      }
575    }    }
576    if (lncnt == 999) best=-29;    if (lncnt == 999) best=-29;
# Line 482  int main( int argc, char** argv )  { Line 578  int main( int argc, char** argv )  {
578    return 0;    return 0;
579  }  }
580  EOF  EOF
581      cc -o tmp_cmpnum tmp_cmpnum.c -lm      $CC -o tmp_cmpnum tmp_cmpnum.c -lm
582    
583      if [ -x ./tmp_cmpnum ]; then      if [ -x ./tmp_cmpnum ]; then
584          echo "OK"          echo "OK"
585          return 0          return 0
586      else      else
587          echo          echo
588          echo "ERROR: failed to compile comparison code"          echo "ERROR: failed to compile comparison code -- please specify"
589            echo "  a C compiler using the CC environment variable."
590          exit 1          exit 1
591      fi      fi
592  }  }
# Line 569  QUICK=f Line 666  QUICK=f
666  NOGENMAKE=f  NOGENMAKE=f
667  NOCLEAN=f  NOCLEAN=f
668  NODEPEND=f  NODEPEND=f
669    POSTCLEAN=f
670    
671  BASH=  BASH=
672  OPTFILE=NONE  OPTFILE=NONE
# Line 578  MPACKDIR="../tools/mpack-1.6" Line 676  MPACKDIR="../tools/mpack-1.6"
676  HAVE_MPACK=  HAVE_MPACK=
677  MPACK="$MPACKDIR/mpack"  MPACK="$MPACKDIR/mpack"
678  COMMAND=  COMMAND=
679  MAKE=make  if test "x$MAKE" = x ; then
680        MAKE=make
681    fi
682    if test "x$CC" = x ; then
683        CC=cc
684    fi
685  JOBS=  JOBS=
686  MPI=f  MPI=f
687    OUTDIR=
688  DELDIR=  DELDIR=
689    
690  ADM=  ADM=
691    
692    # Additional monitor types
693    PTRACERS_NUM="1 2 3 4 5"
694    
695  printf "parsing options...  "  printf "parsing options...  "
696    
697  ac_prev=  ac_prev=
# Line 634  for ac_option ; do Line 741  for ac_option ; do
741          -make=* | --make=*)          -make=* | --make=*)
742              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
743    
744            -odir | --odir)
745                ac_prev=OUTDIR ;;
746            -odir=* | --odir=*)
747                OUTDIR=$ac_optarg ;;
748    
749            -ptracers | --ptracers | -ptr | --ptr)
750                ac_prev=PTRACERS_NUM ;;
751            -ptracers=* | --ptracers=* | -ptr=* | --ptr=*)
752                PTRACERS_NUM=$ac_optarg ;;
753    
754          -j) ac_prev=JOBS ;;          -j) ac_prev=JOBS ;;
755          -j=*) JOBS=$ac_optarg ;;          -j=*) JOBS=$ac_optarg ;;
756    
757          -clean | --clean)          -clean | --clean)
758              CLEANUP=t ;;              CLEANUP=t ; DELDIR=t ;;
759    
760          -quick | --quick | -q | --q)          -quick | --quick | -q | --q)
761              QUICK=t ;;              QUICK=t ;;
# Line 649  for ac_option ; do Line 766  for ac_option ; do
766          -nodepend | --nodepend | -nd | --nd)          -nodepend | --nodepend | -nd | --nd)
767              NODEPEND=t ;;              NODEPEND=t ;;
768    
769            -postclean | --postclean | -pc | --pc)
770                POSTCLEAN=t ;;
771    
772          -mpi) MPI=t ;;          -mpi) MPI=t ;;
773    
774          -adm | -ad) ADM=t ;;          -adm | -ad) ADM=t ;;
# Line 690  if test "x$OPTFILE" = xNONE -a "x$MITGCM Line 810  if test "x$OPTFILE" = xNONE -a "x$MITGCM
810      OPTFILE=$MITGCM_OF      OPTFILE=$MITGCM_OF
811  fi  fi
812    
813    if test "x$ADM" = xt ; then
814        EXECUTABLE="mitgcmuv_ad"
815        OUTPUTFILE="output_adm.txt"
816    else
817        EXECUTABLE="mitgcmuv"
818        OUTPUTFILE="output.txt"
819    fi
820    
821  if test "x$ADM" = xt -a "x$COMMAND" = x ; then  if test "x$ADM" = xt -a "x$COMMAND" = x ; then
822      COMMAND="./mitgcmuv_ad > output.txt_adm 2>&1"      COMMAND="./$EXECUTABLE > $OUTPUTFILE"
823  fi  fi
824    
825  if test "x$COMMAND" = x ; then  if test "x$COMMAND" = x ; then
826      COMMAND="$MAKE output.txt"      COMMAND="./$EXECUTABLE > $OUTPUTFILE"
827  fi  fi
828    
829  echo "OK"  #echo "OK"
830    echo "OK (COMMAND= $COMMAND )"
831    
832  #  create the FORTRAN comparison code  #  create the FORTRAN comparison code
833  createcodelet  createcodelet
# Line 715  MACH=`hostname` Line 844  MACH=`hostname`
844  UNAMEA=`uname -a`  UNAMEA=`uname -a`
845  DATE=`date +%Y%m%d`  DATE=`date +%Y%m%d`
846  BASE="tr_"$MACH"_"$DATE"_"  BASE="tr_"$MACH"_"$DATE"_"
847    if test "x$OUTDIR" != x ; then
848        BASE="tr_"$OUTDIR"_"$DATE"_"
849    fi
850  DNUM=0  DNUM=0
851  DRESULTS="$BASE$DNUM"  DRESULTS="$BASE$DNUM"
852  while test -e $DRESULTS ; do  while test -e $DRESULTS ; do
# Line 760  fi Line 892  fi
892  echo  echo
893  echo >> $SUMMARY  echo >> $SUMMARY
894  if test "x$ADM" = x ; then  if test "x$ADM" = x ; then
895      cat << EOF | tee -a $SUMMARY      line_0="            ----T-----  ----S-----  ----U-----  ----V-----"
896                  T           S           U           V      line_1="G D M    c        m  s        m  s        m  s        m  s"
897  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  ."
898  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"
899  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  ."
900  2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .      for ii in $PTRACERS_NUM ; do
901            #  tst=`eval 'echo $HAVE_PTR0'$ii`
902  EOF          #  if test "x$tst" = xt ; then
903            line_0="$line_0  --PTR 0"$ii"--"
904            line_1="$line_1        m  s"
905            line_2="$line_2  m  m  e  ."
906            line_3="$line_3  i  a  a  d"
907            line_4="$line_4  n  x  n  ."
908            #  fi
909        done
910        echo "$line_0" | tee -a $SUMMARY
911        echo "$line_1" | tee -a $SUMMARY
912        echo "$line_2" | tee -a $SUMMARY
913        echo "$line_3" | tee -a $SUMMARY
914        echo "$line_4" | tee -a $SUMMARY
915        echo " "       | tee -a $SUMMARY
916  else  else
917      echo "ADJOINT=true" >> $SUMMARY      echo "ADJOINT=true" >> $SUMMARY
918      echo >> $SUMMARY      echo >> $SUMMARY
# Line 791  for dir in $TESTDIRS ; do Line 936  for dir in $TESTDIRS ; do
936          if test -r $dir/input/Makefile ; then          if test -r $dir/input/Makefile ; then
937              ( cd $dir/input ; make CLEAN )              ( cd $dir/input ; make CLEAN )
938          fi          fi
939            (
940                cd $dir
941                rm -rf tr_run.*
942            )
943          continue          continue
944      fi      fi
945    
# Line 800  for dir in $TESTDIRS ; do Line 949  for dir in $TESTDIRS ; do
949      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
950          fout=$dir"/results/output.txt"          fout=$dir"/results/output.txt"
951      else      else
952          fout=$dir"/results_ad/output.txt_adm"          fout=$dir"/results_ad/output_adm.txt"
953      fi      fi
954      if test ! -r $fout ; then      if test ! -r $fout ; then
955          echo "can't read \"$fout\" -- skipping $dir"          echo "can't read \"$fout\" -- skipping $dir"
956          continue          continue
957      fi      fi
958        if test "x$ADM" = x ; then
959            check_for_add_mon_output  $fout
960        fi
961    
962        # Check for additional types of monitor output
963    
964      builddir="input"      builddir="input"
965      rundir="input"      rundir="input"
# Line 850  for dir in $TESTDIRS ; do Line 1004  for dir in $TESTDIRS ; do
1004      echo "Experiment:  $dir"      echo "Experiment:  $dir"
1005      echo      echo
1006      unset genmake makedepend make run      unset genmake makedepend make run
1007      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1008    
1009      #  Create an output dir for each OPTFILE/tdir combination      #  Create an output dir for each OPTFILE/tdir combination
1010      rel_CDIR=$DRESULTS"/"$dir      rel_CDIR=$DRESULTS"/"$dir
# Line 881  for dir in $TESTDIRS ; do Line 1035  for dir in $TESTDIRS ; do
1035          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1036          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1037    
         OLD_COMMAND=$COMMAND  
         COMMAND="./mitgcmuv > output.txt"  
1038          for ex in $extra_runs ; do          for ex in $extra_runs ; do
1039              test -e "$dir/tr_run.$ex" && rm -rf "$dir/tr_run.$ex"              unset run
1040              mkdir "$dir/tr_run.$ex"              results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
1041              links=`( cd "$dir/input" > /dev/null 2>&1 ; ls -1 | grep -v CVS )`              #  Create an output dir for each OPTFILE/tdir.ex combination
1042                rel_CDIR=$DRESULTS"/"$dir"."$ex
1043                mkdir $rel_CDIR
1044                CDIR=`pwd`"/$rel_CDIR"
1045                test ! -e "$dir/tr_run.$ex" && mkdir "$dir/tr_run.$ex"
1046                for ldir in input.$ex input ; do
1047                    (
1048                        cd "$dir/$ldir" > /dev/null 2>&1
1049                        ls -1 2>/dev/null \
1050                            | sed -e 's|^CVS$||g' | sed -e 's|^output.txt$||g'
1051                    ) > tr_exrun_links
1052                    (
1053                        cd "$dir/tr_run.$ex"
1054                        cat ../../tr_exrun_links | while read i ; do
1055                            if test ! "x$i" = x ; then
1056                                test ! -r $i  &&  ln -s "../"$ldir"/"$i $i
1057                            fi
1058                        done
1059                    )
1060                    test -e tr_exrun_links  &&  rm -f tr_exrun_links
1061                done
1062                ldir=build
1063              (              (
1064                  cd "$dir/tr_run.$ex"                  cd $dir/tr_run.$ex
1065                  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.$ex"  
                 for i in $links; do  
                     test -e $i  &&  rm -f $i  
                     ln -s ../input.$ex/$i $i  
                 done  
                 ln -s ../$builddir/mitgcmuv mitgcmuv  
1066              )              )
1067              runmodel $dir/tr_run.$ex && run=Y \              runmodel $dir/tr_run.$ex && run=Y \
1068                  && results=`testoutput $dir tr_run.$ex "."$ex`                  && results=`testoutput $dir tr_run.$ex "."$ex`
# Line 913  for dir in $TESTDIRS ; do Line 1075  for dir in $TESTDIRS ; do
1075              echo "MACH='$MACH'" >> $CDIR"/summary.txt"              echo "MACH='$MACH'" >> $CDIR"/summary.txt"
1076              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"              echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1077              echo "DATE='$DATE'" >> $CDIR"/summary.txt"              echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1078              echo "tdir='$dir'" >> $CDIR"/summary.txt"              echo "tdir='$dir.$ex'" >> $CDIR"/summary.txt"
1079          done          done
         COMMAND=$OLD_COMMAND  
1080      else      else
1081          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}`
1082          fres=$fres"$results   $dir"          fres=$fres"$results   $dir"
# Line 926  for dir in $TESTDIRS ; do Line 1087  for dir in $TESTDIRS ; do
1087          echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"          echo "UNAMEA='$UNAMEA'" >> $CDIR"/summary.txt"
1088          echo "DATE='$DATE'" >> $CDIR"/summary.txt"          echo "DATE='$DATE'" >> $CDIR"/summary.txt"
1089          echo "tdir='$dir'" >> $CDIR"/summary.txt"          echo "tdir='$dir'" >> $CDIR"/summary.txt"
1090            grep -A3 'Seconds in section "ALL' $dir/$rundir/$OUTPUTFILE \
1091                               >> $CDIR"/summary.txt"
1092      fi      fi
1093    
1094        postclean $dir/$builddir
1095            
1096      echo "-------------------------------------------------------------------------------"      echo "-------------------------------------------------------------------------------"
1097            
# Line 968  fi Line 1133  fi
1133  rm -f tmp_cmpnum.c tmp_cmpnum  rm -f tmp_cmpnum.c tmp_cmpnum
1134    
1135  if test "x$CLEANUP" != xt ; then  if test "x$CLEANUP" != xt ; then
1136      cat $SUMMARY      cat $SUMMARY | sed 's/ -- -- -- --//g'
1137      if test -e tr_out.txt ; then      if test -e tr_out.txt ; then
1138          mv tr_out.txt tr_out.txt.old          mv tr_out.txt tr_out.txt.old
1139      fi      fi
1140      cat $SUMMARY > tr_out.txt      cat $SUMMARY | sed 's/ -- -- -- --//g' > tr_out.txt
1141  fi  fi
1142    
1143  if test "x$DELDIR" = xt ; then  if test "x$DELDIR" = xt ; then

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.79

  ViewVC Help
Powered by ViewVC 1.1.22