22 |
echo " (-command|-c) STRING command to run (e.g., if non-standard MPI setting)" |
echo " (-command|-c) STRING command to run (e.g., if non-standard MPI setting)" |
23 |
echo " DEF='mitgcmuv' or ='mpirun -np TR_NPROC mitgcmuv'" |
echo " DEF='mitgcmuv' or ='mpirun -np TR_NPROC mitgcmuv'" |
24 |
echo " ---- testing options : ----" |
echo " ---- testing options : ----" |
25 |
echo " (-optfile|-of) STRING list of optfiles to use" |
echo " (-optfile|-of) STRING optfile to use" |
26 |
echo " (-fast) use optfile default for compiler flags (no '-ieee')" |
echo " (-fast) use optfile default for compiler flags (no '-ieee')" |
27 |
echo " DEF=off => use IEEE numerics option (if available)" |
echo " DEF=off => use IEEE numerics option (if available)" |
28 |
echo " (-devel) use optfile developement flags (if available)" |
echo " (-devel) use optfile developement flags (if available)" |
42 |
echo " (-bash|-b) STRING preferred location of a \"bash\" or \"sh\" shell" |
echo " (-bash|-b) STRING preferred location of a \"bash\" or \"sh\" shell" |
43 |
echo " (DEF=\"\" for \"bash\")" |
echo " (DEF=\"\" for \"bash\")" |
44 |
echo " (-ef) STRING used as genmake2 \"-extra_flag\" argument" |
echo " (-ef) STRING used as genmake2 \"-extra_flag\" argument" |
45 |
echo " (-ncad) used genmake2 option \"-nocat4ad\" (-ncad)" |
echo " (-ncad) use genmake2 option \"-nocat4ad\" (-ncad)" |
46 |
|
echo " (-small_f) make target small_f before making target all" |
47 |
echo " (-makedepend|-md) STRING command to use for \"makedepend\"" |
echo " (-makedepend|-md) STRING command to use for \"makedepend\"" |
48 |
echo " (-make|-m) STRING command to use for \"make\"" |
echo " (-make|-m) STRING command to use for \"make\"" |
49 |
echo " (DEF=\"make\")" |
echo " (DEF=\"make\")" |
132 |
echo testoutput_var: grep "$2" $1/$4/$OUTPUTFILE 1>&2 |
echo testoutput_var: grep "$2" $1/$4/$OUTPUTFILE 1>&2 |
133 |
fi |
fi |
134 |
if [ -r $1/$4/$OUTPUTFILE ]; then |
if [ -r $1/$4/$OUTPUTFILE ]; then |
135 |
grep "$2" $1/$4/$OUTPUTFILE | sed 's/.*=//' | cat -n > ${TMP}a.txt |
grep "$2" $1/$4/$OUTPUTFILE | sed 's/.*=//' | nl > ${TMP}a.txt |
136 |
lncntA=`wc -l ${TMP}a.txt | awk '{print $1}' ` |
lncntA=`wc -l ${TMP}a.txt | awk '{print $1}' ` |
137 |
if [ $lncntA -lt 2 ]; then |
if [ $lncntA -lt 2 ]; then |
138 |
if [ $verbose -gt 0 ]; then |
if [ $verbose -gt 0 ]; then |
147 |
if [ $debug -gt 0 ]; then |
if [ $debug -gt 0 ]; then |
148 |
echo testoutput_var: grep "$2" $1/$5 1>&2 |
echo testoutput_var: grep "$2" $1/$5 1>&2 |
149 |
fi |
fi |
150 |
grep "$2" $1/$5 | sed 's/.*=//' | cat -n > ${TMP}b.txt |
grep "$2" $1/$5 | sed 's/.*=//' | nl > ${TMP}b.txt |
151 |
lncntB=`wc -l ${TMP}b.txt | awk '{print $1}' ` |
lncntB=`wc -l ${TMP}b.txt | awk '{print $1}' ` |
152 |
if [ $lncntB -lt 2 ]; then |
if [ $lncntB -lt 2 ]; then |
153 |
if [ $verbose -gt 0 ]; then |
if [ $verbose -gt 0 ]; then |
270 |
allargs="" |
allargs="" |
271 |
for xx in $listVar |
for xx in $listVar |
272 |
do |
do |
273 |
case $xx in |
#ii=`echo $xx | sed 's/^pt[0-9][0-9]*..$/XXX/'` #- any ptr number |
274 |
|
ii=`echo $xx | sed 's/^pt[1-9]..$/XXX/'` #- 1 to 9 ptr number |
275 |
|
if test $ii != 'XXX' ; then |
276 |
|
#- all except ptracer stats: |
277 |
|
case $xx in |
278 |
'PS') if [ $debug -gt 0 ] |
'PS') if [ $debug -gt 0 ] |
279 |
then echo testoutput_run: testoutput_var $1 cg2d_init_res 1>&2 ; fi |
then echo testoutput_run: testoutput_var $1 cg2d_init_res 1>&2 ; fi |
280 |
testoutput_var $1 "cg2d_init_res" "Press. Solver (cg2d)" $2 $refoutp ; yy=$? |
testoutput_var $1 "cg2d_init_res" "Press. Solver (cg2d)" $2 $refoutp ; yy=$? |
301 |
'Vmx') testoutput_var $1 "dynstat_vvel_max" "V maximum" $2 $refoutp ; yy=$? ;; |
'Vmx') testoutput_var $1 "dynstat_vvel_max" "V maximum" $2 $refoutp ; yy=$? ;; |
302 |
'Vav') testoutput_var $1 "dynstat_vvel_mean" "V mean" $2 $refoutp ; yy=$? ;; |
'Vav') testoutput_var $1 "dynstat_vvel_mean" "V mean" $2 $refoutp ; yy=$? ;; |
303 |
'Vsd') testoutput_var $1 "dynstat_vvel_sd" "V Std.Dev" $2 $refoutp ; yy=$? ;; |
'Vsd') testoutput_var $1 "dynstat_vvel_sd" "V Std.Dev" $2 $refoutp ; yy=$? ;; |
|
'pt1mn'|'pt2mn'|'pt3mn'|'pt4mn'|'pt5mn') ii=`echo $xx | sed 's/pt//' | sed 's/..$//'` |
|
|
testoutput_var $1 "trcstat_ptracer0"$ii"_min" "p0"$ii"_min" $2 $refoutp ; yy=$? ;; |
|
|
'pt1mx'|'pt2mx'|'pt3mx'|'pt4mx'|'pt5mx') ii=`echo $xx | sed 's/pt//' | sed 's/..$//'` |
|
|
testoutput_var $1 "trcstat_ptracer0"$ii"_max" "p0"$ii"_max" $2 $refoutp ; yy=$? ;; |
|
|
'pt1av'|'pt2av'|'pt3av'|'pt4av'|'pt5av') ii=`echo $xx | sed 's/pt//' | sed 's/..$//'` |
|
|
testoutput_var $1 "trcstat_ptracer0"$ii"_mean" "p0"$ii"_mean" $2 $refoutp ; yy=$? ;; |
|
|
'pt1sd'|'pt2sd'|'pt3sd'|'pt4sd'|'pt5sd') ii=`echo $xx | sed 's/pt//' | sed 's/..$//'` |
|
|
testoutput_var $1 "trcstat_ptracer0"$ii"_sd" "p0"$ii"_StDv" $2 $refoutp ; yy=$? ;; |
|
304 |
'Qntmn') testoutput_var $1 "forcing_qnet_min" "Qnet minimum" $2 $refoutp ; yy=$? ;; |
'Qntmn') testoutput_var $1 "forcing_qnet_min" "Qnet minimum" $2 $refoutp ; yy=$? ;; |
305 |
'Qntmx') testoutput_var $1 "forcing_qnet_max" "Qnet maximum" $2 $refoutp ; yy=$? ;; |
'Qntmx') testoutput_var $1 "forcing_qnet_max" "Qnet maximum" $2 $refoutp ; yy=$? ;; |
306 |
'Qntav') testoutput_var $1 "forcing_qnet_mean" "Qnet mean" $2 $refoutp ; yy=$? ;; |
'Qntav') testoutput_var $1 "forcing_qnet_mean" "Qnet mean" $2 $refoutp ; yy=$? ;; |
335 |
'sboAp') testoutput_var $1 "sbo_zoamp" "SBO AM-P" $2 $refoutp ; yy=$? ;; |
'sboAp') testoutput_var $1 "sbo_zoamp" "SBO AM-P" $2 $refoutp ; yy=$? ;; |
336 |
'StrmIc') testoutput_var $1 "STREAMICE_FP_ERR" "StreamIce Solver" $2 $refoutp ; yy=$? ;; |
'StrmIc') testoutput_var $1 "STREAMICE_FP_ERR" "StreamIce Solver" $2 $refoutp ; yy=$? ;; |
337 |
*) yy=99; echo "WARNING: asking for var=$xx : not recognized !" 1>&2 ;; |
*) yy=99; echo "WARNING: asking for var=$xx : not recognized !" 1>&2 ;; |
338 |
esac |
esac |
339 |
|
else |
340 |
|
#- ptracers stats: |
341 |
|
nn=`echo $xx | sed 's/pt//' | sed 's/..$//'` |
342 |
|
ii=`echo $xx | sed 's/^pt[0-9]*//'` |
343 |
|
case $ii in |
344 |
|
'mn') testoutput_var $1 "trcstat_ptracer0"$nn"_min" "p0"$nn"_min" $2 $refoutp ; yy=$? ;; |
345 |
|
'mx') testoutput_var $1 "trcstat_ptracer0"$nn"_max" "p0"$nn"_max" $2 $refoutp ; yy=$? ;; |
346 |
|
'av') testoutput_var $1 "trcstat_ptracer0"$nn"_mean" "p0"$nn"_mean" $2 $refoutp ; yy=$? ;; |
347 |
|
'sd') testoutput_var $1 "trcstat_ptracer0"$nn"_sd" "p0"$nn"_StDv" $2 $refoutp ; yy=$? ;; |
348 |
|
esac |
349 |
|
fi |
350 |
if test $xx = $sVar |
if test $xx = $sVar |
351 |
then allargs="$allargs > $yy <" |
then allargs="$allargs > $yy <" |
352 |
else allargs="$allargs $yy" |
else allargs="$allargs $yy" |
535 |
else |
else |
536 |
cd $1; |
cd $1; |
537 |
if test -r Makefile ; then |
if test -r Makefile ; then |
538 |
printf 'make ... ' |
if test "x$MKSMALLF" = xt ; then |
539 |
|
printf 'make small_f ... ' |
540 |
|
$MAKE_CMD small_f >> make.tr_log 2>&1 |
541 |
|
RETVAL=$? |
542 |
|
if test "x$RETVAL" != x0 ; then |
543 |
|
tail make.tr_log |
544 |
|
echo failed |
545 |
|
cp genmake.log genmake.tr_log $CDIR |
546 |
|
tail -$NBLINES_MKLOG make.tr_log > $CDIR"/make.tr_log_tail" |
547 |
|
rm -f $EXECUTABLE |
548 |
|
mk_fail=1 |
549 |
|
else |
550 |
|
echo successful |
551 |
|
fi |
552 |
|
fi |
553 |
|
printf "make $TARG ... " |
554 |
$MAKE_CMD $TARG >> make.tr_log 2>&1 |
$MAKE_CMD $TARG >> make.tr_log 2>&1 |
555 |
RETVAL=$? |
RETVAL=$? |
556 |
if test "x$RETVAL" != x0 ; then |
if test "x$RETVAL" != x0 ; then |
799 |
if test "x$MPI" != x0 ; then |
if test "x$MPI" != x0 ; then |
800 |
#- adjust the MPI run command with the right number of Procs |
#- adjust the MPI run command with the right number of Procs |
801 |
#echo '' ; echo " COMMAND='$COMMAND'" |
#echo '' ; echo " COMMAND='$COMMAND'" |
802 |
COMMAND=`echo $COMMAND | sed "s/ TR_NPROC / $LOC_NPROC /"` |
COMMAND=`echo $COMMAND | sed "s/ TR_NPROC/ $LOC_NPROC/"` |
803 |
if test "x$MPI_MFILE" != x ; then |
if test "x$MPI_MFILE" != x ; then |
804 |
COMMAND=`echo $COMMAND | sed "s/ TR_MFILE / ..\/..\/$LOC_MFILE /"` |
COMMAND=`echo $COMMAND | sed "s/ TR_MFILE / ..\/..\/$LOC_MFILE /"` |
805 |
fi |
fi |
865 |
if test -f $OUTPUTFILE ; then |
if test -f $OUTPUTFILE ; then |
866 |
grep '(PID\.TID 0000\.0001) n.. =' $OUTPUTFILE \ |
grep '(PID\.TID 0000\.0001) n.. =' $OUTPUTFILE \ |
867 |
| sed 's/(PID.TID 0000.0001) //' >> $CDIR"/summary.txt" |
| sed 's/(PID.TID 0000.0001) //' >> $CDIR"/summary.txt" |
868 |
grep -A3 'Seconds in section "ALL' $OUTPUTFILE \ |
# grep -A3 'Seconds in section "ALL' $OUTPUTFILE \ |
869 |
| sed 's/(PID.TID 0000.0001) //' >> $CDIR"/summary.txt" |
# | sed 's/(PID.TID 0000.0001) //' >> $CDIR"/summary.txt" |
870 |
|
# some implementations of grep cannot do contextual searches so we |
871 |
|
# replace the above with a sed command |
872 |
|
cat $OUTPUTFILE | sed -n '/Seconds in section "ALL/{N |
873 |
|
N |
874 |
|
N |
875 |
|
p |
876 |
|
}' | sed 's/(PID.TID 0000.0001) //' >> $CDIR"/summary.txt" |
877 |
fi |
fi |
878 |
if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi |
if test -s STDERR.0000 ; then cp STDERR.0000 $CDIR"/STDERR.0000" ; fi |
879 |
if [ $RETVAL -eq 0 -a $ENDVAL -gt 0 ] ; then |
if [ $RETVAL -eq 0 -a $ENDVAL -gt 0 ] ; then |
1088 |
USE_R4= |
USE_R4= |
1089 |
EXTRFLG= |
EXTRFLG= |
1090 |
NOCATAD= |
NOCATAD= |
1091 |
|
MKSMALLF= |
1092 |
|
|
1093 |
#- type of testing (KIND): |
#- type of testing (KIND): |
1094 |
# KIND=0 : forward (= default) ; KIND=1 : Tangent Linear with TAF ; |
# KIND=0 : forward (= default) ; KIND=1 : Tangent Linear with TAF ; |
1198 |
echo "Error: '-tlm', '-adm' and '-oad' are exclusive" ; usage |
echo "Error: '-tlm', '-adm' and '-oad' are exclusive" ; usage |
1199 |
fi ;; |
fi ;; |
1200 |
-ncad) NOCATAD=t ;; |
-ncad) NOCATAD=t ;; |
1201 |
|
-small_f) MKSMALLF=t ;; |
1202 |
|
|
1203 |
-ieee) echo "Warning: ignore option '-ieee' (already the default)" |
-ieee) echo "Warning: ignore option '-ieee' (already the default)" |
1204 |
printf " ... " ;; |
printf " ... " ;; |
1325 |
if test $count = 1 ; then echo "" ; echo -n " ... " ; fi |
if test $count = 1 ; then echo "" ; echo -n " ... " ; fi |
1326 |
#echo 'TESTDIRS='${TESTDIRS}'<' |
#echo 'TESTDIRS='${TESTDIRS}'<' |
1327 |
|
|
|
if test "x$OPTFILE" = xNONE -a "x$MITGCM_OF" != x ; then |
|
|
OPTFILE=$MITGCM_OF |
|
|
fi |
|
|
|
|
1328 |
LOC_MFILE='tr_mpi_mfile' |
LOC_MFILE='tr_mpi_mfile' |
1329 |
RUNLOG="run.tr_log" |
RUNLOG="run.tr_log" |
1330 |
if test "x$MPI" = x0 ; then |
if test "x$MPI" = x0 ; then |
1332 |
if test "x$COMMAND" = x ; then COMMAND="./$EXECUTABLE > $OUTPUTFILE" ; fi |
if test "x$COMMAND" = x ; then COMMAND="./$EXECUTABLE > $OUTPUTFILE" ; fi |
1333 |
else |
else |
1334 |
OUTPUTFILE="STDOUT.0000" |
OUTPUTFILE="STDOUT.0000" |
1335 |
if test "x$COMMAND" = x ; then COMMAND="mpirun -v -np TR_NPROC ./$EXECUTABLE" ; fi |
if test "x$COMMAND" = x ; then COMMAND="mpirun -np TR_NPROC ./$EXECUTABLE" ; fi |
1336 |
fi |
fi |
1337 |
|
|
1338 |
echo "OK (COMMAND='$COMMAND')" |
echo "OK (COMMAND='$COMMAND')" |
1660 |
&& symlink_mpifiles $dir $code_dir $builddir \ |
&& symlink_mpifiles $dir $code_dir $builddir \ |
1661 |
&& makedependmodel $dir/$builddir && makedepend=Y \ |
&& makedependmodel $dir/$builddir && makedepend=Y \ |
1662 |
&& makemodel $dir/$builddir && make=Y |
&& makemodel $dir/$builddir && make=Y |
1663 |
|
echo |
1664 |
else |
else |
1665 |
genmakemodel $dir/$builddir && genmake=Y \ |
genmakemodel $dir/$builddir && genmake=Y \ |
1666 |
&& makeclean $dir/$builddir \ |
&& makeclean $dir/$builddir \ |
1671 |
&& linkdata $dir/$rundir $inputdir \ |
&& linkdata $dir/$rundir $inputdir \ |
1672 |
&& runmodel $dir/$rundir && run=Y \ |
&& runmodel $dir/$rundir && run=Y \ |
1673 |
&& results=`testoutput_run $dir $rundir $ref_outp` |
&& results=`testoutput_run $dir $rundir $ref_outp` |
1674 |
|
echo 1>&2 |
1675 |
fi |
fi |
1676 |
#echo "results='$results'" |
#echo "results='$results'" |
1677 |
|
|
1678 |
fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` |
fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` |
|
echo 1>&2 |
|
1679 |
echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /</' >> $SUMMARY |
echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /</' >> $SUMMARY |
1680 |
echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" |
echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" |
1681 |
|
|
1697 |
linkdata $dir/$pfxdir.$ex $inputdir.$ex $inputdir |
linkdata $dir/$pfxdir.$ex $inputdir.$ex $inputdir |
1698 |
runmodel $dir/$pfxdir.$ex && run=Y \ |
runmodel $dir/$pfxdir.$ex && run=Y \ |
1699 |
&& results=`testoutput_run $dir $pfxdir.$ex $refExOut` |
&& results=`testoutput_run $dir $pfxdir.$ex $refExOut` |
|
fres=`formatresults $dir.$ex ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` |
|
1700 |
echo 1>&2 |
echo 1>&2 |
1701 |
|
|
1702 |
|
fres=`formatresults $dir.$ex ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` |
1703 |
echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /</' >> $SUMMARY |
echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /</' >> $SUMMARY |
1704 |
echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" |
echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" |
1705 |
if test "x$POSTCLEAN" = x2 ; then |
if test "x$POSTCLEAN" = x2 ; then |
1714 |
# sed -n '/^# executed by:/,+1 p' $dir/$builddir/Makefile >> $DRESULTS/genmake_state |
# sed -n '/^# executed by:/,+1 p' $dir/$builddir/Makefile >> $DRESULTS/genmake_state |
1715 |
# bsd-sed cannot do the above code |
# bsd-sed cannot do the above code |
1716 |
cat $dir/$builddir/Makefile | \ |
cat $dir/$builddir/Makefile | \ |
1717 |
sed -n '/^# executed by:/{N |
sed -n '/^# executed by:/{N |
1718 |
p |
p |
1719 |
}' >> $DRESULTS/genmake_state |
}' >> $DRESULTS/genmake_state |
1720 |
echo " $mkOpt" >> $DRESULTS/genmake_state |
echo " $mkOpt" >> $DRESULTS/genmake_state |
1721 |
if test "x$OPTFILE" = xNONE ; then |
if test "x$OPTFILE" = xNONE ; then |
1722 |
eval $mkOpt |
eval $mkOpt |
1745 |
>> $DRESULTS/genmake_state |
>> $DRESULTS/genmake_state |
1746 |
rm -f tmp.tr_log |
rm -f tmp.tr_log |
1747 |
fi |
fi |
1748 |
echo -n "from '$gmkLog', " >> $DRESULTS/genmake_state |
fi |
1749 |
echo "get NETCDF & LAPACK settings:" >> $DRESULTS/genmake_state |
gmkLog=$dir/$builddir/genmake_state |
1750 |
sed -n '/set HAVE_NETCDF=/p' $gmkLog >> $DRESULTS/genmake_state |
if test -r $gmkLog ; then |
1751 |
sed -n '/set HAVE_LAPACK=/p' $gmkLog >> $DRESULTS/genmake_state |
echo -n "from '$gmkLog', " >> $DRESULTS/genmake_state |
1752 |
|
echo "get genmake settings:" >> $DRESULTS/genmake_state |
1753 |
|
sed -n '/^HAVE_/p' $gmkLog | sed 's/^./ &/' \ |
1754 |
|
>> $DRESULTS/genmake_state |
1755 |
fi |
fi |
1756 |
fi |
fi |
1757 |
fi |
fi |