/[MITgcm]/MITgcm/tools/example_scripts/csail/test_baudelaire
ViewVC logotype

Diff of /MITgcm/tools/example_scripts/csail/test_baudelaire

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

revision 1.8 by jmc, Thu Jan 27 01:30:28 2011 UTC revision 1.25 by jmc, Tue May 10 14:41:00 2016 UTC
# Line 2  Line 2 
2    
3  # $Header$  # $Header$
4    
5  #  Test script for MITgcm that should work on most of the csail.mit.edu  #  Test script for MITgcm that should work on most of the csail.mit.edu Linux machines.
6  #  Linux machines.  
7    tst_grp=0 ; if test $# = 1 ; then tst_grp=$1 ; fi
8    if test $tst_grp != 'a' -a $tst_grp != 'b' ; then
9      echo "missing or invalid argument (expect: 'a' or 'b') ==> exit"
10      exit 1
11    fi
12    
13  # defaults  # defaults
14  #export PATH="$PATH:/usr/local/bin"  #export PATH="$PATH:/usr/local/bin"
# Line 25  ulimit -s unlimited Line 30  ulimit -s unlimited
30  cmdCVS='cvs -d :pserver:cvsanon@mitgcm.org:/u/gcmpack'  cmdCVS='cvs -d :pserver:cvsanon@mitgcm.org:/u/gcmpack'
31  cmdCVS='cvs -d /u/gcmpack'  cmdCVS='cvs -d /u/gcmpack'
32    
33  TESTDIR="/scratch/jmc/test_"`hostname -s`  # checkOut=2 : download new code ;
34    #   =3 : skip download but, if sepDir, use a new copy
35    #   =1 : update code       (if no existing code -> swith to 2)
36    #   =0 : use existing code (if no existing code -> swith to 2)
37    dInWeek=`date +%a`
38    outDir=`hostname -s`
39    TESTDIR="/scratch/jmc/test_${outDir}"
40    outDir="${outDir}-${tst_grp}"
41  MC=13  MC=13
 checkOut=1  
42  sepDir=1  sepDir=1
43  option=  option=
44  tst_list='g7a adm mpa g77 gfo+rs mth mp2+rs mpi ifc'  #tst_list='g7a adm mpa g77 gfo+rs mth mp2+rs mpi ifc'
45  #tst_list='g77 adm gfo ifc mth pgi+rs'  #if test "x$dInWeek" = xSun ; then tst_list="$tst_list tlm oad" ; fi
46  #tst_list='g77 gfo+rs mth'  if test $tst_grp = 'a' ; then
47     checkOut=2
48     tst_list='g7a mpa mth mp2+rs mpi oad'
49    else
50     checkOut=3
51     tst_list='adm g77 gfo+rs ifc'
52     if test "x$dInWeek" = xSun ; then tst_list="$tst_list tlm" ; fi
53    fi
54    echo " test: $outDir ; list='$tst_list'"
55    
56  #option="-nc" ; checkOut=0  #option="-nc" ; checkOut=1
57  #option="-q"  ; checkOut=0  #option="-q"  ; checkOut=1
58    
59  TODAY=`date +%d`  TODAY=`date +%d`
60  tdir=$TESTDIR  tdir=$TESTDIR
61  if test $checkOut = '0' ; then  if test $checkOut != 2 ; then
62    if test -e $tdir/MITgcm/CVS ; then    if test -e $tdir/MITgcm/CVS ; then
63      echo $tdir/MITgcm/CVS 'exist'      echo $tdir/MITgcm/CVS 'exist'
64      echo -n "Update the MITgcm code using: $cmdCVS ..."      if test $sepDir = 0 -a $checkOut = 1 ; then
65      cd $tdir/MITgcm        echo -n "Update the MITgcm code using: $cmdCVS ..."
66      if test $sepDir = 1 ; then        cd $tdir/MITgcm
       $cmdCVS update -P -d > /dev/null  
     else  
67        $cmdCVS update -P -d        $cmdCVS update -P -d
68          echo "  done"
69      fi      fi
     echo "  done"  
