- Timestamp:
- 2015-06-15T17:49:41+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.sh
r5402 r5424 51 51 [ $( echo ${NEMO_VERS} | tr -d '[:alpha:][:punct:]' ) ] && SVN_CMD='svn update -r '$( echo ${NEMO_VERS} | tr -d '[:alpha:][:punct:]' ) 52 52 53 datestr1=$( LC_ALL=C date -d"${DATE_STR}" +%Y-%m-%dT%H:%M )54 53 . ./trusting_func.sh 55 54 55 56 # 57 #--------------------------------------------------- 56 58 mkdir -p ${TEST_DIR} ${REFE_DIR} 57 59 echo ${TEST_DIR} && cd ${TEST_DIR} 60 datestr1=$( LC_ALL=C date -d"${DATE_STR}" +%Y-%m-%dT%H:%M ) 58 61 printf "Date\n%s\n" $datestr1 > mesg_01_date_${CFG_USER}_${CFG_ARCH}.txt 59 62 # Only at end status will change to OK … … 65 68 printf "Step......................\nGet softwares release\n" | tee mesg_04_step_${CFG_USER}_${CFG_ARCH}.txt 66 69 . ${ARCH_ENV} > /dev/null # Sourcing architecture environment 67 get_ rel70 get_soft_rel 68 71 sed -n 2p model.log | sed 'i\Fortran compiler' | tee mesg_05_compiler_${CFG_USER}_${CFG_ARCH}.txt 69 72 sed -n 3p model.log | sed 'i\MPI libraries ' | tee mesg_06_mpi_${CFG_USER}_${CFG_ARCH}.txt … … 74 77 #--------------------------------------------------- 75 78 printf "Step......................\nGet NEMO SVN revision with: ${SVN_CMD}\n" | tee mesg_04_step_${CFG_USER}_${CFG_ARCH}.txt 76 get_ rev77 sed -n 6p model.log | sed 'i\NEMO revision' >mesg_02_nemo_${CFG_USER}_${CFG_ARCH}.txt79 get_nemo_rev 80 sed -n 6p model.log | sed 'i\NEMO revision' | tee mesg_02_nemo_${CFG_USER}_${CFG_ARCH}.txt 78 81 79 82 … … 83 86 cd ${NEMO_CONF} 84 87 #[ -d ${TEST_CONF} ] && ./makenemo -n ${TEST_CONF} clean 85 ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m $ARCH -j $NPROC > /dev/null 2>&188 ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m $ARCH -j $NPROC >& /dev/null 86 89 [ ! -e ${TEST_CONF}/BLD/bin/nemo.exe ] && get_out 87 90 … … 165 168 real_cpu_time=$( ${JOB_VIEW} ${job_num} | awk 'END{print $9}' ) 166 169 printf "Real CPU time\n%s\n" ${real_cpu_time} | tee mesg_08_realcputime_${CFG_USER}_${CFG_ARCH}.txt 170 printf "Input files\nNA" | tee mesg_09_inputfiles_${CFG_USER}_${CFG_ARCH}.txt 167 171 else 168 172 printf "Step......................\nTest input files difference\n" | tee mesg_04_step_${CFG_USER}_${CFG_ARCH}.txt -
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh
r5402 r5424 19 19 stat=100; file1=$1; file2=$2 20 20 21 cdodiffv $file1 $file2 > out_tmp21 $CDO diffv $file1 $file2 > out_tmp 22 22 ( [ $? -ne 0 ] && stat=100 ) || stat=$( grep -m 1 'records differ' out_tmp | awk -Fof '{print $1}' ) 23 23 [ -f out_tmp ] && rm out_tmp … … 27 27 28 28 diff_restart() { 29 result=0 29 30 last_time_step=$( cat ${REFE_DIR}/time.step | tr -d [:space:] ) 30 result_final=031 32 31 echo 'Last time step: '${last_time_step} 33 32 34 for file in restart restart_ice restart_trc; do 35 printf "${TEST_DIR}/*${last_time_step}_${file}*.nc: " 36 find ${TEST_DIR} -name *${last_time_step}_$file*.nc && exit 0 37 if [ $( find ${TEST_DIR} -regex .*${last_time_step}_$file[_0-9]*.nc ) ]; then 38 filebase=$( ls *${last_time_step}_$file*.nc | sed "s/^\(.*_\)0*$last_time_step.*/\1/" ) 39 ${NEMO_TRBD}/rebuild_nemo -t $NPROC ${filebase}_${last_time_step}_$file $(( ${last_time_step} + 1 )) #>/dev/null 40 result=$( diff_nc ${TEST_DIR}/*${last_time_step}_$file.nc ${REFE_DIR}/*${last_time_step}_$file.nc ) 41 printf "cdo diffv $result\n" 42 (( result_final = result_final + result )) 33 if [ $( find ${TEST_DIR} -name "*${last_time_step}_restart*.nc" -print -quit ) ]; then 34 file_base=$( find ${TEST_DIR} -name "*${last_time_step}_restart*.nc" -print -quit | \ 35 sed "s/^\(.*\)0*$last_time_step.*/\1/" ) 36 37 for file in restart restart_ice restart_trc; do 38 printf "${TEST_DIR}/*${last_time_step}_${file}*.nc: " 39 40 nb_dom=$( find ${TEST_DIR} -name "*${last_time_step}_${file}_[0-9]*.nc" | wc -l | awk '{print $1}' ) 41 if [ ${nb_dom} -gt 1 ]; then 42 ${NEMO_TRBD}/rebuild_nemo -t $NPROC ${file_base}${last_time_step}_$file ${nb_dom} >/dev/null 43 fi 44 45 # result=$( diff_nc ${TEST_DIR}/*${last_time_step}_$file.nc ${REFE_DIR}/*${last_time_step}_$file.nc ) 46 result=$( diff_nc ${file_base}${last_time_step}_$file.nc ${REFE_DIR}/*${last_time_step}_$file.nc ) 47 printf "$CDO diffv $result\n" 43 48 # \rm *${last_time_step}_${file}_[0-9]*.nc 44 else 45 printf "no restart files found for comparison\n" 46 fi 49 done 47 50 48 done49 50 return ${result_final}51 else 52 printf "no restart files found for comparison\n" 53 fi 51 54 } 52 55 53 get_ rel() {56 get_soft_rel() { 54 57 for rel in $CDO $COMPILER $MPI $NETCDF; do 55 58 arch_rel=$( echo $LOADEDMODULES | sed "s#.*$rel/\([^:]*\).*#\1#" ) … … 60 63 } 61 64 62 get_ rev() {65 get_nemo_rev() { 63 66 rev=0 64 67 65 # for dir in ${DIR_XIOS} ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_ENGI} ${NEMO_EIOI} \ 66 for dir in ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_ENGI} ${NEMO_EIOI} \ 68 for dir in ${DIR_XIOS} ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_ENGI} ${NEMO_EIOI} \ 67 69 ${NEMO_EFCM} ${NEMO_TRUS} ${NEMO_TCMP} ${NEMO_TRBD} ; do 68 70 # For time being, just get revision number from XIOS 69 #[ $dir == ${DIR_XIOS} ] && echo 'XIOS '$( svn info $dir | awk '(NR == 9) {print $NF}' ) >> model.log && continue71 [ $dir == ${DIR_XIOS} ] && echo 'XIOS '$( svn info $dir | awk '(NR == 9) {print $NF}' ) >> model.log && continue 70 72 ${SVN_CMD} $dir 71 73 rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) … … 85 87 if [ $PUBLISH -eq 1 ]; then 86 88 87 if [ -f ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt ] ; then 88 tail -1 trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt >> ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt 89 else 90 cp trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt 91 fi 89 if [ -f ${REFE_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt ]; then cmd='sed -n 2p'; else cmd='cat'; fi 92 90 93 cp trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt ${TEST_DIR} 94 # chmod o+r ${TEST_DIR}/trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt 95 96 # rm -rf ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF} 97 # cp -alf ${TEST_DIR} ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF} 98 # chmod o+rX ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF} 99 91 $cmd trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt >> ${REFE_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt 92 100 93 # Send mail only when FAILED 101 94 if [[ $( grep 'FAILED' mesg_02_status_${CFG_USER}_${CFG_ARCH}.txt ) && ! -z $MAIL ]]; then 102 cat << END_MAIL > ${TEST_DIR}/trusting.mail95 cat << END_MAIL > trusting.mail 103 96 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 104 97 Dear $USER, 105 98 106 The trusting sequence for ${CONF_REF} has failed. 107 Please consult http://webservices.ipsl.fr/trusting/ 108 109 Failed at step: `tail -n 1 mesg_03_step_${CFG_USER}_${CFG_ARCH}.txt` 99 The trusting sequence for ${CONF_REF} has failed at step: 100 `tail -n 1 mesg_03_step_${CFG_USER}_${CFG_ARCH}.txt` 110 101 Directory : ${TEST_DIR} 111 102 … … 113 104 114 105 END_MAIL 115 mail -s "[trusting ${CONF_REF}] FAILED" $MAIL < ${TEST_DIR}/trusting.mail 106 cat mesg_*_${CFG_USER}_${CFG_ARCH}.txt >> trusting.mail 107 mail -s "[trusting ${CONF_REF}] FAILED" $MAIL < trusting.mail 116 108 fi 117 109 … … 120 112 121 113 get_out() { 122 cd ${TEST_DIR} 123 mesg_make; mesg_publish 114 mesg_make; mesg_publish 124 115 125 # Add tar saved into {DIR_STOR} 126 find ${DIR_SCRA}/trusting/${CONF_REF}/* -prune -mtime +7 -exec /bin/rm -rf {} \; > /dev/null 2>&1 127 [ -f ${DIR_STOR}/${CONF_REF}.tar ] && \rm ${DIR_STOR}/${CONF_REF}.tar 128 tar -cf ${DIR_STOR}/${CONF_REF}.tar . 129 130 exit 116 # Save tested configuration if trusting failed 117 if [ $status == 'FAILED' ]; then 118 cd ${REFE_DIR} 119 tar -czf trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.tar.gz ${TEST_DIR}/* 120 cd - 121 fi 122 123 exit 1 131 124 }
Note: See TracChangeset
for help on using the changeset viewer.