--- mitgcm.org/front_content/make_summary	2004/09/24 02:43:37	1.23
+++ mitgcm.org/front_content/make_summary	2012/09/08 14:22:08	1.75
@@ -1,6 +1,6 @@
 #! /usr/bin/env bash
 
-# $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/front_content/make_summary,v 1.23 2004/09/24 02:43:37 edhill Exp $
+# $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/front_content/make_summary,v 1.75 2012/09/08 14:22:08 jmc Exp $
 #
 #  The purpose of this script is to create HTML summaries of the
 #  directories produced by the "parse_emails" script.
@@ -10,235 +10,66 @@
 {
     echo
     echo "Usage:  $0 [OPTIONS]"
-    echo 
+    echo
     echo "where possible OPTIONS are:"
     echo "  (-help|-h)           print usage"
     echo "  (-date |-d )PERIOD   run for PERIOD=\"YYYY_MM\""
     echo "                         [def=\"$PERIOD\"]"
-    echo 
+    echo
     exit 1
 }
 
-old_summary()
-{
-    #  Create the old-style summary file for $PERIOD
-    echo -n "Creating the summary file for the period \"$PERIOD\" ...  "
-    cat > $OUTFILE << EOF
-
-
-
-  
-    MITgcm testing summary
-    
-    
-  
-  
-    
-
-EOF
-
-    # all_files=`find $INDIR -name summary.txt`
-    all_files=`( cd $INDIR ; find . -name summary.txt )`
-
-    for f in $all_files ; do
-	
-	file=$INDIR"/"${f/.\//}
-	grep "^fresults" $file > /dev/null 2>&1
-	RETVAL=$?
-	if test "x$RETVAL" != x0 ; then
-	    continue
-	fi
-	
-	url=`echo $file | sed -e 's|/u/edhill/www|http://mitgcm.org/~edhill|'`
-	url=`echo $url | sed -e 's|summary.txt||'`
-	MACH=
-	fresults=
-	color="#eeeeee"
-	
-	source $file
-	echo $fresults | grep FAIL > /dev/null 2>&1
-	if test "x$?" = x0 ; then
-	    color="#ff99ff"
-	fi
-	echo $fresults | grep pass > /dev/null 2>&1
-	if test "x$?" = x0 ; then
-	    color="#99ffff"
-	fi
-	
-	gm_state=`echo $file | sed -e 's/summary.txt/genmake_state/g'`
-	if test -r $gm_state ; then
-	    grep '^OPTFILE=' $gm_state > ./tmp_state
-	    source ./tmp_state
-	else
-	    optfile="unknown"
-	fi
-	optfile=`echo $OPTFILE | awk -F '/' '{print $NF}'`
-	
-	echo "" >> $OUTFILE
-	echo "| $MACH | " >> $OUTFILE
-	echo "$DATE | " >> $OUTFILE
-	for i in $fresults ; do
-	    if test "x$i" = xN ; then
-		echo -n "$i | " >> $OUTFILE
-	    else
-		echo -n "$i | " >> $OUTFILE
-	    fi
-	done
-	echo "$optfile | " >> $OUTFILE
-	echo "
" >> $OUTFILE
-	
-    done
-    
-    cat >> $OUTFILE << EOF
-
-    
-  
-
-EOF
-
-    chmod a+r $OUTFILE
-    echo "done"
-}
-
-
+export LC_ALL="en_US.UTF-8"
+CURR_PER=`date +%Y`"_"`date +%m`
 # defaults
-PERIOD=`date +%Y`"_"`date +%m`
+PERIOD=$CURR_PER
 
 #  Parse options
 ac_prev=
 for ac_option ; do
-        
+
     # If the previous option needs an argument, assign it.
     if test -n "$ac_prev"; then
-        eval "$ac_prev=\$ac_option"
-        ac_prev=
-        continue
+	eval "$ac_prev=\$ac_option"
+	ac_prev=
+	continue
     fi
-    
+
     ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-    
+
     case $ac_option in
-	
+
 	-help | --help | -h | --h)
 	    usage ;;
-	
-        -date | --date | -d | --d)
-            ac_prev=PERIOD ;;
-        --date=* | -date=*)
-            PERIOD=$ac_optarg ;;
-        
-        *)
+
+	-date | --date | -d | --d)
+	    ac_prev=PERIOD ;;
+	--date=* | -date=*)
+	    PERIOD=$ac_optarg ;;
+
+	*)
 	    echo "Error: don't understand argument \"$ac_option\""
 	    usage
