- Timestamp:
- 2015-05-21T20:28:58+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/SETTE/trusting.sh
r5283 r5286 1 1 #!/bin/bash 2 # 3 # Author: Patrick Brockmann 4 # Contact: Patrick.Brockmann@cea.fr 5 # History: 6 # Modification: Nicolas-thierry.Martin@locean-ipsl.upmc.fr 7 # 2 8 3 9 4 10 # Set defaults 5 11 DEBUG=0; PUBLISH=0; status='OK' 6 NEMO_BRAN=trunk; # dev_r5092_CNRS_SETTE dev_v3_4_STABLE_20127 ARCH= # arch-${ARCH}.env to be sourced in ${DIR_XIOS} or leave blank without file8 CONF_REFE=ORCA2_LIM_PISCES9 CONF_TEST=${CONF_REFE}_trust10 #COMPILER=ifort gfortran f95 f90 pgfortran pgf95 pgf90 mpifort mpif90 mpiifort11 #MPI=bullxmpi openmpi mpich intel mpxlf12 12 13 13 # Get options && replace some initials settings 14 14 while [ $# -ne 0 ]; do 15 15 case $1 in 16 -b|--branch ) NEMO_BRAN=$2 ; shift 2;; 17 -d|--debug ) set -vx; DEBUG=1 ; shift ;; 18 -h|--help|-help) cat trusting_help.txt; exit ;; 19 -m|--machine ) ARCH=$2 ; shift 2;; 20 -n|--newconf ) CONF_TEST=$2 ; shift 2;; 21 -r|--refconf ) CONF_REFE=$2 ; shift 2;; 22 -p|--publish ) PUBLISH=1 ; shift ;; 23 *) break ;; 16 -b|--branch ) NEMO_BRAN=$2 ; shift 2;; -d|--debug ) set -vx; DEBUG=1 ; shift ;; 17 -e|--email ) MAIL=$2 ; shift 2;; -j|--job ) NPROC=$2 ; shift 2;; 18 -h|--help ) cat trusting_help.txt; exit ;; -m|--machine) ARCH=$2 ; shift 2;; 19 -n|--newconf) CONF_TEST=$2 ; shift 2;; -r|--refconf) CONF_REFE=$2 ; shift 2;; 20 -t|--time ) TIME_LIMI=$2 ; shift 2;; -p|--publish) PUBLISH=1 ; shift ;; 21 *) cat trusting_help.txt; exit ;; 24 22 esac 25 23 done 26 export ARCH CONF_REFE CONF_TEST DEBUG NEMO_BRAN PUBLISH27 24 28 # [ $# -ne 1 ] && { ./trusting.sh -h && exit; }29 # suspend debug mode (too verbose) 30 #[ $debug -eq 1 ] && set +vx 25 # Set super-computer & user environment 26 [[ ! -z "$ARCH" && . trusting.env ]] || { ./trusting.sh -h && exit; } 27 export DEBUG PUBLISH 31 28 32 29 # Initialization 33 30 #============================================= 34 31 35 . trusting.env36 32 echo ${DIR_TEST} 37 33 mkdir -p ${DIR_TEST} ${DIR_REFE} 38 34 cd ${DIR_TEST} 39 datestr1=$( LC_ALL=C date -d"$DATE STR" +%Y-%m-%dT%H:%M )35 datestr1=$( LC_ALL=C date -d"$DATE_STR" +%Y-%m-%dT%H:%M ) 40 36 printf "Date\n%s\n" $datestr1 > mesg_01_date.txt 41 37 … … 48 44 # 49 45 #============================================= 50 for rel in $C OMPILER $MPI_NAME $NETCDFF; do46 for rel in $CDO $COMPILER $MPI $NETCDF; do 51 47 printf "Step......................\nGet $rel release\n" > mesg_03_step.txt 52 arch_rel=$( echo $LOADEDMODULES | sed "s#.*:$rel/\([^:]*\).*#\1#" )53 [ -z "${arch_rel}" ] && arch_rel=$( echo $PATH | sed "s#.*$rel/\([^/]*\).*#\1#")54 [ $ rel == $COMPILER ] && arch_rel=$( $FC--version | grep -m1 -o ' [0-9.]* ' )48 arch_rel=$( echo $LOADEDMODULES | sed "s#.*:$rel/\([^:]*\).*#\1#" ) 49 [ -z "${arch_rel}" ] && arch_rel=$( echo $PATH | sed "s#.*$rel/\([^/]*\).*#\1#" ) 50 [ $( echo $rel | grep "$CDO\|$COMPILER" ) ] && arch_rel=$( $rel --version | grep -m1 -o ' [0-9.]* ' ) 55 51 echo $rel ${arch_rel} >> model.log 56 52 done … … 64 60 printf "Step......................\nCheckout XIOS, FCM-make(/EXTERNAL/fcm), NEMO engines (/NEMO) & configuration (/CONFIG)\n" > mesg_03_step.txt 65 61 rev=0 66 for dir in ${DIR_XIOS} ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_EFCM} ${NEMO_ENGI} ${NEMO_IPSL} ${NEMO_ TCMP}; do62 for dir in ${DIR_XIOS} ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_EFCM} ${NEMO_ENGI} ${NEMO_IPSL} ${NEMO_SETT} ${NEMO_TCMP}; do 67 63 svn up $dir 68 64 rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) … … 76 72 printf "Step......................\nCompilation NEMO configuration %s\n" ${CONF_REF} > mesg_03_step.txt 77 73 cd ${NEMO_CONF} 74 . ${ARCH_ENV} # Sourcing architecture environment 78 75 #[ -d ${CONF_TEST} ] && ./makenemo -n ${CONF_TEST} clean 79 ./makenemo -n ${CONF_TEST} -r ${CONF_REFE} -m $ARCH -j 16#> /dev/null 2>&176 ./makenemo -n ${CONF_TEST} -r ${CONF_REFE} -m $ARCH -j $NPROC #> /dev/null 2>&1 80 77 [ ! -e ${CONF_TEST}/BLD/bin/nemo.exe ] && getout 81 78 … … 85 82 cd ${DIR_TEST} 86 83 find ${NEMO_CONF}/${CONF_TEST}/EXP00 -regex '.*\(cfg\|opa\|ref\|xml\)' -exec cp {} . \; 87 cp ${NEMO_FORC}/${FORC_TAR} . && tar -tvf ${FORC_TAR} > inputs_list.txt && tar -vxf ${FORC_TAR} 88 [ $? -ne 0 ] && getout 89 gunzip *.gz 84 85 if [ ! -z "${NEMO_FORC}" ]; then 86 cp ${NEMO_FORC}/${FORC_TAR} . 87 tar -tvf ${FORC_TAR} > inputs_list.txt && tar -vxf ${FORC_TAR} 88 [ $? -ne 0 ] && getout 89 gunzip *.gz 90 else 91 touch inputs_list.txt 92 fi 90 93 91 94 … … 96 99 [ $? -ne 0 ] && getout 97 100 98 output_test=ocean.output ; output_refe=${DIR_REFE}/ocean.output 99 solver_test=solver.stat ; solver_refe=${DIR_REFE}/solver.stat 100 tracer_test=tracer.stat ; tracer_refe=${DIR_REFE}/tracer.stat 101 inputs_test=inputs_list.txt; inputs_refe=${DIR_REFE}/inputs_list.txt 102 103 #time_elapsed=0; time_limit=10800; time_increment=300 104 time_elapsed=0; time_limit=1080; time_increment=30 101 time_elapsed=0; time_increment=300 105 102 sleep ${time_increment} 106 while [[ $( ${JOB_LIST} | grep $job_num ) && ${time_elapsed} -lt ${time_limit} ]] ; do 107 #while [[ ! -f ${solver_test} && ${time_elapsed} -lt ${time_limit} ]] ; do 108 printf "\n####################################################" >> ${DIR_TEST}/mpp.log 109 ${JOB_VIEW} $job_num >> mpp.log 110 # ${JOB_VIEW} $id >> mpp.log 103 while [[ $( ${JOB_LIST} | grep $job_num ) && ${time_elapsed} -lt ${TIME_LIMI} ]] ; do 104 printf "\n####################################################" >> computation.log 105 ${JOB_VIEW} $job_num >> computation.log 111 106 sleep ${time_increment} 112 let time_elapsed+= time_increment107 let time_elapsed+=${time_increment} 113 108 done 114 109 115 110 116 111 #--------------------------------------------- 117 printf "Step......................\nTest if solver exists\n" > mesg_03_step.txt 118 #if [ ! -f ${solver_test} ]; then 119 # grep 'E R R O R' ocean.output >> mesg_11_comments.txt 120 # sed 's/^/Time step :/' time.step >> mesg_11_comments.txt 121 # getout 122 #fi 112 printf "Step......................\nTest if ASCII output files exist\n" > mesg_03_step.txt 113 if [ ! -f ${output_test} ]; then 114 115 getout 116 else if [ ] 117 118 grep 'E R R O R' ocean.output >> mesg_11_comments.txt 119 sed 's/^/Time step :/' time.step >> mesg_11_comments.txt 120 fi 123 121 124 122 125 123 #--------------------------------------------- 126 printf "Step......................\nTest solvers difference\n" > mesg_03_step.txt 127 diff ${output_refe} ${output_test} 128 [ $? -ne 0 ] && status='FAILED' 129 diff ${solver_refe} ${solver_test} 130 [ $? -ne 0 ] && status='FAILED' 131 diff ${tracer_refe} ${tracer_test} 124 printf "Step......................\nTest ASCII output files difference\n" > mesg_03_step.txt 125 for file in ocean.output solver.stat tracer.stat; do 126 diff $file ${DIR_REFE}/$file 127 [ $? -ne 0 ] && status='FAILED' 128 done 129 130 131 #--------------------------------------------- 132 printf "Step......................\nTest last restart files difference\n" > mesg_03_step.txt 133 diff_trusting 2>/dev/null 132 134 [ $? -ne 0 ] && status='FAILED' 133 135 134 136 135 137 #--------------------------------------------- 136 printf "Step......................\nTest outputs difference\n" > mesg_03_step.txt 137 #diff_trusting 2>/dev/null 138 #[ $? -ne 0 ] && status='FAILED' 139 140 141 #--------------------------------------------- 142 printf "Comments\n\n" > mesg_11_comments.txt 138 echo 'Comments' > mesg_11_comments.txt 143 139 grep 'W A R N I N G:' ocean.output >> mesg_11_comments.txt 144 140 … … 148 144 printf "Step......................\nGet Real CPU time\n" > mesg_03_step.txt 149 145 real_cpu_time=$( ${JOB_VIEW} $job_num | awk 'END{print $9}') 150 [ $? -ne 0 ] && getout151 146 printf "Real CPU time\n%s\n" ${real_cpu_time} > mesg_08_realcputime.txt 152 147 else 153 148 printf "Step......................\nTest InputFiles difference\n" > mesg_03_step.txt 154 diff ${inputs_refe} ${inputs_test}155 { [ $? -ne 0 ] && printf "InputFiles\n%s\n" "Different" > mesg_09_inputfiles.txt } || printf "InputFiles\n%s\n" "Same" > mesg_09_inputfiles.txt156 getout149 diff inputs_list.txt ${DIR_REFE}/inputs_list.txt 150 [ $? -ne 0 ] && getout 151 [[ $? -ne 0 && printf "InputFiles\n%s\n" "Different" > mesg_09_inputfiles.txt ]] || printf "InputFiles\n%s\n" "Same" > mesg_09_inputfiles.txt 157 152 fi 158 153
Note: See TracChangeset
for help on using the changeset viewer.