70    else    else
71      echo -n $tdir/MITgcm 'missing ; '      echo -n $tdir/MITgcm 'missing ; '
72      checkOut=1      checkOut=2
73    fi    fi
74  fi  fi
75  if test $checkOut = '1' ; then  if test $checkOut = 2 ; then
76    if test -e $tdir ; then    if test -e $tdir ; then
77      echo -n "Removing working copy: $tdir/MITgcm ..."      echo -n "Removing working copy: $tdir/MITgcm ..."
78      test -e $tdir/MITgcm  &&  rm -rf $tdir/MITgcm      test -e $tdir/MITgcm  &&  rm -rf $tdir/MITgcm
# Line 81  do Line 98  do
98    
99    echo "================================================================"    echo "================================================================"
100    typ=`echo $tt | sed 's/+rs//'`    typ=`echo $tt | sed 's/+rs//'`
101      #- define list of additional experiences to test:
102      addExp=''
103      if test $typ = 'mp2' -o $typ = 'ifc' ; then
104        addExp="offline_cheapaml atm_gray"
105      fi
106      if test $typ = 'gfo' ; then
107        addExp="$addExp shelfice_remeshing"
108      fi
109    #- check day and time:    #- check day and time:
110    curDay=`date +%d` ; curHour=`date +%H`    curDay=`date +%d` ; curHour=`date +%H`
111    if [ $curDay -ne $TODAY ] ; then    if [ $curDay -ne $TODAY ] ; then
# Line 91  do Line 116  do
116      date ; echo "too late to run test $typ"      date ; echo "too late to run test $typ"
117      continue      continue
118    fi    fi
119      if test $sepDir = 0 -a "x$option" != x -a  $tt != $last_Tst ; then
120        echo "using option='$option' prevent multi-tests => skip test $typ"
121        continue
122      fi
123    #- clean-up old output files    #- clean-up old output files
124    rm -f $tdir/output_${typ}*    rm -f $tdir/output_${typ}*
125      touch $tdir/output_$tt
126    if test $sepDir = 1 ; then    if test $sepDir = 1 ; then
127      new_dir="MITgcm_$typ"      new_dir="MITgcm_$typ"
128      if test -d $new_dir/CVS -a $checkOut = '0' ; then      reUse=1 ; if [ $checkOut -ge 2 ] ; then reUse=0 ; fi
129        if test -d $new_dir/CVS -a $reUse = 1 ; then
130        pushd $new_dir        pushd $new_dir
131        echo -n "Update the MITgcm code using: $cmdCVS ..."        if test $tt != $typ ; then
132        $cmdCVS update -P -d          ( cd verification ; ../tools/do_tst_2+2 -clean )
133        echo "  done"        fi
134          if test $checkOut = 1 ; then
135            echo -n "Update the MITgcm code using: $cmdCVS ..."
136            $cmdCVS update -P -d
137            echo "  done"
138          fi
139      else      else
140          if test -d prev ; then
141          #-- save previous summary:
142            oldS=`ls -t ${new_dir}/verification/tr_${outDir}_*/summary.txt 2> /dev/null | head -1`
143            if test "x$oldS" != x ; then cp -p -f $oldS prev/tr_out.$typ ; fi
144           if test $tt != $typ ; then
145            oldS=`ls -t ${new_dir}/verification/rs_${outDir}_*/summary.txt 2> /dev/null | head -1`
146            if test "x$oldS" != x ; then cp -p -f $oldS prev/rs_out.$typ ; fi
147           fi
148          fi
149        test -e $new_dir  &&  rm -rf $new_dir        test -e $new_dir  &&  rm -rf $new_dir
150        mkdir $new_dir        mkdir $new_dir
151        pushd $new_dir        pushd $new_dir
152        cp -ra ../MITgcm/* .        cp -ra ../MITgcm/* .
153          #-- download additional experience from Contrib:
154          for exp2add in $addExp ; do
155            echo " add dir: $exp2add (from Contrib:verification_other)"
156            ( cd verification ;  $cmdCVS co -P -d $exp2add \
157                 MITgcm_contrib/verification_other/$exp2add > /dev/null )
158          done
159      fi      fi
160    else    else
161      pushd MITgcm      pushd MITgcm
# Line 112  do Line 163  do
163    cd verification    cd verification
164    
165  #-- set the testreport command:  #-- set the testreport command:
   nbl='-100'  
166    comm="./testreport"    comm="./testreport"
167    if test $typ = 'g7a' -o  $typ = 'adm' -o  $typ = 'mpa' ; then    if test $typ = 'g7a' -o  $typ = 'adm' -o  $typ = 'mpa' ; then
     nbl='-60'  
168      comm="$comm -adm"      comm="$comm -adm"
169      elif test $typ = 'oad' ; then
170        comm="$comm -oad"
171      elif test $typ = 'tlm' ; then
172        comm="$comm -tlm"
173    elif test $typ = 'mth' -o  $typ = 'mp2' ; then    elif test $typ = 'mth' -o  $typ = 'mp2' ; then
174      export GOMP_STACKSIZE=400m      export GOMP_STACKSIZE=400m
175      export OMP_NUM_THREADS=2      export OMP_NUM_THREADS=2
176      comm="$comm -mth"      comm="$comm -mth"
177      else
178        comm="$comm -md cyrus-makedepend"
179    fi    fi
180    comm="$comm -a jmc@mitgcm.org"    comm="$comm -odir $outDir -a jmc@mitgcm.org"
181  #-- set the optfile (+ mpi & match-precision)  #-- set the optfile (+ mpi & match-precision)
182    MPI=0    MPI=0
183    case $typ in    case $typ in
184     'g77'|'g7a')         OPTFILE='../tools/build_options/linux_amd64_g77' ;;     'g77'|'g7a')         OPTFILE='../tools/build_options/linux_amd64_g77' ;;
185     'gfo'|'adm'|'mth')   OPTFILE='../tools/build_options/linux_amd64_gfortran'     'gfo'|'adm'|'oad'|'tlm'|'mth') comm="$comm -match $MC -devel"
186                          comm="$comm -match $MC" ;;                          OPTFILE='../tools/build_options/linux_amd64_gfortran' ;;
187     'ifc')               OPTFILE='../tools/build_options/linux_amd64_ifort11' ;;     'ifc')               comm="$comm -devel"
188                            OPTFILE='../tools/build_options/linux_amd64_ifort11' ;;
189     'pgi')               OPTFILE='../tools/build_options/linux_amd64_pgf77' ;;     'pgi')               OPTFILE='../tools/build_options/linux_amd64_pgf77' ;;
190     'mpa'|'mpi'|'mp2')   OPTFILE='../tools/build_options/linux_amd64_gfortran+mpi_generic'     'mpa'|'mpi'|'mp2')   comm="$comm -match $MC -devel" ; MPI=6
191                          comm="$comm -match $MC" ; MPI=6 ;;                          OPTFILE='../tools/build_options/linux_amd64_gfortran' ;;
192         *)               OPTFILE= ;;         *)               OPTFILE= ;;
193    esac    esac
194  #-- set MPI command:  #-- set MPI command:
# Line 146  do Line 202  do
202    fi    fi
203    
204  #-- set specific Env Vars:  #-- set specific Env Vars:
205      if test $typ = 'oad' ; then
206        source ~jmc/mitgcm/bin/setenv_OpenAD.sh
207      fi
208    if test $typ = 'ifc' ; then    if test $typ = 'ifc' ; then
209      source /srv/software/intel/intel-11.1.073/bin/ifortvars.sh intel64      source /srv/software/intel/intel-11.1.073/bin/ifortvars.sh intel64
210    fi    fi
# Line 156  do Line 215  do
215      export LM_LICENSE_FILE=$PGI/license.dat      export LM_LICENSE_FILE=$PGI/license.dat
216    fi    fi
217    
218    if test $sepDir = 0 -a $checkOut = '1' -a  $tt = $firstTst ; then    if test $sepDir = 0 -a "x$option" = x -a $tt = $firstTst -a $checkOut != 2 ; then
219  #-- cleaning:  #-- cleaning:
220      echo "======================"      echo "======================"
221      echo "Cleaning test directories:"      echo "Cleaning test directories:"   | tee -a $tdir/output_$tt
222      cmdCLN="./testreport -clean"      cmdCLN="./testreport -clean"
223      echo " clean dir running: $cmdCLN"      echo " clean dir running: $cmdCLN"  | tee -a $tdir/output_$tt
224      $cmdCLN > /dev/null 2>&1      $cmdCLN >> $tdir/output_$tt 2>&1
225      echo "======================"      echo "======================"
226      echo      echo ""                             | tee -a $tdir/output_$tt
227    fi    fi
228    
229  #-- run the testreport command:  #-- run the testreport command:
230    echo -n "Running testreport using:"    echo -n "Running testreport using:"   | tee -a $tdir/output_$tt
231    if test "x$OPTFILE" != x ; then    if test "x$OPTFILE" != x ; then
232      comm="$comm -of=$OPTFILE"      comm="$comm -of=$OPTFILE"
233    fi    fi
234    if test $MPI = 0 ; then  echo ''    if test $MPI = 0 ; then  echo ''      | tee -a $tdir/output_$tt
235    else echo " (EXE='$EXE')"    else echo " (EXE='$EXE')"             | tee -a $tdir/output_$tt
236      comm="$comm -MPI $MPI -command \"\$EXE\""      comm="$comm -MPI $MPI -command \"\$EXE\""
237    fi    fi
238    if test "x$option" != x ; then comm="$comm $option" ; fi    if test "x$option" != x ; then comm="$comm $option" ; fi
239   #if test $typ = 'pgi' ; then comm="$comm -t \"\$listT\"" ; fi   #if test $typ = 'pgi' ; then comm="$comm -t \"\$listT\"" ; fi
240    echo "  \"eval $comm\""    echo "  \"eval $comm\""               | tee -a $tdir/output_$tt
241    echo "======================"    echo "======================"
242    eval $comm > $tdir/output_$typ 2>&1    eval $comm >> $tdir/output_$tt 2>&1
243    tail $nbl $tdir/output_$typ    sed -n "/^An email /,/^======== End of testreport / p" $tdir/output_$tt
244    echo    echo ""                               | tee -a $tdir/output_$tt
245    
246  #-- also test restart (test 2+2=4)  #-- also test restart (test 2+2=4)
247    if test $tt != $typ    if test $tt != $typ
248    then    then
249      echo "testing restart using:"      echo "testing restart using:"       | tee -a $tdir/output_$tt
250      comm="../tools/do_tst_2+2 -a jmc@mitgcm.org"      comm="../tools/do_tst_2+2 -o $outDir -a jmc@mitgcm.org"
251      if test $MPI = 0 ; then      if test $MPI = 0 ; then
252        echo "  \"$comm\""        echo "  \"$comm\""                | tee -a $tdir/output_$tt
253        echo "======================"        echo "======================"
254        $comm > $tdir/output_2+2 2>&1        $comm >> $tdir/output_$tt 2>&1
255      else      else
256        echo "  \"$comm -mpi -exe $EXE\""        echo "  \"$comm -mpi -exe $EXE\"" | tee -a $tdir/output_$tt
257        echo "======================"        echo "======================"
258        $comm -mpi -exe "$EXE" > $tdir/output_2+2 2>&1        $comm -mpi -exe "$EXE" >> $tdir/output_$tt 2>&1
259      fi      fi
    #tail $nbl $tdir/output_2+2  
260      echo ; cat tst_2+2_out.txt      echo ; cat tst_2+2_out.txt
261      echo      echo
262    fi    fi
# Line 207  do Line 265  do
265    if test $sepDir = 0 ; then    if test $sepDir = 0 ; then
266  #-- cleaning:  #-- cleaning:
267      echo "======================"      echo "======================"
268      echo "Cleaning test directories:"      echo "Cleaning test directories:"   | tee -a $tdir/output_$tt
269      if test $tt != $typ ; then      if test $tt != $typ ; then
270        cmdCLN="../tools/do_tst_2+2 -clean"        cmdCLN="../tools/do_tst_2+2 -clean"
271        echo " clean tst_2+2 running: $cmdCLN"        echo " clean tst_2+2 running: $cmdCLN"    | tee -a $tdir/output_$tt
272        $cmdCLN >> $tdir/output_2+2 2>&1        $cmdCLN >> $tdir/output_$tt 2>&1
273      fi      fi
274      if test $tt != $last_Tst ; then      if test $tt != $last_Tst ; then
275        cmdCLN="./testreport -clean"        cmdCLN="./testreport -clean"
276        echo " clean dir running: $cmdCLN"        echo " clean dir running: $cmdCLN"        | tee -a $tdir/output_$tt
277        $cmdCLN > /dev/null 2>&1        $cmdCLN >> $tdir/output_$tt 2>&1
278      fi      fi
279      echo "======================"      echo "======================"
280      echo      echo

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.22