-            ;;
-        
+	    ;;
+
      esac
-     
+
 done
 
+#INDIR="/net/orwell/export/export-9/mitgcm-testing/results/$PERIOD"
+#OUTDIR="/home/jmc/mitgcm/test_web/summary"
 INDIR="/u/u0/httpd/html/testing/results/$PERIOD"
 OUTDIR="/u/u0/httpd/html/testing/summary"
-OUTFILE=$OUTDIR"/summary_"$PERIOD".html"
 
-#  Create the "latest" links
+OUTFILE=$OUTDIR"/output_"$PERIOD".html"
+res_url="http://mitgcm.org/testing/"
+
+#  Create the links in $OUTFILE :
 echo "Creating the \"latest\" file for each machine: "
-LATEST=$OUTDIR"/latest_"$PERIOD".html"
 the_date=`date`
-cat > $LATEST << EOF
-
-
-
-  
-    MITgcm testing summary
-    
-
-    
-
-    
-    
-    
-    
-    
-    
-
-  
-  
-    The MITgcm model is tested 
-      (compiled and run) in an automated fashion on a varirety of 
-      different machines.  The following is a summary of the MITgcm 
-      verification suite for the time period: $PERIOD.
-
-    The machine naming scheme is:
-    
-       | Machine Type |  Nickname | 
-        Notes |  
-
-       | Intel P4 |  "faulks" |  
-        Fedora Core 1 [formerly Red Hat 7.3] |  
-       | Intel P4 |  "hemmingway" | 
-        Fedora Core 1 (gcc 3.3.2) |  
-
-       |  Intel P3/P4 Beowulf  |  "myrinet" | 
-        MITgcm cluster 
-        facility  |  
-       | Alpha cluster |  "halem" | 
-        
-        NASA NCCS Halem |  
-
-       |  SGI Origin 2000  |  "hopper" | 
-        
-        NAS SGI Origin 2000  |  
-       |  SGI Origin 3000  |  "lomax"/"turing" | 
-        
-        NAS SGI Origin 3000  |  
-
-      
-       |  SGI Altix 350  |  "altix350" | 
-        MIT ACESgrid 
-        GeoCluster |  
-       |  IBM POWER3 SP  |  "bf" | 
-        NCAR Blackforest
-         |  
-
-       |  IBM POWER4 SP  |  "bs" | 
-        NCAR Bluesky
-         |  
-       |  AMD Opteron  |  "adams" | 
-        Fedora Core 2 (AMD64) |  
-
-       |  Sun UltraSparc  |  "slough" | 
-        Solaris 8 |  
-       |  Intel P4 Mosix Cluster  |  "sea" | 
-        Red Hat v7.2 |  
-
-       |  AMD Athlon XP 2500+ |  "eddy" | 
-        Fedora Core 2 (Red Hat gcc 3.3.3) |  
-       |  AMD Opteron cluster  |  "dolphin" | 
-        SuSE SLES v8.1 |  
-
-       |  IBM/Apple dual G5  |  "two" | 
-        Mac OSX 10.3 (gcc 3.4)  |  
-
-      
-
-    
 
-    
-      The complete output for the verification runs can be found in
-      the summary pages
-      and the testing archives. 
-      The latest reports are:
+sed "s/_PERIOD/$PERIOD/" summary_head > $OUTFILE
+cat <>$OUTFILE
     
 
   |  Nickname  | 
@@ -253,25 +84,25 @@
 
 color="#bbffdd"
 ncolor="#bbddff"
-res_url="http://mitgcm.org/testing/"
 
-MACHINES="faulks shelley myrinet eaps halem columbia two"
-MACHINES="$MACHINES hopper lomax turing orion bf bs slough sea"
-MACHINES="$MACHINES eddy adams dolphin hemmingway altix350"
+MACHINES="faulks meander aces- acesgrid baudelaire dickens danton beagle harbor"
+MACHINES="$MACHINES pleiades iblade rays solasrv sx8"
+MACHINES="$MACHINES trane dodongo dokdo stomp bigred"
 
-( cd $INDIR ; ls -1 -t ) > ./dir_all
+( cd $INDIR ; ls -1 -t */summary.txt | sed 's/\/summary.txt//' ) > ./dir_all
 
 MALL=`cat ./dir_all | sed -e 's|_| |g' | awk '{print $2}' | sort | uniq`
 for madd in $MALL ; do
     present=0
     for m in $MACHINES ; do
