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.
trusting_func.sh in branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST – NEMO

source: branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh @ 5383

Last change on this file since 5383 was 5383, checked in by nicolasmartin, 9 years ago

dev_r5092_CNRS_SETTE Add rebuild tool for comparing among other improvments & bugs

  • Property eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Rev URL
File size: 3.7 KB
Line 
1#!/bin/bash
2
3
4diff_nc() {
5    stat=100; file1=$1; file2=$2
6
7    cdo diffv $file1 $file2 > out_tmp
8    ( [ $? -ne 0 ] && stat=100 ) || stat=$( grep -m 1 'records differ' out_tmp | awk -Fof '{print $1}' )
9    [ -f out_tmp ] && rm out_tmp
10
11    return $stat
12} 
13
14diff_restart() {
15    last_time_step=$( cat ${REFE_DIR}/time.step )
16    result_final=0
17
18    echo 'Last time step: '${last_time_step}
19
20    for file in restart restart_ice restart_trc; do
21   printf ${TEST_DIR}'/*'${last_time_step}'_'${file}'.nc: '
22
23   if [ $( find ${TEST_DIR} -name *${last_time_step}_$file.nc ) ]; then
24       ${NEMO_RBDN} -t $NPROC ${TEST_CONF} $(( ${last_time_step} + 1 ))
25       result=$( diff_nc ${TEST_DIR}/*${last_time_step}_$file.nc ${REFE_DIR}/*${last_time_step}_$file.nc )
26       printf "cdo diffv $result\n"
27       (( result_final = result_final + result ))
28   else
29       printf "no restart files found for comparison\n"
30   fi
31
32    done
33
34    return ${result_final}
35}
36
37get_rel() {
38    for rel in $CDO $COMPILER $MPI $NETCDF; do
39                                arch_rel=$( echo $LOADEDMODULES | sed "s#.*$rel/\([^:]*\).*#\1#" )
40   [ -z "${arch_rel}" ] && arch_rel=$( echo $PATH          | sed "s#.*$rel/\([^/]*\).*#\1#" )
41#    [ $( echo $rel | grep $COMPILER ) ] && arch_rel=$( $rel --version | grep -m1 -o ' [0-9.]* ' >/dev/null )
42   echo $rel ${arch_rel} >> model.log
43    done
44}
45
46get_rev() {
47    rev=0
48
49    for dir in ${DIR_XIOS}  ${NEMO_ARCH} ${NEMO_CONF} ${NEMO_ENGI} ${NEMO_EIOI} \
50          ${NEMO_EFCM} ${NEMO_TRUS} ${NEMO_TCMP} ${NEMO_TRBD}               ; do
51   # For time being, just get revision number from XIOS
52   [ $dir == ${DIR_XIOS} ] && echo 'XIOS '$( svn info $dir | awk '(NR == 9) {print $NF}' ) >> model.log && continue
53   ${SVN_CMD} $dir
54   rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' )
55   (( ${rev_loc} >= $rev )) && rev=${rev_loc}
56    done
57
58    echo 'NEMO '$rev >> model.log
59}
60
61mesg_make() {
62    paste -d ';' mesg_*_${CFG_USER}_${CFG_ARCH}.txt > trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt
63    cat trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt
64}
65
66mesg_publish() {
67 
68if [ $PUBLISH -eq 1 ]; then
69
70  if [ -f ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt ] ; then
71      tail -1 trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt >> ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt
72  else
73      cp      trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt    ${TEST_DIR}/trusting_${CFG_USER}_${CFG_ARCH}.txt
74  fi
75
76  cp trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt ${TEST_DIR}
77#  chmod o+r ${TEST_DIR}/trusting_${DATE_STR}_${CFG_USER}_${CFG_ARCH}.txt
78 
79#  rm -rf              ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF}
80#  cp -alf ${TEST_DIR} ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF}
81#  chmod o+rX          ${DIR_WORK}/../../dods/public/${LOGNAME}/trusting/${CONF_REF}
82 
83  # Send mail only when FAILED
84  if [[ $( grep 'FAILED' mesg_02_status_${CFG_USER}_${CFG_ARCH}.txt ) && ! -z $MAIL ]]; then
85      cat << END_MAIL > ${TEST_DIR}/trusting.mail
86XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
87Dear $USER,
88
89The trusting sequence for ${CONF_REF} has failed.
90Please consult http://webservices.ipsl.fr/trusting/
91
92Failed at step: `tail -n 1 mesg_03_step_${CFG_USER}_${CFG_ARCH}.txt`
93Directory : ${TEST_DIR}
94
95XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
96
97END_MAIL
98      mail -s "[trusting ${CONF_REF}] FAILED" $MAIL < ${TEST_DIR}/trusting.mail
99  fi
100
101fi
102}
103
104get_out() {
105   cd ${TEST_DIR}
106        mesg_make; mesg_publish
107
108        # Add tar saved into {DIR_STOR}
109   find ${DIR_SCRA}/trusting/${CONF_REF}/* -prune -mtime +7 -exec /bin/rm -rf {} \; > /dev/null 2>&1
110        [ -f ${DIR_STOR}/${CONF_REF}.tar ] && \rm ${DIR_STOR}/${CONF_REF}.tar
111        tar -cf ${DIR_STOR}/${CONF_REF}.tar .
112
113        exit
114}
Note: See TracBrowser for help on using the repository browser.