/[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.45 by edhill, Sat Jul 17 02:08:45 2004 UTC revision 1.52 by edhill, Wed Dec 1 16:59:42 2004 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 "  (-ptracers|-ptr) STRING  specify which ptracers to test"
31        echo "                             (DEF=\"1 2 3 4 5\")"
32      echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"      echo "  (-j) JOBS                use \"make -j JOBS\" for parallel builds"
33      echo "  (-clean)                 *ONLY* run \"make CLEAN\""      echo "  (-clean)                 *ONLY* run \"make CLEAN\""
34      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""      echo "  (-quick|-q)              same as \"-nogenmake -noclean -nodepend\""
# Line 35  usage() Line 37  usage()
37      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"      echo "  (-nodepend|-nd)          skip the \"make depend\" stage"
38      echo "  (-deldir|-dd)            on success, delete the output directory"      echo "  (-deldir|-dd)            on success, delete the output directory"
39      echo      echo
40      echo "and where STRING follows a whitespace-delimited format"      echo "and where STRING can be a whitespace-delimited list"
41      echo "such as:"      echo "such as:"
42        echo
43      echo "  -t 'exp0 exp2 exp3' "      echo "  -t 'exp0 exp2 exp3' "
44      echo "  -addr='abc@123.com testing@home.org'"      echo "  -addr='abc@123.com testing@home.org'"
45      echo      echo
46        echo "provided that the expression is properly quoted within the current"
47        echo "shell (note the use of single quotes to protect white space)."
48        echo
49      exit 1      exit 1
50  }  }
51    
# Line 171  testoutput_ad() Line 177  testoutput_ad()
177      rm -f t[01][56].txt t[56].txt      rm -f t[01][56].txt t[56].txt
178  }  }
179    
180    check_for_add_mon_output()
181    {
182        # Check for additional types of monitor output
183        if test "x$1" = x ; then
184            return
185        fi
186    
187        for ii in $PTRACERS_NUM ; do
188            eval "HAVE_PTR0"$ii"=f"
189        done
190    
191        ptr_add="trcstat_ptracerXX_min trcstat_ptracerXX_max"
192        ptr_add="$ptr_add trcstat_ptracerXX_mean trcstat_ptracerXX_sd"
193        for ii in $PTRACERS_NUM ; do
194            for jj in $ptr_add ; do
195                name=`eval "echo $jj | sed -e 's|XX|0"$ii"|g'"`
196                tst=`grep $name $1 | wc -l | awk '{print $1}'`
197                if test ! "x$tst" = x0 ; then
198                    eval "HAVE_PTR0"$ii"=t"
199                fi
200            done
201            #  eval 'echo "HAVE_PTR0'$ii' = $HAVE_PTR0'$ii'"'
202        done
203    }
204    
205  testoutput()  testoutput()
206  {  {
207      # testoutput directory subdir extension      # testoutput directory subdir extension
# Line 200  testoutput() Line 231  testoutput()
231          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?          testoutput_for_prop $1 "dynstat_vvel_max" "V maximum" $2 $3; vmax=$?
232          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?          testoutput_for_prop $1 "dynstat_vvel_mean" "V mean" $2 $3; vmean=$?
233          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2 $3; vsd=$?          testoutput_for_prop $1 "dynstat_vvel_sd" "V s.d." $2 $3; vsd=$?
234          dashnum $cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd \  
235              $umin $umax $umean $usd $vmin $vmax $vmean $vsd          #  This is for PTRACERS
236            for ii in $PTRACERS_NUM ; do
237                eval `echo "p0"$ii"_min=99"`
238                eval `echo "p0"$ii"_max=99"`
239                eval `echo "p0"$ii"_mean=99"`
240                eval `echo "p0"$ii"_sd=99"`
241                tst=`eval 'echo "$HAVE_PTR0'$ii'"'`
242                #echo 'tst = '$tst
243                if test "x$tst" = xt ; then
244                    a="trcstat_ptracer0"
245                    testoutput_for_prop $1 "$a"$ii"_min"  "p0"$ii"_min"  $2 $3
246                    RETVAL=$? ; eval `echo "p0"$ii"_min="$RETVAL`
247                    testoutput_for_prop $1 "$a"$ii"_max"  "p0"$ii"_max"  $2 $3
248                    RETVAL=$? ; eval `echo "p0"$ii"_max="$RETVAL`
249                    testoutput_for_prop $1 "$a"$ii"_mean" "p0"$ii"_mean" $2 $3
250                    RETVAL=$? ; eval `echo "p0"$ii"_mean="$RETVAL`
251                    testoutput_for_prop $1 "$a"$ii"_sd"   "p0"$ii"_sd"   $2 $3
252                    RETVAL=$? ; eval `echo "p0"$ii"_sd="$RETVAL`
253                fi
254            done
255    
256            allargs="$cg2dres $tmin $tmax $tmean $tsd $smin $smax $smean $ssd"
257            allargs="$allargs $umin $umax $umean $usd $vmin $vmax $vmean $vsd"
258            allargs="$allargs $p01_min $p01_max $p01_mean $p01_sd"
259            allargs="$allargs $p02_min $p02_max $p02_mean $p02_sd"
260            allargs="$allargs $p03_min $p03_max $p03_mean $p03_sd"
261            allargs="$allargs $p04_min $p04_max $p04_mean $p04_sd"
262            allargs="$allargs $p05_min $p05_max $p05_mean $p05_sd"
263    
264            eval "dashnum $allargs"
265    
266      else      else
267          testoutput_ad $1 $2 "precision_grdchk_result"          testoutput_ad $1 $2 "precision_grdchk_result"
268      fi      fi
# Line 237  genmakemodel() Line 298  genmakemodel()
298              $command > make.log 2>&1              $command > make.log 2>&1
299              RETVAL=$?              RETVAL=$?
300              #  Reduce the size of the testing emails!              #  Reduce the size of the testing emails!
301              #  cp Makefile $CDIR              head -100 Makefile > $CDIR/Makefile_head
302              if test "x$RETVAL" != x0 ; then              if test "x$RETVAL" != x0 ; then
303                  tail make.log                  tail make.log
304                  echo "genmakemodel: genmake failed" 1>&2                  echo "genmakemodel: genmake failed" 1>&2
# Line 422  runmodel() Line 483  runmodel()
483          printf 'runmodel ... ' 1>&2          printf 'runmodel ... ' 1>&2
484          # make output.txt          # make output.txt
485          echo          echo
486            rm -f run.log
487          # echo "COMMAND='$COMMAND'"          # echo "COMMAND='$COMMAND'"
488          # echo "pwd='"`pwd`"'"          # echo "pwd='"`pwd`"'"
489          ( eval $COMMAND ) >> run.log 2>&1          ( eval $COMMAND ) > run.log 2>&1
490          RETVAL=$?          RETVAL=$?
491          if test "x$RETVAL" = x0 ; then          if test "x$RETVAL" = x0 ; then
492                tail run.log
493              echo successful 1>&2              echo successful 1>&2
494              # === Reduce the size of the testing emails!              # === Reduce the size of the testing emails!
495              # if test "x$ADM" = x ; then              # if test "x$ADM" = x ; then
# Line 434  runmodel() Line 497  runmodel()
497              # else              # else
498              #   cp output.txt_adm $CDIR"/output.txt_adm"              #   cp output.txt_adm $CDIR"/output.txt_adm"
499              # fi              # fi
500                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
501              return 0              return 0
502          else          else
503              tail run.log              tail run.log
504              echo failed 1>&2              echo failed 1>&2
505              cp run.log $CDIR"/run.log"              cp run.log $CDIR"/run.log"
506                if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi
507              return 1              return 1
508          fi          fi
509      )      )
# Line 454  createcodelet() Line 519  createcodelet()
519  #include <math.h>  #include <math.h>
520  int main( int argc, char** argv )  {  int main( int argc, char** argv )  {
521    int linnum,best,lncnt;    int linnum,best,lncnt;
522    double a,b,diff;    double a,b,abave,relerr;
523    best = -16;    best = -16;
524    lncnt = 0;    lncnt = 0;
525    while( 1 & (lncnt+=1) < 999 )  {    while( 1 & (lncnt+=1) < 999 )  {
526      scanf("%d", &linnum);      scanf("%d", &linnum);
527      if (linnum == -1)  break;      if (linnum == -1)  break;
528      scanf("%lf", &a);  scanf("%lf", &b);      scanf("%lf", &a);  scanf("%lf", &b);
529      diff = 0.5*(fabs(a)+fabs(b));      abave = 0.5*(fabs(a)+fabs(b));
530      if (diff > 1.e-12) {      if (abave > 0.0) {
531        diff=fabs(a-b)/diff;        relerr=fabs(a-b)/abave;
532        if (diff > 0.0) {        if (relerr > 0.0) {
533          linnum = (int)log10(diff);          linnum = (int)log10(relerr);
534          best = (best > linnum) ? best : linnum;          best = (best > linnum) ? best : linnum;
535        }        }
536        else {      }
537          if (best == -16 && diff != 0)  best = -22;      else {
538        }        if (best == -16 && abave != 0)  best = -22;
539      }      }
540    }    }
541    if (lncnt == 999) best=-29;    if (lncnt == 999) best=-29;
# Line 581  DELDIR= Line 646  DELDIR=
646    
647  ADM=  ADM=
648    
649    # Additional monitor types
650    PTRACERS_NUM="1 2 3 4 5"
651    
652  printf "parsing options...  "  printf "parsing options...  "
653    
654  ac_prev=  ac_prev=
# Line 630  for ac_option ; do Line 698  for ac_option ; do
698          -make=* | --make=*)          -make=* | --make=*)
699              MAKE=$ac_optarg ;;              MAKE=$ac_optarg ;;
700    
701            -ptracers | --ptracers | -ptr | --ptr)
702                ac_prev=PTRACERS_NUM ;;
703            -ptracers=* | --ptracers=* | -ptr=* | --ptr=*)
704                PTRACERS_NUM=$ac_optarg ;;
705    
706          -j) ac_prev=JOBS ;;          -j) ac_prev=JOBS ;;
707          -j=*) JOBS=$ac_optarg ;;          -j=*) JOBS=$ac_optarg ;;
708    
# Line 756  fi Line 829  fi
829  echo  echo
830  echo >> $SUMMARY  echo >> $SUMMARY
831  if test "x$ADM" = x ; then  if test "x$ADM" = x ; then
832      cat << EOF | tee -a $SUMMARY      line_0="            ----T-----  ----S-----  ----U-----  ----V-----"
833                  T           S           U           V      line_1="G D M    c        m  s        m  s        m  s        m  s"
834  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  ."
835  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"
836  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  ."
837  2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .      for ii in $PTRACERS_NUM ; do
838            #  tst=`eval 'echo $HAVE_PTR0'$ii`
839  EOF          #  if test "x$tst" = xt ; then
840            line_0="$line_0  --PTR 0"$ii"--"
841            line_1="$line_1        m  s"
842            line_2="$line_2  m  m  e  ."
843            line_3="$line_3  i  a  a  d"
844            line_4="$line_4  n  x  n  ."
845            #  fi
846        done
847        echo "$line_0" | tee -a $SUMMARY
848        echo "$line_1" | tee -a $SUMMARY
849        echo "$line_2" | tee -a $SUMMARY
850        echo "$line_3" | tee -a $SUMMARY
851        echo "$line_4" | tee -a $SUMMARY
852        echo " "       | tee -a $SUMMARY
853  else  else
854      echo "ADJOINT=true" >> $SUMMARY      echo "ADJOINT=true" >> $SUMMARY
855      echo >> $SUMMARY      echo >> $SUMMARY
# Line 795  for dir in $TESTDIRS ; do Line 881  for dir in $TESTDIRS ; do
881      fout=      fout=
882      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
883          fout=$dir"/results/output.txt"          fout=$dir"/results/output.txt"
884            check_for_add_mon_output  $fout
885      else      else
886          fout=$dir"/results_ad/output.txt_adm"          fout=$dir"/results_ad/output.txt_adm"
887      fi      fi
# Line 803  for dir in $TESTDIRS ; do Line 890  for dir in $TESTDIRS ; do
890          continue          continue
891      fi      fi
892    
893        # Check for additional types of monitor output
894    
895      builddir="input"      builddir="input"
896      rundir="input"      rundir="input"
897      use_seperate_build=0      use_seperate_build=0

Legend:
Removed from v.1.45  
changed lines
  Added in v.1.52

  ViewVC Help
Powered by ViewVC 1.1.22