-        echo $madd | grep $m > /dev/null 2>&1
-        RETVAL=$?
-        test $RETVAL = 0  &&  present=1
-        continue
+	echo $madd | grep $m > /dev/null 2>&1
+	RETVAL=$?
+	test $RETVAL = 0  &&  present=1
+	continue
     done
     test $present = 0  &&  MACHINES="$MACHINES $madd"
 done
+#MACHINES="baudelaire"
 
 for mname in $MACHINES ; do
 
@@ -304,41 +135,89 @@
 	    OPTFILE="not_explicitly_specified"
 	fi
 
+	# EXTRA = non-standard list of experiment
 	ADJOINT=
+	TANGLIN=
+	RESTART=0
+	EXTRA=
+	FAST=0
+	DVLP=0
+	MPI=0
+	MTH=0
+	UR4=0
 	if test -r $dir/summary.txt ; then
 	    comm=`grep 'ADJOINT=true' $dir/summary.txt 2>/dev/null`
 	    eval $comm
+	    comm=`grep 'TANGLIN=true' $dir/summary.txt 2>/dev/null`
+	    eval $comm
+	    RESTART=`grep -c 'test 2+2=4 summary' $dir/summary.txt`
+	    comm=`grep '^run: .*testreport.* ' $dir/summary.txt`
+	    EXTRA=`echo "$comm" | grep " -*-tdir\>" | sed -e "s/^.* -*-tdir\>//" -e "s/ -.*$//"`
+	    if test "x$EXTRA" = x ; then
+		EXTRA=`echo "$comm" | grep " -*-t\>" | sed -e "s/^.*-*-t\>//" -e "s/ -.*$//"`
+	    fi
+	    if test "x$EXTRA" = x ; then EXTRA=0 ; else
+		#echo -n "EXTRA=$EXTRA"
+		nn0=`echo $EXTRA | sed "s/ *' *//g" | wc -w`
+		nn1=`echo $EXTRA | sed "s/ *' *//g" | tr ' ' '\n' | grep -c "\"`
+	    if test "x$FAST" = x0 ; then
+		FAST=`echo "$comm" | grep -c " '*-noieee'*"`
+	    fi
+	    DVLP=`echo "$comm" | grep -c " -*-devel\>"`
+	    MPI=`echo "$comm" | grep -c " -*-mpi\>"`
+	    if test "x$MPI" = x0 ; then
+		MPI=`echo "$comm" | grep -c " -*-MPI\>"`
+	    fi
+	    MTH=`echo "$comm" | grep -c " -*-mth\>"`
+	    UR4=`echo "$comm" | grep -c " -*-use_r4\>"`
+	    if test "x$UR4" = x0 ; then
+		UR4=`echo "$comm" | grep -c " -*-ur4\>"`
+	    fi
 	fi
-	if test "x$ADJOINT" = x ; then
-	    kind="forward"
+	if test "x$ADJOINT" = xtrue ; then
+	    kind="adjoint" ; order=0
+	elif test "x$TANGLIN" = xtrue ; then
+	    kind="tanglin" ; order=1
+	elif test "x$RESTART" = x0 ; then
+	    kind="forward" ; order=2
 	else
-	    test "x$ADJOINT" = xtrue  &&  kind="adjoint"
+	    kind="restart" ; order=3
+	fi
+	order=`expr $order + 10 \* $EXTRA`
+	order=`printf '%3.3i' $order`
+	if test "x$UR4" = x1 ; then
+	    OPTFILE="${OPTFILE}.use_r4"
+	fi
+	if test "x$MPI" = x1 ; then
+	    yy=`echo $OPTFILE | grep -c '+mpi'`
+	    if test $yy = 0 ; then OPTFILE="${OPTFILE}+mpi" ; fi
+	fi
+	if test "x$MTH" = x1 ; then
+	    yy=`echo $OPTFILE | grep -c '+mth$'`
+	    if test $yy = 0 ; then OPTFILE="${OPTFILE}+mth" ; fi
+	fi
+	if test "x$FAST" = x1 ; then
+	    OPTFILE="${OPTFILE}.fast"
+	fi
+	if test "x$DVLP" = x1 ; then
+	    OPTFILE="${OPTFILE}.dvlp"
 	fi
 
 	t_pass="--"
 	t_tot="--"
 	if test -r $dir/summary.txt ; then
