Changeset 5681


Ignore:
Timestamp:
2015-08-11T19:52:33+02:00 (5 years ago)
Author:
nicolasmartin
Message:

dev_r5092_CNRS_SETTE Add cpp keys management & "cpp_*" file to compare in order to add ORCA2AGUL config to Trusting

Location:
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/romr005.cfg

    r5664 r5681  
    11# User configuration 
     2 
    23 
    34# Global Directories: 
     
    67DIR_STOR=$WORKDIR/NEMO/trusting_sav 
    78 
     9 
    810# NEMO overall configuration: 
    911[ -z "${NEMO_BRAN}" ] && NEMO_BRAN='trunk' 
     12NEMO_HOME=${DIR_WORK}/NEMO/${NEMO_BRAN}/NEMOGCM 
     13 
    1014[ -z "${REFE_CONF}" ] && REFE_CONF='ORCA2_LIM_PISCES' 
    1115[ -z "${TEST_CONF}" ] && TEST_CONF='O2LP_trust' 
     16KEYS_ADD=''; KEYS_DEL='' 
     17 
     18NEMO_FORC=${DIR_WORK}/NEMO/FORC 
    1219[ -z "${NEMO_TARF}" ] && NEMO_TARF='ORCA2_LIM_nemo_v3.6.tar' 
    13 NEMO_HOME=${DIR_WORK}/NEMO/${NEMO_BRAN}/NEMOGCM 
    14 NEMO_FORC=${DIR_WORK}/NEMO/FORC 
     20 
    1521 
    1622# Comparatives directories localization: 
     
    1824TEST_DIR=${DIR_SCRA}/${REFE_CONF}/${NEMO_BRAN}/trusting_${DATE} 
    1925 
     26 
    2027# External softs directories: 
    2128DIR_XIOS=${DIR_WORK}/XIOS/xios-1.0 
    2229#DIR_OASI=${DIR_WORK}/OASIS         
    2330 
     31 
    2432# Mailing list to inform of a failure, -p|--publish option required 
    2533[ -z "$EMAIL"] && EMAIL=ntmlod@locean-ipsl.upmc.fr 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/user_template.cfg

    r5644 r5681  
    1 # Copy to ./${CFG_USER}.cfg, fill in according to your installation 
     1## Copy to ./${CFG_USER}.cfg, fill in according to your installation 
    22 
    3 # User configuration 
     3## User configuration 
     4##------------------- 
    45 
    5 # NEMO overall configuration: 
    6 [ -z "${NEMO_BRAN}" ] && NEMO_BRAN=''        # ex: 'trunk', 'nemo_v3_6_STABLE', ... 
    7 [ -z "${CONF_REFE}" ] && REFE_CONF=''        # ex: 'ORCA2_LIM_PISCES', 'GYRE', ... 
    8 [ -z "${CONF_TEST}" ] && TEST_CONF=''        # ex: "${CONF_REFE}_trust", ... 
    9 [ -z "${NEMO_TARF}" ] && NEMO_TARF=''     # Archive name (ex: 'ORCA2_LIM_nemo_v3.6.tar', ...), let blank if not requested 
    10 NEMO_HOME=''                              # NEMOGCM directory for computation (./ARCH, ./CONFIG, ...) 
    11                                              # ex: ".../NEMO/${NEMO_BRAN}/NEMOGCM", ... 
    12 NEMO_FORC=''                              #     Directory with forcing archive from DODS/ESGF server to extract 
    13                                            # or    " "     ""  all inputs files to copy into ${TEST_DIR} 
    146 
    15 # Comparatives directories localization: 
    16 REFE_DIR=''                  # "Standard" folder where previous result files have been stored for comparison 
    17                                              # ex: ".../${CONF_REFE}/${NEMO_BRAN}" 
    18 TEST_DIR=''                  # Test       folder for computation 
    19                                              # ex: ".../${CONF_REFE}/${NEMO_BRAN}/trusting_${DATE}" 
     7## NEMO overall installation: 
     8[ -z "${NEMO_BRAN}" ] && NEMO_BRAN=''     ## NEMO SVN branch         to test 
     9                                             ## ex: 'trunk', 'nemo_v3_6_STABLE', ... 
     10NEMO_HOME=''                              ## NEMOGCM directory (includes ./ARCH, ./CONFIG, ...) 
     11                                             ## ex: ".../NEMO/${NEMO_BRAN}/NEMOGCM", ... 
     12## ${NEMO_BRAN} must be consistent with URL branch that have been checkout by SVN to build ${NEMO_HOME} 
    2013 
    21 # External softs directories: 
    22 DIR_XIOS=''                     # ex: '.../XIOS/xios-1.0' 
    23 #DIR_OASI=''                       # ex: '.../OASIS' 
     14### Reference/'Trusting' configuration 
     15[ -z "${REFE_CONF}" ] && REFE_CONF=''     ## Reference configuration to test 
     16                                             ## ex: 'ORCA2_LIM_PISCES', 'GYRE', ... 
     17[ -z "${TEST_CONF}" ] && TEST_CONF=''     ## Testing configuration name 
     18                                             ## ex: "${REFE_CONF}_trust", ... 
     19KEYS_ADD=''; KEYS_DEL=''                  ## CPP keys to add or remove from reference configuration 
     20                                             ## ex: "key_mpp_rep key_tide", ... 
     21[ "" == '' ] && KEYS_ADD='' && KEYS_DEL='' 
    2422 
    25 # Mailing list to inform of a failure (-p|--publish option required) 
     23### Inputs 
     24NEMO_FORC=''                              ## Directory with forcing archive from DODS/ESGF server to extract or 
     25                                          ##    " "     ""  all inputs files to copy into ${TEST_DIR} 
     26[ -z "${NEMO_TARF}" ] && NEMO_TARF=''     ## Archive inputs name, let blank if not requested 
     27                                             ## ex: 'ORCA2_LIM_nemo_v3.6.tar', 'AMM12_v3.6.tar', ... 
     28 
     29 
     30## Comparative directories path: 
     31REFE_DIR=''                  ## "Standard" folder where benchmark result files have been stored for comparison 
     32                                             ## ex: ".../${REFE_CONF}/${NEMO_BRAN}" 
     33TEST_DIR=''                  ## Test       folder for computation 
     34                                             ## ex: ".../${REFE_CONF}/${NEMO_BRAN}/trusting_${DATE}" 
     35 
     36 
     37## External softs directories: 
     38DIR_XIOS=''                     ## ex: '.../XIOS/xios-1.0' 
     39#DIR_OASI=''                       ## ex: '.../OASIS' 
     40 
     41 
     42## Mailing list to inform of a failure (-p|--publish option required) 
    2643[ -z "$EMAIL"] && EMAIL='' 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.env

    r5644 r5681  
    1111. ${NEMO_TRUS}/config/${NEMO_USER}.cfg 
    1212export NEMO_HOME NEMO_BRAN 
    13 export REFE_CONF TEST_CONF REFE_DIR TEST_DIR 
     13export REFE_CONF TEST_CONF KEYS_ADD KEYS_DEL 
     14export NEMO_FORC NEMO_TARF 
     15export REFE_DIR  TEST_DIR 
    1416export DIR_XIOS  #DIR_OASI 
    15 export NEMO_FORC NEMO_TARF 
    1617export EMAIL 
    1718 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.sh

    r5671 r5681  
    1111xios_full='--full'; stderr_redir='>&' ## DEBUG options 
    1212 
     13 
    1314## Get options for replacing some initials settings 
    1415##--------------------------------------------------- 
    1516while [ $# -ne 0 ]; do 
     17 
    1618    case $1 in 
    17    -a|--archive) NEMO_TARF=$2         ; shift 2;; -b|--branch ) NEMO_BRAN=$2         ; shift 2;; 
    18    -d|--debug  ) set -vx; DEBUG=1     ; shift  ;; -e|--email  ) EMAIL=$2             ; shift 2;; 
    19    -j|--job    ) NPROC=$2             ; shift 2;; -h|--help   ) cat trusting_help.txt; exit  1;; 
    20    -m|--machine) NEMO_HPCC=$2         ; shift 2;; -n|--newconf) TEST_CONF=$2         ; shift 2;; 
    21    -r|--refconf) REFE_CONF=$2         ; shift 2;; -t|--time   ) TIME_LIMI=$2         ; shift 2;; 
    22    -p|--publish) PUBLISH=1            ; shift  ;; -u|--user   ) NEMO_USER=$2         ; shift 2;; 
    23    -v|--version) NEMO_VERS=$2         ; shift 2;;            *) cat trusting_help.txt; exit  1;; 
     19   '-a'|'--archive') NEMO_TARF=$2    ; shift 2;; '-b'|'--branch ') NEMO_BRAN=$2         ; shift 2;; 
     20   '-d'|'--debug  ') set -vx; DEBUG=1; shift  ;; '-e'|'--email  ') EMAIL=$2             ; shift 2;; 
     21   '-j'|'--job    ') NPROC=$2        ; shift 2;; '-h'|'--help   ') cat trusting_help.txt; exit  1;; 
     22   '-m'|'--machine') NEMO_HPCC=$2    ; shift 2;; '-n'|'--newconf') TEST_CONF=$2         ; shift 2;; 
     23   '-r'|'--refconf') REFE_CONF=$2    ; shift 2;; '-t'|'--time   ') TIME_LIMI=$2         ; shift 2;; 
     24   '-p'|'--publish') PUBLISH=1       ; shift  ;; '-u'|'--user   ') NEMO_USER=$2         ; shift 2;; 
     25   '-v'|'--version') NEMO_VERS=$2    ; shift 2;; "*"             ) cat trusting_help.txt; exit  1;; 
    2426    esac 
     27 
    2528done 
     29 
    2630 
    2731## Initialization (super-computer & user environment) 
     
    4347. ./trusting_func.sh 
    4448 
     49 
    4550## Summary of trusting test context 
    4651##--------------------------------------------------- 
     
    5358Trusting SVN version: $( svn info | awk '(NR == 9) {print $NF}' )\n" 
    5459 
     60 
    5561## Making timestamped directory with messenger files 
    5662##--------------------------------------------------- 
     
    6066init_files && get_date 
    6167 
     68 
    6269## SVN action on XIOS & NEMO essentials directories 
    6370##--------------------------------------------------- 
    6471print_step 'SVN command on NEMO directories:' 
    6572get_nemo_rev 
     73 
    6674 
    6775## Check softwares versions (source arch environment) 
     
    7381cat model.log 
    7482 
     83 
    7584## XIOS compiling 
    7685##--------------------------------------------------- 
     
    7887cd ${DIR_XIOS} 
    7988[ $DEBUG -eq 1 ] && xios_full='' && stderr_redir='>' 
    80 eval ./make_xios ${xios_full} --arch ${NEMO_HPCC} --job $NPROC ${stderr_redir} /dev/null 
     89eval ./make_xios ${xios_full} --arch ${NEMO_HPCC} --job $NPROC \ 
     90    ${stderr_redir} /dev/null 
    8191[ ! -e ${DIR_XIOS}/lib/libxios.a ] && get_out 1 
    8292 
     
    8595print_step "Compile ${REFE_CONF} configuration" 
    8696cd ${NEMO_CONF} 
    87 [[ -d ${TEST_CONF} && $DEBUG -eq 0 ]] && eval ./makenemo -n ${TEST_CONF} clean_config > /dev/null <<EOF 
     97 
     98if [[ -d ${TEST_CONF} && $DEBUG -eq 0 ]]; then 
     99    eval ./makenemo -n ${TEST_CONF} clean_config > /dev/null <<EOF 
    88100y 
    89101EOF 
    90 eval ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m ${NEMO_HPCC} -j $NPROC ${stderr_redir} /dev/null 
     102fi 
     103 
     104eval ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m ${NEMO_HPCC} -j $NPROC \ 
     105                add_key ${KEYS_ADD} del_key ${KEYS_DEL}                   \ 
     106    ${stderr_redir} /dev/null 
    91107[ ! -e ${TEST_CONF}/BLD/bin/nemo.exe ] && get_out 2 
     108 
    92109 
    93110## Get namelists, xml & forcing files for running 
     
    100117[ $( find . -name '*.gz' -print -quit ) ] && find . -name '*.gz' -exec gunzip {} \; 
    101118 
     119 
    102120## Check input files in all cases 
    103121##--------------------------------------------------- 
    104122print_step 'Compare with standard input files list' 
    105123diff_inputs 
     124 
    106125 
    107126## Job submission & computing 
     
    114133print_step 'Job finished' 
    115134 
     135 
    116136## Job state 
    117137##--------------------------------------------------- 
    118138print_step 'Test job state' 
     139 
    119140if   [[ ! -e time.step || $( grep -q 'E R R O R' ocean.output ) ]]; then 
    120141    echo 'Error' 
     
    131152ST='OK' ## 'OK' by default 
    132153 
     154 
    133155## Inspect output text files 
    134156##--------------------------------------------------- 
     
    136158diff_results 
    137159 
     160 
    138161## Inspect output NetCDF files 
    139162##--------------------------------------------------- 
    140163print_step 'Test last restart files diff' 
    141164diff_restart 
    142 [ "$ST" == 'FAILED' ] && get_out 8 
     165[ $ST == 'FAILED' ] && get_out 8 
     166 
    143167 
    144168## Get comments (ocean.output & diff model.log) 
     
    146170comments 'W A R N I N G' 
    147171 
     172 
    148173## End 
    149174##--------------------------------------------------- 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh

    r5672 r5681  
    1313FILE_TRUS=trusting_${DATE}_$PATTERNAME.txt; FILE_ARCH=trusting_${DATE}_$PATTERNAME.tar.gz 
    1414 
     15 
    1516print_step() { printf "\nStep.....\n$1\n"; } 
     17 
    1618 
    1719init_files() { 
     
    2729} 
    2830 
     31 
    2932get_date() { 
    3033    local dat=$( date -ud ${DATE} +"%F %R %Z" ) 
     
    3235    echo $dat >> ${FILE_DATE} 
    3336} 
     37 
    3438 
    3539get_nemo_rev() { 
     
    5458 
    5559   ## For time being, just get revision number from XIOS 
    56    if [ "$dir" == "${DIR_XIOS}" ]; then 
     60   if [ $dir == ${DIR_XIOS} ]; then 
    5761       rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) 
    5862       echo 'XIOS '${rev_loc} >> model.log 
     
    7377} 
    7478 
     79 
    7580get_soft_rel() { 
    7681    local soft_rel 
     
    8590   fi 
    8691 
    87    [ "$soft" == "$COMPILER" ] && soft_rel=$( $soft --version | grep -m1 -oe '\<[0-9. ]*\>' ) 
     92   [ $soft == $COMPILER ] && soft_rel=$( $soft --version | grep -m1 -oe '\<[0-9. ]*\>' ) 
    8893   ## Cleaning characters string to display proper soft name 
    8994   soft=$( echo $soft | sed 's#\\##g; s#[/-]$##' ) 
     
    95100} 
    96101 
     102 
    97103get_inputs() { 
    98104    local cmd_iol="tar -tvf ${NEMO_FORC}/${NEMO_TARF}" cmd_iof="tar -vxf ${NEMO_FORC}/${NEMO_TARF}" 
     
    101107    ${cmd_iol} > inputs_list.txt && ${cmd_iof} > /dev/null 
    102108} 
     109 
    103110 
    104111diff_inputs() { 
     
    106113    local files_list='' mesg='Same'  
    107114 
    108     for file in inputs_list.txt namelist_* *.xml; do 
     115    for file in inputs_list.txt namelist_* *.xml cpp_*; do 
    109116   dif='' 
    110    if [ -e ${REFE_DIR}/$file ]; then dif=$( diff -q $file ${REFE_DIR}/$file ); else dif=0; fi 
     117 
     118   if [ -e ${REFE_DIR}/$file ]; then 
     119       dif=$( diff -q $file ${REFE_DIR}/$file ) 
     120   else dif=0; fi 
    111121 
    112122   if [ -n "$dif" ]; then 
    113123       mesg='Different' 
    114        (( "$dif" != '0' )) && echo $dif && files_list+=$file' ' 
     124       [ $dif != '0' ] && echo $dif && files_list+=$file' ' 
    115125   fi 
    116126 
    117127    done 
    118128 
    119     [ "$mesg" == 'Same' ] && echo $mesg 
    120     echo $mesg >> ${FILE_INPT} 
    121  
     129    [ $mesg == 'Same' ] && echo $mesg | tee -a ${FILE_INPT} 
    122130    [ -n "${files_list}" ] && echo 'Inputs  : '${files_list}'differ<br>' \ 
    123131   >> temp_${FILE_COMM} 
    124132} 
     133 
    125134 
    126135job_pending() { 
     
    146155} 
    147156 
     157 
    148158diff_results() { 
    149159    local files_list='' 
     
    159169} 
    160170 
     171 
    161172diff_restart() { 
    162     local base_name dif dift file list_comp list_tmsp nb_dom 
    163     local files_list=''  
    164  
    165     [ ! -e  ${REFE_DIR}/time.step ] && export ST='FAILED' && get_out 7 
     173    local base_name dif file list_comp list_tmsp nb_dom 
     174    local files_list='' dift=0 
     175 
     176    [ ! -e ${REFE_DIR}/time.step ] && export ST='FAILED' && get_out 7 
    166177    export TIME_STEP=$( cat ${REFE_DIR}/time.step | tr -d [:space:] ) 
    167178    echo 'Last time step of benchmark run: '${TIME_STEP} 
     
    195206                | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n'  ) 
    196207 
    197          if [[ -n "${dif}" && $( echo $dif | awk '{ print $1 }') -ne 0 ]]; then 
     208         if [[ -n "$dif" && (( $( echo $dif | awk '{print $1}' ) -ne 0 )) ]]; then 
    198209             export ST='FAILED' && files_list+=$file' ' 
    199210             let dift+=$( echo $dif | awk '{print $1}' ) 
    200              echo $file'.nc: '$dif 
    201          else 
    202              echo 'identical' 
     211             echo $file.nc': '$dif 
    203212         fi 
    204213 
    205           else 
    206          export ST='FAILED' && get_out 7 
    207           fi 
    208  
    209       else 
    210           continue 
    211       fi 
     214          else export ST='FAILED' && get_out 7; fi 
     215 
     216      else continue; fi 
    212217 
    213218       done 
    214219   done 
    215220 
    216    [ -n "${files_list}" ] && echo 'Restarts: '${files_list}$dift' record(s) differ<br>' \ 
    217        >> temp_${FILE_COMM} 
    218     else 
    219    export ST='FAILED' 
    220     fi 
    221  
    222 } 
     221   if (( $dift != 0 )); then 
     222       echo 'Restarts: '${files_list}$dift' record(s) differ<br>' \ 
     223      >> temp_${FILE_COMM} 
     224   else echo 'No restart differ'; fi 
     225 
     226    else export ST='FAILED'; fi 
     227 
     228} 
     229 
    223230 
    224231get_cpu_time() { 
     
    227234    echo ${real_cpu_time} | tee -a ${FILE_CPUT} 
    228235} 
     236 
    229237 
    230238comments() { 
     
    242250} 
    243251 
     252 
    244253mesg_make() { 
    245254    ## Format comments for web 
     
    250259} 
    251260 
     261 
    252262mesg_publish() { 
    253263    local cmd 
     
    259269   $cmd ${FILE_TRUS} >> ${REFE_DIR}/trusting_$PATTERNAME.txt 
    260270 
    261         ## Send mail only when FAILED 
    262    if [[ ! -z "$EMAIL" && "$ST" == 'FAILED' ]]; then 
    263        cat << END_MAIL > trusting.mail 
    264 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
     271  ## Send mail only when FAILED 
     272   if [[ ! -z "$EMAIL" && $ST == 'FAILED' ]]; then 
     273       cat <<END_MAIL \ 
     274      > trusting.mail 
     275XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
    265276 
    266277Dear $USER, 
     
    270281Archive created: ${FILE_ARCH} in ${REFE_DIR} 
    271282 
    272 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
     283XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
    273284 
    274285END_MAIL 
     
    282293} 
    283294 
     295 
    284296get_out() { 
    285297    ERR=$1 
     
    287299    cd ${TEST_DIR} 
    288300 
    289     if [ "$ST" == 'FAILED' ]; then 
     301    if [ $ST == 'FAILED' ]; then 
    290302 
    291303        ## Error identification 
     
    309321 
    310322    ## Save tested configuration if trusting failed 
    311     if [[ "$ST" == 'FAILED' && $PUBLISH -eq 1 && $DEBUG -eq 0 ]]; then 
     323    if [[ $ST == 'FAILED' && $PUBLISH -eq 1 && $DEBUG -eq 0 ]]; then 
    312324   echo 'Creating archive '${FILE_ARCH}' under '${REFE_DIR} 
    313    tar -czf ${REFE_DIR}/${FILE_ARCH} * ${TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/cpp_*  \ 
    314                                         ${TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/MY_SRC \ 
    315                                        ${TEST_DIR}/${NEMO_CONF}/${TEST_CONF}/WORK 
     325   tar -czf ${REFE_DIR}/${FILE_ARCH} * ${NEMO_HOME}/CONFIG/${TEST_CONF}/cpp_*  \ 
     326                                        ${NEMO_HOME}/CONFIG/${TEST_CONF}/MY_SRC \ 
     327                                       ${NEMO_HOME}/CONFIG/${TEST_CONF}/WORK 
    316328    fi 
    317329 
Note: See TracChangeset for help on using the changeset viewer.