/[MITgcm]/mitgcm.org/scripts/check_outp
ViewVC logotype

Diff of /mitgcm.org/scripts/check_outp

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

revision 1.1 by jmc, Wed Aug 27 21:19:32 2008 UTC revision 1.15 by jmc, Tue Jul 7 23:32:02 2009 UTC
# Line 18  usage() Line 18  usage()
18      echo "  (-l |-list )MACHINES  check platforms from this list"      echo "  (-l |-list )MACHINES  check platforms from this list"
19      echo "                         [def=\"$MACHINES\"]"      echo "                         [def=\"$MACHINES\"]"
20      echo "  (-d |-day  )FIRSTDAY  select output from day=\"YYYYMMDD\""      echo "  (-d |-day  )FIRSTDAY  select output from day=\"YYYYMMDD\""
21        echo "                         (argument of \"date -d\" is allowed)"
22      echo "                         [def=\"$FIRSTDAY\"]"      echo "                         [def=\"$FIRSTDAY\"]"
23      echo "  (-u |-upto )LASTDAY   until last day=\"YYYYMMDD\" (=selected period)"      echo "  (-u |-upto )LASTDAY   until last day=\"YYYYMMDD\" (=selected period)"
24      echo "                         [def=\"FIRSTDAY\"]"      echo "                         [def=\"FIRSTDAY\"]"
# Line 42  NBLDIFF=5 Line 43  NBLDIFF=5
43  ADDRESS='none'  ADDRESS='none'
44  dBug=f  dBug=f
45  sTime=`date`  sTime=`date`
46    #- to get case insensitive "ls" (and order of tested experiments)
47    export LC_ALL="en_US.UTF-8"
48    
49  #  Parse options  #  Parse options
50  ac_prev=  ac_prev=
# Line 101  for ac_option ; do Line 104  for ac_option ; do
104       esac       esac
105    
106  done  done
107    #-- test FIRSTDAY content ; interpret as "date -d" arg. if not YYYYMMDD
108    ttt=`echo "y$FIRSTDAY" | sed 's/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/z/'`
109    if test "x$ttt" != 'xyz' ; then
110       FIRSTDAY=`date -d "$FIRSTDAY" +%Y%m%d`
111    fi
112    ttt=`echo "y$FIRSTDAY" | sed 's/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/z/'`
113    if test "x$ttt" != 'xyz' ; then
114      echo "Error: FIRSTDAY='$FIRSDAY' not recognized"
115      exit 2
116    fi
117  if test $LASTDAY = "30000000" ; then LASTDAY=$FIRSTDAY ; fi  if test $LASTDAY = "30000000" ; then LASTDAY=$FIRSTDAY ; fi
118  CMDLINE=$0  CMDLINE=$0
119  for xx in "$@" ; do nw=`echo $xx | wc -w`  for xx in "$@" ; do nw=`echo $xx | wc -w`
# Line 144  if test -d $INDIR ; then Line 157  if test -d $INDIR ; then
157    fi    fi
158  else  else
159    echo "$INDIR is not a directory"    echo "$INDIR is not a directory"
160    exit    exit 3
161  fi  fi
162    
163  #- a short summary of this checking :  #- a short summary of this checking :
# Line 165  echo "     name     checked   comp    Di Line 178  echo "     name     checked   comp    Di
178  ( cd $INDIR ; ls -1 -t */summary.txt | sed 's/\/summary.txt//' ) > ./dir_all  ( cd $INDIR ; ls -1 -t */summary.txt | sed 's/\/summary.txt//' ) > ./dir_all
179    
180  if test "x$MACHINES" = "x_All_" ; then  if test "x$MACHINES" = "x_All_" ; then
181    MACHINES="faulks aces eddy bay meander lagoon hugo"    MACHINES="faulks meander lagoon harbor dickens danton aces"
182    MACHINES="$MACHINES columbia edvir rays sx8 xd1"    MACHINES="$MACHINES beagle columbia edvir rays solasrv sx8 xd1"
183    MACHINES="$MACHINES beagle batsi starp"    MACHINES="$MACHINES bigred starp"
184    
185    MALL=`cat ./dir_all | sed -e 's|_| |g' | awk '{print $2}' | sort | uniq`    MALL=`cat ./dir_all | sed -e 's|_| |g' | awk '{print $2}' | sort | uniq`
186    for madd in $MALL ; do    for madd in $MALL ; do
# Line 198  for mname in $MACHINES ; do Line 211  for mname in $MACHINES ; do
211        if test $n == 2 ; then        if test $n == 2 ; then
212          num2=`expr $num1 \* $n`          num2=`expr $num1 \* $n`
213          if [ $num0 -lt $num2 ] ; then          if [ $num0 -lt $num2 ] ; then
214            dir_list=`( cd $INDIR ; ls -1 -t ../$PREV_P/*${mname}*/summary.txt | sed 's/\/summary.txt//' )`            dir_list=`( cd $INDIR ; ls -1 -t ../$PREV_P/*${mname}*/summary.txt 2> /dev/null | sed 's/\/summary.txt//' )`
215            #echo "dir_list='$dir_list'"            #echo "dir_list='$dir_list'"
216          fi          fi
217        else        else
# Line 233  for mname in $MACHINES ; do Line 246  for mname in $MACHINES ; do
246              ADJOINT=              ADJOINT=
247              RESTART=0              RESTART=0
248              NOI3E=0              NOI3E=0
249                MTH=0
250              if test -r $dir/summary.txt ; then              if test -r $dir/summary.txt ; then
251                  comm=`grep 'ADJOINT=true' $dir/summary.txt 2>/dev/null`                  comm=`grep 'ADJOINT=true' $dir/summary.txt 2>/dev/null`
252                  eval $comm                  eval $comm
253                  RESTART=`grep -c 'test 2+2=4 summary' $dir/summary.txt`                  RESTART=`grep -c 'test 2+2=4 summary' $dir/summary.txt`
254                  NOI3E=`grep -c "^run: .*testreport .* '-noieee' " $dir/summary.txt`                  NOI3E=`grep -c "^run: .*testreport.* '*-noieee'*" $dir/summary.txt`
255                    MTH=`grep -c "^run: .*testreport.* -mth" $dir/summary.txt`
256              fi              fi
257              if test "x$RESTART" = x0 ; then              if test "x$RESTART" = x0 ; then
258                  kind="forward"                  kind="forward"
# Line 245  for mname in $MACHINES ; do Line 260  for mname in $MACHINES ; do
260              else              else
261                  kind="restart"                  kind="restart"
262              fi              fi
263                if test "x$MTH" = x1 ; then
264                    yy=`echo $OPTFILE | grep -c '+mth$'`
265                    if test $yy = 0 ; then OPTFILE="${OPTFILE}+mth" ; fi
266                fi
267              if test "x$NOI3E" = x1 ; then              if test "x$NOI3E" = x1 ; then
268                  OPTFILE="${OPTFILE}.noieee"                  OPTFILE="${OPTFILE}.noieee"
269              fi              fi
# Line 269  for mname in $MACHINES ; do Line 288  for mname in $MACHINES ; do
288                  cat ./slist | tee -a $OUTPFIL                  cat ./slist | tee -a $OUTPFIL
289            fi            fi
290            echo   ".... previous list (n=$n):" | tee -a $OUTPFIL            echo   ".... previous list (n=$n):" | tee -a $OUTPFIL
291                  cat ./plist | tee -a $OUTPFIL                  cat ./plist | tee -a $OUTPFIL | head -20
292          fi          fi
293    
294        fi        fi
# Line 291  for mname in $MACHINES ; do Line 310  for mname in $MACHINES ; do
310            num=`grep -c "^$key" ./plist`            num=`grep -c "^$key" ./plist`
311            #- discard unsafe test:            #- discard unsafe test:
312            dd=`echo $optf | grep -c 'gfortran.*mth'`            dd=`echo $optf | grep -c 'gfortran.*mth'`
313            if [ $dd -ge 1 ] ; then num=-1 ; fi            #if test $mname = 'lagoon' -a $dd = 1 ; then num=-1 ; fi
314              #if test $mname = 'harbor' -a $dd = 1 ; then num=-1 ; fi
315              #if test $mname = 'aces' -a $optf = 'linux_ia32_open64' ; then num=-1 ; fi
316              #if test $mname = 'aces' -a $optf = 'linux_ia32_g95' ; then num=-1 ; fi
317            if test $num -gt 0 ; then            if test $num -gt 0 ; then
318              pline=`grep "^$key " ./plist | head -1`              pline=`grep "^$key " ./plist | head -1`
319              if test $dBug = 't' ; then              if test $dBug = 't' ; then
# Line 301  for mname in $MACHINES ; do Line 323  for mname in $MACHINES ; do
323              pdir=`echo $pline | cut -d " " -f 5`              pdir=`echo $pline | cut -d " " -f 5`
324              outs="$INDIR/$sdir/summary.txt"              outs="$INDIR/$sdir/summary.txt"
325              sed -n "5,$ p" $outs | sed '/^[YN] [YN] [YN] [YN]/ s/ \. //g' \              sed -n "5,$ p" $outs | sed '/^[YN] [YN] [YN] [YN]/ s/ \. //g' \
326                                     | sed 's/ OPTFILE=.*\// OPTFILE=/g' \
327                                   | grep -v '^[A-S][a-t]* time:  ' > tmpfs                                   | grep -v '^[A-S][a-t]* time:  ' > tmpfs
328              outp="$INDIR/$pdir/summary.txt"              outp="$INDIR/$pdir/summary.txt"
329              sed -n "5,$ p" $outp | sed '/^[YN] [YN] [YN] [YN]/ s/ \. //g' \              sed -n "5,$ p" $outp | sed '/^[YN] [YN] [YN] [YN]/ s/ \. //g' \
330                                     | sed 's/ OPTFILE=.*\// OPTFILE=/g' \
331                                   | grep -v '^[A-S][a-t]* time:  ' > tmpfp                                   | grep -v '^[A-S][a-t]* time:  ' > tmpfp
332                #-- re-order list of exp (according to local "sort" order)
333                listD=`grep '^[YN] [YN] [YN] [YN]' tmpfs \
334                     | sed 's/^[YN] .*pass //' | sed 's/^[YN] .*FAIL //' \
335                     | sed 's/^[YN] .*N\/O  //' | sort`
336                for xx in $listD
337                do
338                    sed "/ $xx\$/d" tmpfs > tmpfn
339                    sed -n "/ $xx\$/p" tmpfs >> tmpfn
340                    mv tmpfn tmpfs
341                done
342                listD=`grep '^[YN] [YN] [YN] [YN]' tmpfp \
343                     | sed 's/^[YN] .*pass //' | sed 's/^[YN] .*FAIL //' \
344                     | sed 's/^[YN] .*N\/O  //' | sort`
345                for xx in $listD
346                do
347                    sed "/ $xx\$/d" tmpfp > tmpfn
348                    sed -n "/ $xx\$/p" tmpfp >> tmpfn
349                    mv tmpfn tmpfp
350                done
351              echo -n "=== diff $sdir $pdir :" | tee -a $OUTPFIL              echo -n "=== diff $sdir $pdir :" | tee -a $OUTPFIL
352              diff tmpfs tmpfp > tmpdf              diff tmpfs tmpfp > tmpdf
353              yy=$?              yy=$?
# Line 373  if test "x$ADDRESS" != 'xnone' ; then Line 416  if test "x$ADDRESS" != 'xnone' ; then
416  fi  fi
417  echo ".. cat $OUTPSUM"  echo ".. cat $OUTPSUM"
418  cat $OUTPSUM  cat $OUTPSUM
419    exit 0

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22