-	    grep '^[YN] [YN] [YN] [YN] ' $dir/summary.txt > ./all_tests 2>/dev/null
+	    grep '^[YN] [YN] [YN] [YN]' $dir/summary.txt > ./all_tests 2>/dev/null
 	    t_tot=`cat ./all_tests | wc -l | sed -e 's| ||g'`
-	    grep '^Y Y Y Y ' ./all_tests > ./all_ran 2>/dev/null
-	    grep advect_ ./all_ran 2>/dev/null > ./all_ran_advect
-	    t_advect=`cat ./all_ran_advect | wc -l | sed -e 's| ||g'`
-	    digits=`cat ./all_ran_advect | awk '{print $9}'`
-	    t_advect_pass=0
-	    for k in $digits ; do
-		test "x$k" = x--   &&  k=0
-		test $k -ge 9  &&  t_advect_pass=$(( $t_advect_pass + 1 ))
-	    done
-	    grep -v advect ./all_ran 2>/dev/null > ./all_ran_noadvect
-	    digits=`cat ./all_ran_noadvect | awk '{print $5}'`
-	    t_sum=0
-	    for k in $digits ; do
-		test "x$k" = x--   &&  k=0
-		test $k -ge 9  &&  t_sum=$(( $t_sum + 1 ))
-	    done
-	    t_pass=$(( $t_sum + $t_advect_pass ))
+	    t_pass=`grep '^Y Y Y Y' ./all_tests | grep 'pass ' | wc -l | sed -e 's| ||g'`
 	fi
-	rm -f ./all_tests ./all_ran ./all_ran_advect ./all_ran_noadvect
+	rm -f ./all_tests
 	# echo "${dir##*/} : $t_pass out of $t_tot"
 
 	tokens=`echo $i | sed -e 's|_| |g'`
@@ -346,10 +225,10 @@
 	for tok in $tokens ; do
 	    echo $tok >> ./ms_tmp
 	done
-	DAY=`cat ./ms_tmp | awk '(length($1)==8 && substr($1,0,3)=="200")'`
+	DAY=`cat ./ms_tmp | awk '(length($1)==8 && substr($1,0,2)=="20")'`
 	rm -f ./ms_tmp
 
-	echo "$OPTFILE$kind $DAY $OPTFILE $kind $i $t_pass:$t_tot" >> ./mlist
+	echo "$OPTFILE$order $DAY $OPTFILE $kind $i $t_pass:$t_tot" >> ./mlist
 
     done
 
@@ -361,9 +240,9 @@
     if test $num -gt 0 ; then
 
 	# swap colors
-        ctmp=$color
-        color=$ncolor
-        ncolor=$ctmp
+	ctmp=$color
+	color=$ncolor
+	ncolor=$ctmp
 
 	keys=`cat ./mlist | cut -d " " -f 1 | sort | uniq`
 
@@ -375,9 +254,14 @@
 	    optf=`echo $tline | cut -d " " -f 3`
 	    DAY=`echo $tline | cut -d " " -f 2`
 	    URL="results/$PERIOD/$ldir"
-	    cat <>$LATEST
+	    #-- machine name to print:
+	    sname=`echo $mname | sed 's/-$//'`
+	    alt=`echo $key | sed "s/$optf//"`
+	   #if   [ $alt -ge 30 ] ; then sname="${sname}.darwin"
+	   #elif [ $alt -ge 20 ] ; then sname="${sname}.monod" ; fi
+	    cat <>$OUTFILE
 
-  |  $mname  | 
+   $sname  | 
    $optf  | 
    $kind  | 
    $DAY  | 
@@ -390,17 +274,16 @@
 
 done
 
-cat >> $LATEST << EOF
+cat >> $OUTFILE << EOF
 
   | This table generated on: $the_date | 
 
 
     
 
-Examples of the scripts used for these testing runs can be obtained
-from 
-the "contrib" area of the MITgcm CVS archive.
+Examples of the scripts used for these testing runs can be obtained from: 
+MITgcm/tools/example_scripts.
 
 
   
@@ -410,7 +293,12 @@
 
 rm -f ./dir_all ./mlist
 
-CURR_PER=`date +%Y`"_"`date +%m`
+#- put the file in place
+chgrp gcmpack $OUTFILE
+chmod 664 $OUTFILE
+LATEST=$OUTDIR"/latest_"$PERIOD".html"
+mv -f $OUTFILE $LATEST
+
 if test "x$PERIOD" = "x$CURR_PER" ; then
     cp $LATEST ./testing.xml
     (