Changeset 8797


Ignore:
Timestamp:
2017-11-23T16:36:09+01:00 (3 years ago)
Author:
nicolasmartin
Message:

Modifications to get it working on Curie for all trusting tests

Location:
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/martin.cfg

    r8783 r8797  
    55## Default settings 
    66##--------------------------------------------------- 
    7 [ -z "${TRUS_BRAN}" ] && TRUS_BRAN='trunk' 
    8 TRUS_CKOT=( 'ARCH           CONFIG          NEMO               \ 
    9              EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL    \ 
    10              TOOLS/COMPILE  TOOLS/maketools TOOLS/REBUILD_NEMO  ' ) 
     7TRUS_CKOT=( 'ARCH           CONFIG          NEMO 
     8             EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL 
     9             TOOLS/COMPILE  TOOLS/maketools TOOLS/REBUILD_NEMO' ) 
    1110 
    12 [ -z "${TRUS_REFE}" ] && TRUS_REFE='ORCA2_LIM_PISCES' 
    1311TRUS_CONF=${TRUS_REFE}'_trust' 
    1412 
    15 [ -z "${TRUS_TARF}" ] && TRUS_TARF='ORCA2_LIM_nemo_v3.6.tar' 
    16 [ ${TRUS_REFE} == 'ORCA1_LIM3_PISCES' ] && TRUS_TARF='INPUTS_ORCA1_LIM3_PISCES_V10.tar' 
    17 [ ${TRUS_REFE} == 'AMM12'             ] && TRUS_TARF='AMM12_v3.6.tar' 
     13if   [ -z "${TRUS_BRAN}"                      ]; then 
     14    TRUS_BRAN='trunk' 
     15 
     16    if   [ -z ${TRUS_REFE}            ]; then 
     17   TRUS_REFE='ORCA2_LIM3_PISCES' 
     18    elif [    ${TRUS_REFE} == 'AMM12' ]; then 
     19   TRUS_TARF='AMM12_v3.7.tar' 
     20    fi 
     21 
     22    [ -z ${TRUS_TARF} ] && TRUS_TARF='ORCA2_LIM_nemo_v3.7.tar 
     23                                      INPUTS_PISCES_v3.6st.tar' 
     24elif [     ${TRUS_BRAN} == 'nemo_v3_6_STABLE' ]; then 
     25 
     26    if   [ -z "${TRUS_REFE}"                       ]; then 
     27   TRUS_REFE='ORCA2_LIM_PISCES' 
     28    elif [     ${TRUS_REFE} == 'ORCA1_LIM3_PISCES' ]; then 
     29   TRUS_TARF='INPUTS_ORCA1_LIM3_PISCES_V10.tar' 
     30    elif [     ${TRUS_REFE} == 'AMM12'             ]; then 
     31   TRUS_TARF='AMM12_v3.6.tar' 
     32    fi 
     33 
     34fi 
    1835 
    1936TRUS_KEYA=''; TRUS_KEYD='' 
    20 [ ${TRUS_REFE} == 'ORCA2_LIM' ] && TRUS_KEYA='key_add key_agrif' && TRUS_KEYD='key_del key_zdftmx' 
    2137 
     38[ -z "${TRUS_TARF}" ] && TRUS_TARF='ORCA2_LIM_nemo_v3.6.tar' 
    2239 
    2340## User environment 
     
    2946TRUS_XIOS=$CCCWORKDIR/XIOS/xios-1.0 
    3047 
    31 [ ${TRUS_REFE} == 'ORCA2_LIM_PISCES'  ] && TRUS_CONF='O2LP_trust' 
    32 [ ${TRUS_REFE} == 'ORCA1_LIM3_PISCES' ] && TRUS_CONF='O1L3P_trust' && TRUS_XIOS=${TRUS_WORK}/XIOS/XIOS_DEV_CMIP6 
    33 [ ${TRUS_REFE} == 'ORCA2_LIM'         ] && TRUS_CONF='O2LA_trust' 
    34  
    35 if [ ${TRUS_BRAN} == 'trunk' ]; then 
    36     TRUS_XIOS=$CCCWORKDIR/XIOS/trunk 
    37     TRUS_TARF='ORCA2_LIM_nemo_v3.7.tar INPUTS_PISCES_v3.6st.tar' 
    38     [ ${TRUS_REFE} == 'AMM12'  ] && TRUS_TARF='AMM12_v3.7.tar' 
     48if   [ ${TRUS_REFE} == 'ORCA2_LIM_PISCES'  ]; then 
     49    TRUS_CONF='O2LP_trust' 
     50elif [ ${TRUS_REFE} == 'ORCA2_LIM3_PISCES' ]; then 
     51    TRUS_CONF='O2L3P_trust' 
     52elif [ ${TRUS_REFE} == 'ORCA1_LIM3_PISCES' ]; then 
     53    TRUS_CONF='O1L3P_trust' 
     54    TRUS_XIOS=$CCCWORKDIR/XIOS/XIOS_DEV_CMIP6 
    3955fi 
    4056 
    41 [ -z "${TRUS_MAIL}" ] && TRUS_MAIL='nicolas.martin@upmc.fr claire.levy@locean-ipsl.upmc.fr officers@nemo-ocean.eu' 
     57[ ${TRUS_BRAN} == 'trunk' ] && TRUS_XIOS=$CCCWORKDIR/XIOS/trunk 
     58 
     59[ -z "${TRUS_MAIL}" ] && TRUS_MAIL='nicolas.martin@upmc.fr 
     60                                    claire.levy@locean-ipsl.upmc.fr 
     61                                    officers@nemo-ocean.eu' 
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/user_template.cfg

    r8780 r8797  
    1616 
    1717## Minimal content for code checkout/update 
    18 TRUS_CKOT=( 'ARCH           CONFIG          NEMO               \ 
    19              EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL    \ 
     18TRUS_CKOT=( 'ARCH           CONFIG          NEMO                
     19             EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL     
    2020             TOOLS/COMPILE  TOOLS/maketools TOOLS/REBUILD_NEMO  ' ) 
    2121 
     
    3939                 ## ...../${TRUS_REFE}/${TRUS_BRAN}/${TRUS_DATE} recommended 
    4040TRUS_STOR=     ## Benchmark folder where target files for comparison have been stored, ie: 
    41                ## Inputs  (all) : CPP_*, namelist_*, *.xml et inputs_list.txt (created by initial test) 
     41               ## Inputs  (all) : cpp_*, namelist_*, *.xml et inputs_list.txt (created by initial test) 
    4242               ## Outputs (any) : *.stat, ocean.output, restarts 
    4343                 ## ...../${TRUS_REFE}/${TRUS_BRAN} recommended (same layout as ${TRUS_SCRA}) 
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc/trusting.env

    r8780 r8797  
    77export TRUS_DATE=$( date -ud "$dat" +"%Y%m%d%Z%H%M" ) 
    88export TRUS_NAME=${TRUS_USER}'_'${TRUS_HPCC} 
    9 export TRUS_SVNH='https://forge.ipsl.jussieu.fr/nemo/svn' 
     9export TRUS_SVNR='https://forge.ipsl.jussieu.fr/nemo/svn' 
    1010 
    1111 
     
    2828 
    2929 
     30##  
     31##--------------------------------------------------- 
    3032export TRUS_NGCM=${TRUS_WORK}/${TRUS_BRAN}/NEMOGCM 
     33export TRUS_HIST=${TRUS_STOR}/trusting_${TRUS_NAME}.txt 
     34export TRUS_ARCH=trusting_${TRUS_DATE}_${TRUS_NAME}.tgz 
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc/trusting_func.sh

    r8780 r8797  
    44## Messenger filenames 
    55file_date=mesg_01_date.txt  ; file_rslt=mesg_02_result.txt 
    6 file_stat=mesg_03_state.txt ; file_nemo=mesg_04_nemo.txt 
     6file_stat=mesg_03_status.txt; file_nemo=mesg_04_nemo.txt 
    77file_xios=mesg_05_xios.txt  ; file_cmpf=mesg_06_compiler.txt 
    88file_lmpi=mesg_07_mpi.txt   ; file_ncdf=mesg_08_netcdf.txt 
     
    1010file_memy=mesg_11_memory.txt; file_note=mesg_12_comments.txt 
    1111 
    12 ## Trusting timestamped logfile & archive 
    13 TRUS_FILE=trusting_${TRUS_DATE}_$TRUS_NAME.txt; TRUS_ARCH=trusting_${TRUS_DATE}_$TRUS_NAME.tgz 
    14  
    1512 
    1613## Functions in order of use 
     
    2421init_files() { 
    2522    echo 'Date'               > ${file_date}; echo 'Result'           > ${file_rslt} 
    26     echo 'State'              > ${file_stat}; echo 'NEMOGCM rev.'     > ${file_nemo} 
     23    echo 'Status'             > ${file_stat}; echo 'NEMOGCM rev.'     > ${file_nemo} 
    2724    echo 'XIOS rev.'          > ${file_xios}; echo 'Fortran compiler' > ${file_cmpf} 
    2825    echo 'MPI libs'           > ${file_lmpi}; echo 'NetCDF libs'      > ${file_ncdf} 
     
    118115 
    119116get_inputs() { 
    120     ## Extract archive or copy files in case of personal inputs 
    121     [ -z "${TRUS_TARF}" ] && get_io="cp ${TRUS_FORC}/* ." || get_io="tar -vxf ${TRUS_FORC}/${TRUS_TARF}" 
    122  
    123     ${get_io} > /dev/null 
    124     [ $? -ne 0 ] && get_out 3 || echo 'Success' 
    125     [ $( find -name '*.gz' -print -quit ) ] && find . -name '*.gz' -exec gzip -d {} \; 
    126  
    127     ls -lh > inputs_list.txt 
     117    # List archive content & extract it by default 
     118    local get_iol=$( eval " 
     119   for archive in ${TRUS_TARF}; do 
     120       tar -tvf ${TRUS_FORC}/\$archive >> inputs_list.txt; 
     121   done 
     122   " ) 
     123    local get_iof=$( eval " 
     124   for archive in ${TRUS_TARF}; do 
     125       tar -vxf ${TRUS_FORC}/\$archive > /dev/null; 
     126   done 
     127   " ) 
     128 
     129    ## List & copy files in case of personal inputs 
     130    if [ -z "${TRUS_TARF}" ]; then 
     131   get_iol="ls ${TRUS_FORC}/*" 
     132   get_iof="\cp ${TRUS_FORC}/* ." 
     133    fi 
     134 
     135    ${get_iol}; ${get_iof} 
     136 
     137    if [ `find -name '*.gz' -print -quit` ]; then 
     138   find . -name '*.gz' -exec gzip -d {} \; 
     139    fi 
    128140} 
    129141 
     
    196208 
    197209diff_restart() { 
    198     local base_name comp dif file list_comp list_tmsp nb_dom time_step tmsp 
    199     local files_list='' dif_sum=0 
    200  
    201     ## Stop if no benchmark files (ie time.step) 
    202     [ ! -e ${TRUS_STOR}/time.step ] && { TRUS_RSLT='FAILED'; get_out 7; } 
    203     time_step=$( cat ${TRUS_STOR}/time.step | tr -d [:space:] ) 
     210    local dif filebase filebases ndomain out 
     211    local files_list='' dif_sum='undef' 
    204212 
    205213    ## Find all restart files to rebuild 
    206214    if [ $( find -regex ".*_restart.*[0-9]\.nc" -print -quit ) ]; then 
    207    base_name=$( find -regex ".*_restart.*[0-9]\.nc"                       \ 
    208                 | sed "s#^\./\(.*\)_[0-9]*_restart.*#\1#"       | sort -u   ) 
    209    list_comp=$( find -regex ".*_restart.*[0-9]\.nc"                       \ 
    210                 | sed "s#^.*\(restart[a-z_]*\)_[0-9].*\.nc#\1#" | sort -u   ) 
    211    list_tmsp=$( find -regex ".*_restart.*[0-9]\.nc"                       \ 
    212                 | sed "s#^.*\([0-9]\{8\}\)_restart.*#\1#"       | sort -u   ) 
    213  
    214    ## Loop on each time step 
    215    for tmsp in ${list_tmsp}; do 
    216  
    217        for comp in ${list_comp}; do 
    218       file=${base_name}_${tmsp}_${comp} 
    219       nb_dom=$( find -name "${file}_[0-9]*.nc" | wc -l | awk '{ print $1 }' ) 
    220  
    221       if   [ ${nb_dom} -gt 1 ]; then 
    222           ${TRUS_NGCM}/TOOLS/REBUILD_NEMO/rebuild_nemo -t ${TRUS_NPRO} $file ${nb_dom} \ 
    223          > /dev/null 
    224  
    225            ## Possibility of remaining decomposed restarts (even after rebuild) 
    226           [ $? -eq 0 ] && rm -f ${file}_[0-9]*.nc \ 
    227                         > /dev/null 
    228  
    229       elif [ ${nb_dom} -eq 0 ]; then 
    230           TRUS_RSLT='FAILED' && get_out 8 
     215   filebases=$( find -regextype sed -regex ".*_[0-9]\{4\}\.nc" \ 
     216                | sed 's/\(.*\)_.*/\1/' | sort -u                ) 
     217 
     218   for filebase in ${filebases}; do 
     219 
     220       ndomain=$( find -regex ".*${name}_[0-9]*.nc" | wc -l | awk '{print $1}' ) 
     221 
     222       [ ${ndomain} -eq 0 ] && TRUS_RSLT='FAILED' && get_out 8 
     223 
     224       ${TRUS_NGCM}/TOOLS/REBUILD_NEMO/rebuild_nemo \ 
     225      -t ${TRUS_NPRO} $filebase ${ndomain}     \ 
     226      > /dev/null 
     227 
     228       ## Possibility of remaining decomposed restarts (even after rebuild) 
     229       [ $? -eq 0 ] && rm -f ${file}_[0-9]*.nc \ 
     230                > /dev/null 
     231 
     232       dif='' 
     233 
     234            ## Stop if no benchmark files (restart file) 
     235       if [ -e ${TRUS_STOR}/$file.nc ]; then 
     236 
     237      out=$( $TRUS_CDOD $name.nc ${TRUS_STOR}/$name.nc 2>&1 ) 
     238      dif=$( echo $out | grep -o "[0-9]* of [0-9]* records" ) 
     239 
     240      ## Fix for cdo aborting on restarts with different inputs 
     241      if [[ $out =~ 'Abort' ]]; then 
     242          dif=$( echo $out | awk -F: '{print $NF}' ) 
    231243      fi 
    232244 
    233       ## Compare restart files at same time step 
    234       if [ $tmsp -eq ${time_step} ]; then 
    235  
    236                     ## Stop if no benchmark files (restart file) 
    237           if [ -e ${TRUS_STOR}/$file.nc ]; then 
    238  
    239                    ## UNIX `cmp` not suitable (timestamp in .nc file) 
    240          dif=$( $TRUS_CDOD $file.nc ${TRUS_STOR}/$file.nc 2> /dev/null          \ 
    241                 | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n' ) 
    242  
    243          ## CDO can return void stdout with no difference 
    244          if [[ -n "$dif" && $( echo $dif | awk '{print $1}' ) -ne 0 ]]; then 
    245              TRUS_RSLT='FAILED' 
    246              files_list+=$comp' ' && let dif_sum+=$( echo $dif | awk '{print $1}' ) 
    247              echo $file.nc': '$dif 
    248          fi 
    249  
    250           else 
    251          TRUS_RSLT='FAILED' && get_out 7 
    252           fi 
    253  
    254       else 
    255           continue 
     245      if [ -n "$dif" ]; then 
     246          export TRUS_RSLT='FAILED' 
     247          files_list+=$name' ' && echo $name'.nc: '$dif 
     248          let dif_sum+=$( echo $dif | awk '{print $1}' ) 
    256249      fi 
    257250 
    258        done 
    259  
    260251   done 
    261252 
     253    ## Stop if no benchmark files (ie time.step) 
     254   if   [ ${dif_sum} == 'undef' ]; then 
     255       TRUS_RSLT='FAILED' 
     256       get_out 7 
    262257        ## List different files for web comment with sum of different records 
    263    if [ ${dif_sum} -ne 0 ]; then 
     258   elif [ ${dif_sum} -ne 0      ]; then 
    264259       echo 'Restarts: '${files_list}${dif_sum}' record(s) differ<br>' \ 
    265260      >> temp_${file_note} 
     
    328323 
    329324   ## Create or append trusting logfile 
    330    if [ -f ${TRUS_STOR}/trusting_$TRUS_NAME.txt ]; then cmd='tail -1'; else cmd='cat'; fi 
    331  
    332    $cmd ${TRUS_FILE}                            \ 
    333        >> ${TRUS_STOR}/trusting_$TRUS_NAME.txt 
     325   if [ -f ${TRUS_HIST} ]; then cmd='tail -1'; else cmd='cat'; fi 
     326 
     327   $cmd ${TRUS_FILE}   \ 
     328       >> ${TRUS_HIST} 
    334329 
    335330        ## Send mail only when FAILED 
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/install_new_branch.sh

    r8780 r8797  
    4646printf "\nWhat branch do you want to install in "${TRUS_WORK}" for trusting test ? " 
    4747echo 'Enter 0 to abort' 
    48 select branch in 'trunk' $( svn ls ${TRUS_SVNH}/branches/2015 | tr -d / | sort -r ); do 
     48select branch in 'trunk' $( svn ls ${TRUS_SVNR}/branches/2015 | tr -d / | sort -r ); do 
    4949 
    5050    if [ $REPLY -eq 0 ]; then exit 1; else export TRUS_BRAN=$branch; fi 
     
    7474 
    7575    if [ $elmt == 'TOOLS/maketools' ]; then 
    76    svn co -q ${TRUS_SVNH}/${svn_bran}/NEMOGCM/TOOLS --depth empty 
     76   svn co -q ${TRUS_SVNR}/${svn_bran}/NEMOGCM/TOOLS --depth empty 
    7777   svn up -q $elmt 
    7878    else 
    79    svn co -q ${TRUS_SVNH}/${svn_bran}/NEMOGCM/$elmt $elmt 
     79   svn co -q ${TRUS_SVNR}/${svn_bran}/NEMOGCM/$elmt $elmt 
    8080    fi 
    8181 
  • branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/trusting.sh

    r8780 r8797  
    5454    ## If -v|--version option has been set, modify default SVN action on directories 
    5555    if   [ $( echo ${TRUS_SVNV} | grep  "HEAD\|up\|update"                     ) ]; then 
    56    TRUS_SVNA='svn update -r HEAD --accept=theirs-conflict' 
     56   TRUS_SVNA='svn update -r HEAD' 
    5757    elif [ $( echo ${TRUS_SVNV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then 
    5858   TRUS_SVNA='svn update -r     '$( echo ${TRUS_SVNV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) 
Note: See TracChangeset for help on using the changeset viewer.