New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
assessment.ksh in trunk/NVTK/INSTALL/JOBS – NEMO

source: trunk/NVTK/INSTALL/JOBS/assessment.ksh @ 1155

Last change on this file since 1155 was 1155, checked in by ctlod, 16 years ago

add svn Id

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 24.0 KB
RevLine 
[695]1#!/bin/ksh
[1154]2# $Id$
[695]3######################################################
4# Original : C. Talandier for ESOPA
5# Contact  : opatlod@locean-ipsl.upmc.fr
6#
7# It is automatically launched (by the cron_jobs.ksh
8# script) when all runs (mon, mpi, (omp)) for a given
9# configuration are finished
10#
11# INPUT ARGS: 1 + 1 optional
12#     - CONF: configuration name (ORCA2_LIM, GYRE ..)
13#     - TODO: (optional) Arg=yes or empty to build
14#             output files including timing results.
15#             Specific to Zahir
16#
17# WORK: It aims to (for each standard configuration) :
18#
19#    I. Check Executable Memory size
20#       - from memory_size.txt output file
21#      *- compare it to a reference version
22#
23#   II. Check CPU time used (if specified)
24#       - from timing output files
25#      *- compare it to a reference version
26#
27#  III. Check the reproductibility between mon & mpi runs
28#       - making diff of solver.stat output files
29#
30#   IV. Check the restartability for mon & mpi runs
31#       - making diff of solver.stat output files
32#
33#    V.*Compare current results to a reference one
34#       
35#   VI. Send the assessment file "endjob.txt" using
36#       user's e-mail
37#       
38# * this step is performed only if a reference tag
39#   is passing through the specifs.txt file
[1140]40#   See the Makefile under ./config/NVTK directory
[695]41#
42# It is based on the directories architecture below :
43#
44#         NEMO_VALID/WNAME_CONFIG/
45#                    |-- mon            --> MONO run
46#                    |   |-- 1_SHORT
47#                    |   |-- 2_SHORT
48#                    |   |-- LONG
49#                    |   `-- GTIME
50#                    |-- mpi            --> MPI run
51#                    |   |-- 1_SHORT
52#                    |   |-- 2_SHORT
53#                    |   |-- LONG
54#                    |   `-- GTIME
55#                    `-- omp            --> Open-MP run
56#                        |-- 1_SHORT
57#                        |-- 2_SHORT
58#                        |-- LONG
59#                        `-- GTIME
60#
61###########################################################
62#set -xv
63###########################################################
64CONF=$1
65TODO=$2
66TARGET=osxxlf
67VERSION=$( ( awk '/test=/ { print $2 }' specifs.txt ) )
68LRTYPE="$( ( awk '/runs=/ { printf  "%s %s %s", $2 , $3 , $4}' specifs.txt ) )"
69VTIME=$( ( awk '/time=/ { print $2 }' specifs.txt ) )
70REF_TAG=$( (awk '/tagname=/ {print $2}' specifs.txt) )
71TITLE="NEMO VALIDATION ${VERSION} : $CONF on $TARGET"
72EMAIL='ctlod@locean-ipsl.upmc.fr'
73
74\rm endjob.txt 2> /dev/null
75touch endjob.txt
76
77###########################################################
78# checkfile() is a local function to check if a file exist
79# 2 arguments:
80#    - zf2check : file name to check
81#    - zoutfile : output file name to print results
82#    - zwork    : kind of prints to perform
83#    - zreprint : (optional) to avoid printing twice a message
84###########################################################
85################ Begin checkfile function #################
86function checkfile
87{
88# name of the file to check
89zf2check=$1
90# print output file name
91zoutfile=$2
92# white space prints
93zworkt=$3
94# Print a message only once
95zreprint=$4
96
97#set -x
98
99test -n "${zreprint}"
100zrep=$?
101
102
103genf=$( basename ${zf2check} )
104
105case "${zworkt}" in
106      'NORM' )  blnk='       ' ;;
107      'DIFF' )  blnk=' '  ;;
108esac
109fmes4=" - file ${zf2check} doesn't exist "
110
111# Check file exists
112if [ -a ${zf2check} ] ; then
113    fmes1=" List ${genf} files and check date creation:   "
114    fmes2=" `ls -l ${zf2check}`           "
115    fmes3=" - file ${zf2check} is empty  "
116    [ ${zrep} == 0 ] && echo "${blnk}${fmes1}"  >> ${zoutfile}
117
118   # Check file is not empty
119   if [ -s ${zf2check} ] ; then
120       [ ${zoutfile} ] && echo "${blnk}${fmes2}" >> ${zoutfile}
121       xist=0 ; return ${xist}
122   else
123       [ ${zoutfile} ] &&  echo "${blnk}${fmes3}" >> ${zoutfile}
124       xist=1 ; return ${xist}
125   fi
126else
127   [ ${zoutfile} ] && echo "${blnk}${fmes4}" >> ${zoutfile}
128   xist=1 ; return ${xist}
129fi
130return
131}
132############### End checkfile function ###############
133######################################################
134
135# Get the name of the present script
136nscript=$( (basename $0) )
137
138###########################################################
139# mak_diff_file() is a local function which performs diff
140# on some files and print messages in the endjob.txt file
141# 7 input arguments:
142#    - zfex    : (0/1) (make/do not make) diff (files doesn't exist)
143#    - zfile1  : first input file name
144#    - zfile2  : second input file name
145#    - zruntype: run type (mon, mpi, omp)
146#    - zstream : stream of the run (long, stream_1, stream_2)
147#    - ztag    : the tag name to which are compared files
148#    - zkind   : kind of the check (repro/resta)
149###############################################################
150################ Begin mak_diff_file function #################
151function mak_diff_file
152{
153#
154# help_diff() To print help
155#
156function help_diff
157{
158  echo "Usage: ${nscript} [-x] [-a] [-b] [-r] [-s] [-t] [-k]"
159  echo "Options: These are optional argument"
160  echo " -x : (0/1) (make/do not make) diff "
161  echo " -a : first input file name"
162  echo " -b : second input file name"
163  echo " -r : run type (mon, mpi, omp)"
164  echo " -s : stream of the run (long, stream_1, stream_2)"
165  echo " -t : tag name to which are compared files"
166  echo " -k : kind of the check (repro/resta)" 
167  echo " their values are not taken)"
168  exit 1
169}
170
171##set -xv
172
173# Initialization
174zfex=1
175zfile1=
176zfile2=
177zruntype=
178zstream=
179ztag=
180zkind=none
181
182# Get arguments
183while getopts x:a:b:r:s:t:k: opt
184do
185  case "$opt" in
186    x) zfex="$OPTARG";;
187    a) zfile1="$OPTARG";;
188    b) zfile2="$OPTARG";;
189    r) zruntype="$OPTARG";;
190    s) zstream="$OPTARG";;
191    t) ztag="$OPTARG";;
192    k) zkind="$OPTARG";;
193    *) help_diff;;
194  esac
195done
196
197zgenf=$( basename ${zfile1} )
198zgenftrc=$( basename ${zfile1%.*} )
199
200case "$zkind" in
201  none ) 
202      zmesg1="                   Current run                                                     ${ztag} run   "
203      zmesg2="                   -----------                                                     --------------"
204      zmesg_NOK="        ${zstream} ${zgenf} is NOT identical to the version ${ztag} one"
205      zmesg_OK="        ${zstream} ${zgenf} IS IDENTICAL to the version ${ztag} one  "
206      zmesg_wht="        NO comparison between current ${zstream} and the version ${ztag} ${zgenf} "
207      bnam='cvref_'${zgenftrc}_${zstream}_${zruntype} ;;
208  repro ) 
209      zmesg1="                   mon run                                                         ${zruntype} run      "
210      zmesg2="                   -------                                                         -------      "
211      zmesg_NOK="        NO NO NO NO NO NO for the current version"
212      zmesg_OK="        YES YES YES YES YES YES YES YES for the current version "
213      zmesg_wht="        NO CONCLUSION !!!!!  "
214      bnam=${zkind}_${zgenftrc} ;;
215  resta ) 
216      zmesg1="                   LONG Stream                                                     SHORT Streams"
217      zmesg2="                   -----------                                                     -------------"
218      zmesg_NOK="        NO NO NO NO NO NO for the current version i.e. LONG stream != ( 1_SHORT + 2_SHORT ) streams "
219      zmesg_OK="        YES YES YES YES YES YES YES YES for the current version i.e. LONG stream = ( 1_SHORT + 2_SHORT ) streams "
220      zmesg_wht="        NO CONCLUSION !!!!!! "
221      bnam=${zkind}_${zgenftrc} ;;
222esac
223
224
225if [ ${zfex} == 0 ] ;  then
226    \rm ${bnam}.txt 2> /dev/null
227    echo "                                    Make difference between ${zgenf} files                       "  > ${bnam}.txt
228    echo "                                            ${zstream} ${zruntype} run                           " >> ${bnam}.txt
229    echo "${zmesg1}"                                                                                         >> ${bnam}.txt
230    echo "${zmesg2}"                                                                                         >> ${bnam}.txt
231    sdiff    ${zfile1} ${zfile2} >>  ${bnam}.txt
232    sdiff -s ${zfile1} ${zfile2} >>  ${bnam}_dd.txt
233
234    #---------
235    if [ ${zgenf} = 'ocean.output' ] ; then
236        echo "                                                                                                 " >> ${zstream}_head.txt
237        echo "                                    Make difference between ${zgenf} files                       "  > ${zstream}_head.txt
238        echo "                                            ${zstream} ${zruntype} run                           " >> ${zstream}_head.txt
239        echo "                   Current run                                                     ${ztag} run   " >> ${zstream}_head.txt
240        echo "                   -----------                                                     --------------" >> ${zstream}_head.txt
241        echo "                                                                                                 " >> ${zstream}_head.txt
242        zfout=${bnam}_dd.txt
243        zspmes=" See ${bnam}.txt file for full difference"
244    else
245        touch ${zstream}_head.txt
246        zfout=${bnam}.txt
247        zspmes=""
248    fi
249    #---------
250    if [ -s ${bnam}_dd.txt ] ; then
251    # Differences exist between solver.stat or ocean.output files
252       echo "                             " >> endjob.txt
253       echo "${zmesg_NOK}"                  >> endjob.txt
254       echo "           ${zspmes}         " >> endjob.txt
255       echo "                             " >> endjob.txt
256       cat ${zstream}_head.txt ${zfout}     >> endjob.txt
257       echo "                             " >> endjob.txt
258       echo "                             " >> endjob.txt
259    else
260       # No differences exist between solver.stat or ocean.output files
261       echo "                             " >> endjob.txt
262       echo "${zmesg_OK}"                   >> endjob.txt
263       echo "                             " >> endjob.txt
264    fi
265
266    \rm *_dd* *_head.txt 2> /dev/null
267
268else
269       # It is not possible to conclude because files are missing or empty
270       echo "                             " >> endjob.txt
271       echo "${zmesg_wht}"                  >> endjob.txt
272       echo "                             " >> endjob.txt
273fi
274
275return
276
277}
278############### End mak_diff_file function ####################
279###############################################################
280
281###########################################################
282# concat_perf() is a local function to gather performances
283# files (perfs_runtype.txt_xxxx) build with the hpmcount
284# command on Zahir and standard(s) error output file(s)
285# runtypeCONFNAME_err
286# 1 argument:
287#    - zconf : configuration name
288#############################################################
289################ Begin concat_perf function #################
290function concat_perf
291{
292
293#set -x
294
295# name of the configuration
296zconf=$1
297
298# List of files to treat
299zcatfe[0]="mon/LONG/mon${zconf}_err"
300zcatfe[1]="mon/GTIME/mon${zconf}_err"
301zcatfe[2]="mpi/GTIME/mpi${zconf}_err"
302
303ind=0
304while [ ${ind} -lt 3 ] ; do
305
306       zpath=$( ( dirname ${zcatfe[${ind}]} ) )
307       zname=$( ( basename ${zcatfe[${ind}]} ) )
308       cd ${zpath}
309       cp ${zname} ${zname}_save
310       for kf in `ls perf*` ; do
311           cat ${kf} >> ${zname}
312       done
313       cd ../..
314       let ind=${ind}+1
315done
316
317return
318}
319############### End concat_perf function ###############
320########################################################
321
322
323# ###############################
324# 0. CURRENT VERSION NAME
325# ###############################
326echo " ############################                           "  > endjob.txt
327echo " CURRENT VERSION: $VERSION                              " >> endjob.txt
328echo " ############################                           " >> endjob.txt
329echo "                                                        " >> endjob.txt
330echo "                                                        " >> endjob.txt
331
332test -n "${TODO}"
333id2do=$?
334if [ ${id2do} == 0 -a ${TARGET} = 'aix' ] ; then concat_perf ${CONF} ; fi
335
336#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
337#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
338# ###############################
339# I. CHECK EXECUTABLE MEMORY SIZE
340# ###############################
341filecs='mon/LONG/memory_size.txt' ;  filers='mon/LONG/REF/memory_size.txt'
342filecm="mon/LONG/mon${CONF}_err"  ;  filerm="mon/LONG/REF/mon${CONF}_err"
343xfilecs=0  ; xfilecm=0 ; xfilers=0 ; xfilerm=0
344echo " ############################                           " >> endjob.txt
345echo " CHECK EXECUTABLE MEMORY SIZE                           " >> endjob.txt
346echo " ############################                           " >> endjob.txt
347echo "                                                        " >> endjob.txt
348#--------
349checkfile ${filecs} 'endjob.txt' DIFF yes ; xfilecs=$?
350checkfile ${filers} 'endjob.txt' DIFF     ; xfilers=$?
351checkfile ${filecm} 'endjob.txt' DIFF     ; xfilecm=$?
352checkfile ${filerm} 'endjob.txt' DIFF     ; xfilerm=$?
353
354# If current version files exist
355if [ ${xfilecs} == 0 ] ;  then
356
357    if [ ${REF_TAG} ] ; then 
358        ./MEM_size_${TARGET}.ksh -a ${xfilecm} -b ${xfilers} -d ${xfilerm} -c ${CONF} -o endjob.txt -t ${REF_TAG} 
359    else
360        ./MEM_size_${TARGET}.ksh -a ${xfilecm} -b ${xfilers} -d ${xfilerm} -c ${CONF} -o endjob.txt
361    fi
362
363else
364    echo "                                                    " >> endjob.txt
365    echo "   ---> NO memory size check                        " >> endjob.txt
366    echo "                                                    " >> endjob.txt
367fi
368#
369#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
370#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
371# #######################
372# II. CHECK CPU TIME USED
373# #######################
374if [ ${VTIME} = 'timing' ] ; then
375
376    echo "                                                        " >> endjob.txt
377    echo " ######################                                 " >> endjob.txt
378    echo " CHECK CPU TIME USED                                    " >> endjob.txt
379    echo " ######################                                 " >> endjob.txt
380    echo "                                                        " >> endjob.txt
381    #------
382
383    for runt in ${LRTYPE} ; do
384
385        echo "                                                    " >> endjob.txt
386        echo "   ---> Timing for the ${runt} run :                " >> endjob.txt
387        echo "        ----------------------------                " >> endjob.txt
388        echo "                                                    " >> endjob.txt
389
390        xfilecv=0 ; xfilerv=0
391
392        # Check that timing file for the ${runt} current version exist
393        filecv="${runt}/GTIME/${runt}${CONF}_err" 
394        checkfile ${filecv} 'endjob.txt' NORM yes ; xfilecv=$?
395
396        # Check that timing file for the ${runt} reference version exist
397        filerv="${runt}/GTIME/REF/${runt}${CONF}_err" 
398        checkfile ${filerv} 'endjob.txt' NORM ; xfilerv=$?
399        echo "                                                             " >> endjob.txt
400
401        if [ ${xfilecv} == 0 ] ; then
402            if [ ${REF_TAG} ] ; then 
403                ./CPU_time_${TARGET}.ksh -r ${runt} -a ${filecv} -b ${filerv} -c ${CONF} -o endjob.txt -x ${xfilerv} -t ${REF_TAG} 
404            else
405                ./CPU_time_${TARGET}.ksh -r ${runt} -a ${filecv} -b ${filerv} -c ${CONF} -o endjob.txt -x ${xfilerv}
406            fi
407        fi
408
409    done
410
411fi
412
413#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
414#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
415# ########################################################
416# III. CHECK REPRODUCTIBILITY: mon .vs. mpi & mon .vs .omp
417# ########################################################
418echo "                                                        " >> endjob.txt
419echo " ######################                                 " >> endjob.txt
420echo " CHECK REPRODUCTIBILITY                                 " >> endjob.txt
421echo " ######################                                 " >> endjob.txt
422echo "                                                        " >> endjob.txt
423#------
424for runt in ${LRTYPE} ; do
425
426    if [ ${runt} != 'mon' ] ; then
427        echo "                                                    " >> endjob.txt
428        echo "   ---> Reproductibility mon .vs. ${runt} ? :       " >> endjob.txt
429        echo "        -------------------------------------       " >> endjob.txt
430
431        filemon="mon/LONG/solver.stat" ;  filexxx="${runt}/LONG/solver.stat"
432        xfilemon=0
433
434        checkfile ${filemon} 'endjob.txt' NORM yes ; xfilemon=$?
435        checkfile ${filexxx} 'endjob.txt' NORM ; xfilemon=$?
436       
437        mak_diff_file -x ${xfilemon} -a ${filemon} -b ${filexxx} -r ${runt} -s LONG -k repro
[795]438       
439        if [ ${CONF} = 'GYRE_LOBSTER' ] ; then
440            echo "                                                    " >> endjob.txt
441            echo "   ---> BIO Reproductibility mon .vs. ${runt} ? :   " >> endjob.txt
442            echo "        -----------------------------------------   " >> endjob.txt
443
444            # check that ocean.output files exist
445            filemon="mon/LONG/ocean.output" ;  filexxx="${runt}/LONG/ocean.output"
446            xfilemon=0
447
448            checkfile ${filemon} 'endjob.txt' NORM yes ; xfilemon=$?
449            checkfile ${filexxx} 'endjob.txt' NORM ; xfilemon=$?
450           
451            # check that tracer.stat files have been built based on ocean.output ones
452            filemon="mon/LONG/tracer.stat" ;  filexxx="${runt}/LONG/tracer.stat"
453            xfilemon=0
454           
455            ./BIO_${TARGET}.ksh -a ${filemon} -b ${filexxx} -c ocean.output
456
457            checkfile ${filemon} 'endjob.txt' NORM yes ; xfilemon=$?
458            checkfile ${filexxx} 'endjob.txt' NORM ; xfilemon=$?
459           
460            mak_diff_file -x ${xfilemon} -a ${filemon} -b ${filexxx} -r ${runt} -s LONG -k repro
461        fi
[695]462    fi
463done
464
465#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
466#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
467# ##########################################
468# IV. CHECK RESTARTABILITY: mon mpi omp runs
469# ##########################################
470echo "                                                        " >> endjob.txt
471echo " ####################                                   " >> endjob.txt
472echo " CHECK RESTARTABILITY                                   " >> endjob.txt
473echo " ####################                                   " >> endjob.txt
474echo "                                                        " >> endjob.txt
475
476for runt in ${LRTYPE} ; do
477
478    echo "                                                    " >> endjob.txt
479    echo "   ---> ${runt} restartability ? :                  " >> endjob.txt
480    echo "        --------------------------                  " >> endjob.txt
481
482    file1="${runt}/1_SHORT/solver.stat" ;  file2="${runt}/2_SHORT/solver.stat" ; file3="${runt}/LONG/solver.stat"
483    xfile1=0
484    #-------
485    checkfile ${file1} 'endjob.txt' NORM yes ; xfile1=$?
486    checkfile ${file2} 'endjob.txt' NORM ; xfile1=$?
487    #
488    cat ${file1} ${file2}  > short_solver_${runt}.stat
489    mak_diff_file -x ${xfile1} -a ${file3} -b short_solver_${runt}.stat -r ${runt} -k resta
490    \rm short_solver_${runt}.stat
491   
492    #-------
[795]493
494    if [ ${CONF} = 'GYRE_LOBSTER' ] ; then
495        echo "                                                    " >> endjob.txt
496        echo "   ---> ${runt} BIO restartability ? :              " >> endjob.txt
497        echo "        ------------------------------              " >> endjob.txt
498
499       # check that ocean.output files exist
500        file1="${runt}/2_SHORT/ocean.output" ;  file2="${runt}/LONG/ocean.output"
501        xfile1=0
502
503        checkfile ${file1} 'endjob.txt' NORM yes ; xfile1=$?
504        checkfile ${file2} 'endjob.txt' NORM     ; xfile1=$?
505           
506        # check that tracer.stat files have been built based on ocean.output ones
507        file1="${runt}/2_SHORT/tracer.stat" ;  file2="${runt}/LONG/tracer.stat"
508        xfile1=0
509
510        ./BIO_${TARGET}.ksh -a ${file1} -b ${file2} -c ocean.output
511
512        checkfile ${file1} 'endjob.txt' NORM yes ; xfile1=$?
513        checkfile ${file2} 'endjob.txt' NORM     ; xfile1=$?
514        #
515        mak_diff_file -x ${xfile1} -a ${file2} -b ${file1} -r ${runt} -k resta
516
517    fi
518   
[695]519done
520
521#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
522#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
523# #######################################################
524# V. COMPARE CURRENT ${runt} RESULTS TO THE $REF_TAG ONES
525# #######################################################
526
527# This step is realised only if a reference tag ${REF_TAG} is specified
528if [ ${REF_TAG} ] ; then
529
530    echo "                                                        " >> endjob.txt
531    echo " ####################################################   " >> endjob.txt
532    echo " COMPARE CURRENT VERSION RESULTS TO THE $REF_TAG ONES   " >> endjob.txt
533    echo " ####################################################   " >> endjob.txt
534    echo "                                                        " >> endjob.txt
535
536    for runt in ${LRTYPE} ; do
537
538        echo "   -----------------------------------------------------------------------------" >> endjob.txt
539        echo "   ---> ${runt} results :  current version  |   ${REF_TAG} version  STREAM 1 & 2" >> endjob.txt
540        echo '                        solver.stat    .vs.    solver.stat         ' >> endjob.txt
541        echo '                        ocean.output   .vs.    ocean.output        ' >> endjob.txt
542
543        file1="${runt}/1_SHORT/solver.stat"          ;  file2="${runt}/2_SHORT/solver.stat"
544        filev1="${runt}/1_SHORT/REF/solver.stat"     ;  filev2="${runt}/2_SHORT/REF/solver.stat"
545        file_oc1="${runt}/1_SHORT/ocean.output"      ;  file_oc2="${runt}/2_SHORT/ocean.output"
546        file_roc1="${runt}/1_SHORT/REF/ocean.output" ;  file_roc2="${runt}/2_SHORT/REF/ocean.output"
547        xfilev1=0 ; xfilev2=0 ; xfile_oc1=0 ; xfile_oc2=0
548
549        echo "                                           " >> endjob.txt
550        echo "        STREAM 1 results :                 " >> endjob.txt
551        echo "        -----------------                  " >> endjob.txt
552        #
553        #-------
554        # solver.stat STREAM 1
555        checkfile ${file1}  'endjob.txt' NORM yes ; xfilev1=$?
556        checkfile ${filev1} 'endjob.txt' NORM ; xfilev1=$?
557   
558        mak_diff_file -x ${xfilev1} -a ${file1} -b ${filev1} -r ${runt} -s STREAM_1 -t ${REF_TAG}
559   
560        #-------
561        # ocean.output STREAM 1
562        checkfile ${file_oc1}  'endjob.txt' NORM yes ; xfile_oc1=$?
563        checkfile ${file_roc1} 'endjob.txt' NORM ; xfile_oc1=$?
564   
565        mak_diff_file -x ${xfile_oc1} -a ${file_oc1} -b ${file_roc1} -r ${runt} -s STREAM_1 -t ${REF_TAG}
566   
567        echo "                                           " >> endjob.txt
568        echo "        STREAM 2 results :                 " >> endjob.txt
569        echo "        -----------------                  " >> endjob.txt
570        #
571        #-------
572        # solver.stat STREAM 2
573        checkfile ${file2}  'endjob.txt' NORM yes ; xfilev2=$?
574        checkfile ${filev2} 'endjob.txt' NORM ; xfilev2=$?
575   
576        mak_diff_file -x ${xfilev2} -a ${file2} -b ${filev2} -r ${runt} -s STREAM_2 -t ${REF_TAG}
577   
578        #-------
579        # ocean.output STREAM 2
580        checkfile ${file_oc2}  'endjob.txt' NORM yes ; xfile_oc2=$?
581        checkfile ${file_roc2} 'endjob.txt' NORM ; xfile_oc2=$?
582   
583        mak_diff_file -x ${xfile_oc2} -a ${file_oc2} -b ${file_roc2} -r ${runt} -s STREAM_2 -t ${REF_TAG}
584   
585    done
586    #
587    #-------
588fi
589
590#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
591#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
592# ###############################################
593# VI. SEND THE ASSESSMENT FILE REPORT "endjob.txt"
594# ###############################################
595mail -s "$TITLE" ${EMAIL} < endjob.txt
Note: See TracBrowser for help on using the repository browser.