/[MITgcm]/MITgcm/verification/testscript
ViewVC logotype

Diff of /MITgcm/verification/testscript

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

revision 1.14 by adcroft, Wed Aug 15 17:17:01 2001 UTC revision 1.21 by adcroft, Mon Mar 4 16:48:08 2002 UTC
# Line 138  genmakemodel() Line 138  genmakemodel()
138   )   )
139  }  }
140    
141  makeclean()  makecleancompile()
142  {  {
143  # makedependmodel directory  # makecleancompile directory
144     ( cd $1;
145       if [ $force -gt 0 ]; then
146        rm -f output.txt
147        printf 'make clean ... ' 2>&1
148        make CLEAN >> make.log 2>&1
149        if [ $? -ne 0 ]; then
150          tail make.log
151          echo makecleancompile: make clean failed 1>&2
152          return 1
153        else
154          echo succesful 1>&2
155        fi
156       fi
157     )
158    }
159    
160    makecleanupafter()
161    {
162    # makeupafter directory
163   ( cd $1;   ( cd $1;
164     if [ $clean -gt 0 ]; then     if [ $clean -gt 0 ]; then
165        rm -f output.txt
166      printf 'make clean ... ' 2>&1      printf 'make clean ... ' 2>&1
167      make CLEAN >> make.log 2>&1      make CLEAN >> make.log 2>&1
168      if [ $? -ne 0 ]; then      if [ $? -ne 0 ]; then
169        tail make.log        tail make.log
170        echo makeclean: make clean failed 1>&2        echo makeupafter: make clean failed 1>&2
171        return 1        return 1
172      else      else
173        echo succesful 1>&2        echo succesful 1>&2
# Line 201  runmodel() Line 221  runmodel()
221    
222   ( cd $1   ( cd $1
223     if [ -x $2 ]; then     if [ -x $2 ]; then
224      if [ ! -r output.txt -o $quick -eq 0 ]; then      if [ $quick -eq 0 ]; then
225       echo runmodel: running... 1>&2       rm -f output.txt
      ( ./$2 > output.txt 2>&1 ) && return 0  
      return 1  
     else  
      echo runmodel: output.txt is newer than executable 1>&2  
      return 0  
226      fi      fi
227     else      printf 'runmodel: ' 1>&2
228      echo runmodel: executable \"$1/$2\" is missing 1>&2      make output.txt && return 0
229      return 1  #   if [ ! -r output.txt -o $quick -eq 0 ]; then
230    #    echo runmodel: running... 1>&2
231    #    ( ./$2 > output.txt 2>&1 ) && return 0
232    #    rm -f output.txt
233    #    ( make output.txt ) && return 0
234    #    return 1
235    #   else
236    #    echo runmodel: output.txt is newer than executable 1>&2
237    #    ( make output.txt ) && return 0
238    #    return 0
239    #   fi
240    #  else
241    #   echo runmodel: executable \"$1/$2\" is missing 1>&2
242    #   return 1
243     fi     fi
244   )   )
245  }  }
# Line 284  $0 [-help] [-quick] [-verbose] dir1 [dir Line 312  $0 [-help] [-quick] [-verbose] dir1 [dir
312   -quiet     Reduce the amount of output   -quiet     Reduce the amount of output
313   -verbose   Produce copious amounts of output   -verbose   Produce copious amounts of output
314   -debug     Produce even more output which will mean nothing to most   -debug     Produce even more output which will mean nothing to most
315   -clean     Do "make CLEAN" before compiling. This forces a complete rebuild.   -force     Do "make CLEAN" before compiling. This forces a complete rebuild.
316   -longtest  Compare numeric output for mean and s.d. of variables.   -clean     Do "make CLEAN" after compiling and testing.
317     -shorttest Don't compare numeric output for mean and s.d. of variables.
318   -noieee    By default, $0 uses the -ieee option for genmake. This turns it off.   -noieee    By default, $0 uses the -ieee option for genmake. This turns it off.
319     -cleanup   Aggresively removes all model output, executables and object files
320                and then exits. Use with care.
321    
322  Normal usage:  Normal usage:
323   $0 *       Configure, compile, run and analyze in all experiment directories   $0 *       Configure, compile, run and analyze in all experiment directories
# Line 305  else Line 336  else
336  fi  fi
337  }  }
338    
339    clean_up()
340    {
341    # Find all executables, object files, CPP'd source and model output
342    # and DELETE it.
343    for opt in '-name mitgcmuv*' '-name *.o' '-name *.f' '-name *.c' '-path *results -prune -o -name *.meta' '-path *results -prune -o -name *.data' '-type l'
344     do
345       echo Cleaning: find . $opt -exec rm {} \;
346       find . $opt -exec rm {} \;
347    done
348    }
349    
350  ###############################################################################  ###############################################################################
351    
352  # Main function  # Main function
# Line 313  fi Line 355  fi
355  debug=0  debug=0
356  verbose=1  verbose=1
357  quick=0  quick=0
358    force=0
359  clean=0  clean=0
360  ieee=1  ieee=1
361  longtest=0  longtest=1
362  expts=''  expts=''
363    
364  # Process arguments  # Process arguments
365  for arg in $@  for arg in $@
366  do  do
367   case $arg in   case $arg in
368       -cleanup) clean_up; exit 0;;
369     -quick) quick=1;;     -quick) quick=1;;
370     -verbose) verbose=2;;     -verbose) verbose=2;;
371     -debug) debug=1;;     -debug) debug=1;;
372       -force) force=1;;
373     -clean) clean=1;;     -clean) clean=1;;
374     -noieee) ieee=0;;     -noieee) ieee=0;;
375     -longtest) longtest=1;;     -shorttest) longtest=0;;
376     -quiet) verbose=0;;     -quiet) verbose=0;;
377     -help) show_help; exit 0;;     -help) show_help; exit 0;;
378     -*) echo Unrecognized option:$arg; exit 9;;     -*) echo Unrecognized option:$arg; exit 9;;
# Line 335  do Line 380  do
380   esac   esac
381  done  done
382    
383    if [ $force -gt 0 -a $quick -gt 0 ]; then
384     echo You specified -quick and -force together which conflict.
385     echo Please specify either -quick or -force or neither but not both.
386     exit 1
387    fi
388    
389  #if [ ${#expts} -eq 0 ]; then  #if [ ${#expts} -eq 0 ]; then
390  # echo Scanning all directories  # echo Scanning all directories
391  # for arg in *  # for arg in *
# Line 381  do Line 432  do
432    results='-- -- -- -- -- -- -- -- --'    results='-- -- -- -- -- -- -- -- --'
433   fi   fi
434   genmakemodel $dir/input && genmake=Y \   genmakemodel $dir/input && genmake=Y \
435   && makeclean $dir/input \   && makecleancompile $dir/input \
436   && makedependmodel $dir/input && makedepend=Y \   && makedependmodel $dir/input && makedepend=Y \
437   && makemodel $dir/input && make=Y \   && makemodel $dir/input && make=Y \
438   && runmodel $dir/input mitgcmuv && run=Y \   && runmodel $dir/input mitgcmuv && run=Y \
439   && results=`testoutput $dir`   && results=`testoutput $dir` \
440     && makecleanupafter $dir/input
441   echo   echo
442   formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results   formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results
443   echo   echo

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22