Changeset 8808 for branches/2015
- Timestamp:
- 2017-11-24T15:03:07+01:00 (6 years ago)
- Location:
- branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/X64_ADA.cfg
r5934 r8808 5 5 ## Default settings 6 6 ##--------------------------------------------------- 7 TRUS _ENVI=${TRUS_XIOS}/arch/arch-${TRUS_HPCC}7 TRUST_JOB_ENV=${TRUST_DIR_XIOS}/arch/arch-${TRUST_MAIN_HPCC} 8 8 9 TRUS_CDOD='cdo diffn'9 ='cdo diffn' 10 10 11 [ -z "${TRUS _NPRO}" ] && TRUS_NPRO='16'12 [ -z "${TRUS _TOUT}" ] && TRUS_TOUT='10800'11 [ -z "${TRUST_COMPILE_NPROC}" ] && TRUST_COMPILE_NPROC='16' 12 [ -z "${TRUST_JOB_TIMEOUT}" ] && TRUST_JOB_TIMEOUT='10800' 13 13 14 14 15 15 ## (Super)computer environment 16 16 ##--------------------------------------------------- 17 TRUS _JSPT=${TRUS_HPCC}.sh18 TRUS _JSUB="llsubmit ${TRUS_JSPT} | grep -oe '\<[0-9]*\>'"19 TRUS _JINF="llq -x \${TRUS_JIDN}"20 TRUS _JSTA="llq | grep \${TRUS_JIDN}"21 TRUS _JKIL="llcancel \${TRUS_JIDN}"17 TRUST_JOB_SCRIPT=${TRUST_MAIN_HPCC}.sh 18 TRUST_JOB_SUBMIT="llsubmit ${TRUST_JOB_SCRIPT} | grep -oe '\<[0-9]*\>'" 19 TRUST_JOB_INFO="llq -x \${TRUST_JOB_ID}" 20 TRUST_JOB_STATE="llq | grep \${TRUST_JOB_ID}" 21 TRUST_JOB_KILL="llcancel \${TRUST_JOB_ID}" 22 22 23 TRUS _JTIM="grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f1 | awk '{print \$(NF-1),\$NF}'"24 TRUS _JPME="grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f3 | awk '{print \$3 ,\$4 }'"25 TRUS _JVME="grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f2 | awk '{print \$3 ,\$4 }'"23 TRUST_JOB_TIME="grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f1 | awk '{print \$(NF-1),\$NF}'" 24 TRUST_JOB_RAM_P="grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f3 | awk '{print \$3 ,\$4 }'" 25 TRUST_JOB_RAM_V="grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f2 | awk '{print \$3 ,\$4 }'" 26 26 27 TRUS _CMPV='ifort'28 TRUS _CDOR='cdo/'29 TRUS _MPIR='intel/impi/'30 TRUS _CDFR='netcdf/'27 TRUST_COMPILE_FORTRAN='ifort' 28 TRUST_CDO='cdo/' 29 TRUST_COMPILE_MPI='intel/impi/' 30 TRUST_COMPILE_NETCDF='netcdf/' 31 31 32 32 PATH='/smplocal/pub/cdo/1.5.9/bin':$PATH -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/X64_CURIE.cfg
r8780 r8808 5 5 ## Default settings 6 6 ##--------------------------------------------------- 7 TRUS _ENVI=${TRUS_XIOS}/arch/arch-${TRUS_HPCC}7 TRUST_JOB_ENV=${TRUST_DIR_XIOS}/arch/arch-${TRUST_MAIN_HPCC} 8 8 9 TRUS_CDOD='cdo diffn'9 ='cdo diffn' 10 10 11 [ -z "${TRUS _NPRO}" ] && TRUS_NPRO='4'12 [ -z "${TRUS _TOUT}" ] && TRUS_TOUT='10800'11 [ -z "${TRUST_COMPILE_NPROC}" ] && TRUST_COMPILE_NPROC='4' 12 [ -z "${TRUST_JOB_TIMEOUT}" ] && TRUST_JOB_TIMEOUT='10800' 13 13 14 14 15 15 ## (Super)computer environment 16 16 ##--------------------------------------------------- 17 TRUS _JSPT=${TRUS_HPCC}.sh18 TRUS _JSUB="ccc_msub ${TRUS_JSPT} | grep -oe '\<[0-9]*\>'"19 TRUS _JINF="ccc_macct \${TRUS_JIDN}"20 TRUS _JSTA="ccc_mpp | grep \${TRUS_JIDN}"21 TRUS _JKIL="ccc_mdel \${TRUS_JIDN}"17 TRUST_JOB_SCRIPT=${TRUST_MAIN_HPCC}.sh 18 TRUST_JOB_SUBMIT="ccc_msub ${TRUST_JOB_SCRIPT} | grep -oe '\<[0-9]*\>'" 19 TRUST_JOB_INFO="ccc_macct \${TRUST_JOB_ID}" 20 TRUST_JOB_STATE="ccc_mpp | grep \${TRUST_JOB_ID}" 21 TRUST_JOB_KILL="ccc_mdel \${TRUST_JOB_ID}" 22 22 23 TRUS _JTIM="ccc_macct \${TRUS_JIDN} | grep \"\${TRUS_JIDN}.0 *opa\" | awk '{print \$9 }'"24 TRUS _JPME="ccc_macct \${TRUS_JIDN} | grep -m1 \"\${TRUS_JIDN}.0\" | awk '{printf \"%d Mo\n\", \$2; exit}'"25 TRUS _JVME="ccc_macct \${TRUS_JIDN} | grep -m1 \"\${TRUS_JIDN}.0\" | awk '{printf \"%d Go\n\", \$7; exit}'"23 TRUST_JOB_TIME="ccc_macct \${TRUST_JOB_ID} | grep \"\${TRUST_JOB_ID}.0 *opa\" | awk '{print \$9 }'" 24 TRUST_JOB_RAM_P="ccc_macct \${TRUST_JOB_ID} | grep -m1 \"\${TRUST_JOB_ID}.0\" | awk '{printf \"%d Mo\n\", \$2; exit}'" 25 TRUST_JOB_RAM_V="ccc_macct \${TRUST_JOB_ID} | grep -m1 \"\${TRUST_JOB_ID}.0\" | awk '{printf \"%d Go\n\", \$7; exit}'" 26 26 27 TRUS _CMPV='ifort'28 TRUS _CDOR='netcdf-utils-'29 TRUS _MPIR='bullxmpi/'30 TRUS _CDFR='netcdf-'27 TRUST_COMPILE_FORTRAN='ifort' 28 TRUST_CDO='netcdf-utils-' 29 TRUST_COMPILE_MPI='bullxmpi/' 30 TRUST_COMPILE_NETCDF='netcdf-' 31 31 32 32 PATH='/usr/local/netcdf-utils-4.3.3.1_hdf5/bin':$PATH -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/X64_CURIE_cron.cfg
r8780 r8808 5 5 ## Default settings 6 6 ##--------------------------------------------------- 7 TRUS _ENVI=${TRUS_XIOS}/arch/arch-${TRUS_HPCC}7 TRUST_JOB_ENV=${TRUST_DIR_XIOS}/arch/arch-${TRUST_MAIN_HPCC}.env 8 8 9 TRUS _CDOD='cdo diffn'9 TRUST_COMPILE_FORTRAN='ifort' 10 10 11 [ -z "${TRUS_NPRO}" ] && TRUS_NPRO='4'12 [ -z "${TRUS_TOUT}" ] && TRUS_TOUT='10800'11 TRUST_COMPILE_MPI='bullxmpi/' 12 TRUST_COMPILE_NETCDF='netcdf-[0-9]' 13 13 14 TRUST_CDO='cdo' 14 15 15 ## (Super)computer environment 16 ##--------------------------------------------------- 17 TRUS_JSPT=${TRUS_HPCC}.sh 18 TRUS_JSUB="ccc_msub ${TRUS_JSPT} | grep -oe '\<[0-9]*\>'" 19 TRUS_JINF="ccc_macct \${TRUS_JIDN}" 20 TRUS_JSTA="ccc_mpp | grep \${TRUS_JIDN}" 21 TRUS_JKIL="ccc_mdel \${TRUS_JIDN}" 16 [ -z "${TRUST_COMPILE_NPROC}" ] && TRUST_COMPILE_NPROC='4' 22 17 23 TRUS_JTIM="ccc_macct \${TRUS_JIDN} | grep \"\${TRUS_JIDN}.0 *opa\" | awk '{print \$9 }'" 24 TRUS_JPME="ccc_macct \${TRUS_JIDN} | grep -m1 \"\${TRUS_JIDN}.0\" | awk '{printf \"%d Mo\n\", \$2; exit}'" 25 TRUS_JVME="ccc_macct \${TRUS_JIDN} | grep -m1 \"\${TRUS_JIDN}.0\" | awk '{printf \"%d Go\n\", \$7; exit}'" 18 TRUST_JOB_SCRIPT=${TRUST_MAIN_DIR}/batch/${TRUST_MAIN_HPCC}.sh 19 TRUST_JOB_SUBMIT="ccc_msub ${TRUST_JOB_SCRIPT} | grep -oe '\<[0-9]*\>'" 26 20 27 TRUS_CMPV='ifort' 28 TRUS_CDOR='netcdf-utils-' 29 TRUS_MPIR='bullxmpi/' 30 TRUS_CDFR='netcdf-' 21 TRUST_JOB_STATE="ccc_mpp | grep \${TRUST_JOB_ID}" 22 TRUST_JOB_INFO="ccc_macct \${TRUST_JOB_ID}" 23 TRUST_JOB_KILL="ccc_mdel \${TRUST_JOB_ID}" 31 24 32 PATH='/usr/local/netcdf-utils-4.3.3.1_hdf5/bin':$PATH 25 [ -z "${TRUST_JOB_TIMEOUT}" ] && TRUST_JOB_TIMEOUT='10800' 26 27 TRUST_JOB_TIME=" 28 ccc_macct \${TRUST_JOB_ID} | grep \"\${TRUST_JOB_ID}.0 *opa\" \ 29 | awk '{print \$9 }' \ 30 " 31 TRUST_JOB_RAM_P=" 32 ccc_macct \${TRUST_JOB_ID} | grep -m1 \"\${TRUST_JOB_ID}.0\" \ 33 | awk '{printf \"%d Mo\n\", \$2; exit}' \ 34 " 35 TRUST_JOB_RAM_V=" 36 ccc_macct \${TRUST_JOB_ID} | grep -m1 \"\${TRUST_JOB_ID}.0\" \ 37 | awk '{printf \"%d Go\n\", \$7; exit}' \ 38 " -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/arch_template.cfg
r5929 r8808 9 9 ## Default settings 10 10 ##--------------------------------------------------- 11 # (Super)Computer environment (${TRUS _XIOS} is already defined in the user configuration file)12 TRUS _ENVI=${TRUS_XIOS}/arch/arch-${TRUS_HPCC}13 ## If `module` is available, ${TRUS _ENVI}.env will be sourced14 ## If not (scheduled jobs), it will be ${TRUS _ENVI}.path or finally ${TRUS_ENVI}11 # (Super)Computer environment (${TRUST_DIR_XIOS} is already defined in the user configuration file) 12 TRUST_JOB_ENV=${TRUST_DIR_XIOS}/arch/arch-${TRUST_MAIN_HPCC} 13 ## If `module` is available, ${TRUST_JOB_ENV}.env will be sourced 14 ## If not (scheduled jobs), it will be ${TRUST_JOB_ENV}.path or finally ${TRUST_JOB_ENV} 15 15 16 16 ## Comparison command with restart files as argument (think to append $PATH by any way) 17 TRUS_CDOD='cdo diffn'17 ='cdo diffn' 18 18 19 [ -z "${TRUS _NPRO}" ] && TRUS_NPRO= ## Number of compiling processes20 [ -z "${TRUS _TOUT}" ] && TRUS_TOUT= ## Timeout for computation (s)19 [ -z "${TRUST_COMPILE_NPROC}" ] && TRUST_COMPILE_NPROC= ## Number of compiling processes 20 [ -z "${TRUST_JOB_TIMEOUT}" ] && TRUST_JOB_TIMEOUT= ## Timeout for computation (s) 21 21 22 22 23 23 ## (Super)computer environment 24 24 ##--------------------------------------------------- 25 ## Job commands will almost always be used with `eval ${TRUS _JXXX}` because25 ## Job commands will almost always be used with `eval ${TRUST_JOB_XXX}` because 26 26 ## they will certainly need job ID number as argument for working 27 TRUS _JSPT= ## Submission script contained ./batch folder, will be copied to testing folder28 TRUS _JSUB= ## Submit a job and get his ID on the fly (assigned to ${TRUS_JIDN})29 ## ex: `llsubmit ${TRUS _JSPT} | grep -oe '\<[0-9]*\>'`30 TRUS _JSTA= ## Test state of the submitted job (true -> pending/running or false -> completed/crashed)31 ## ex: "llq | grep \${TRUS _JIDN}"32 TRUS _JKIL= ## Kill the submitted job33 ## ex: "llcancel \${TRUS _JIDN}"27 TRUST_JOB_SCRIPT= ## Submission script contained ./batch folder, will be copied to testing folder 28 TRUST_JOB_SUBMIT= ## Submit a job and get his ID on the fly (assigned to ${TRUST_JOB_ID}) 29 ## ex: `llsubmit ${TRUST_JOB_SCRIPT} | grep -oe '\<[0-9]*\>'` 30 TRUST_JOB_STATE= ## Test state of the submitted job (true -> pending/running or false -> completed/crashed) 31 ## ex: "llq | grep \${TRUST_JOB_ID}" 32 TRUST_JOB_KILL= ## Kill the submitted job 33 ## ex: "llcancel \${TRUST_JOB_ID}" 34 34 35 35 ## Computational performances of job (respectively elapsed time, max physical & virtual memory) 36 TRUS _JTIM='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f1 | awk '{print \$(NF-1),\$NF}"37 TRUS _JPME='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f3 | awk '{print \$3 ,\$4 }"38 TRUS _JVME='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUS_JIDN} | cut -d, -f2 | awk '{print \$3 ,\$4 }"36 TRUST_JOB_TIME='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f1 | awk '{print \$(NF-1),\$NF}" 37 TRUST_JOB_RAM_P='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f3 | awk '{print \$3 ,\$4 }" 38 TRUST_JOB_RAM_V='' ## ex: "grep IdrisMemMPI NEMO_CI_\${TRUST_JOB_ID} | cut -d, -f2 | awk '{print \$3 ,\$4 }" 39 39 40 TRUS _JINF='' ## Get job informations to fill in a logfile during computation41 ## ex: "llq -x \${TRUS _JIDN}"40 TRUST_JOB_INFO='' ## Get job informations to fill in a logfile during computation 41 ## ex: "llq -x \${TRUST_JOB_ID}" 42 42 43 ## Compiler (use with `${TRUS _CMPV} --version`)44 TRUS _CMPV='' ## ex: 'ifort'|'gfortran'|'pgfortran'|...43 ## Compiler (use with `${TRUST_COMPILE_FORTRAN} --version`) 44 TRUST_COMPILE_FORTRAN='' ## ex: 'ifort'|'gfortran'|'pgfortran'|... 45 45 46 46 ## Software/libraries (string pattern to match just before the release number in $PATH) 47 47 ## Respectively CDO (Climate Data Operators) / MPI libraries / NetCDF libraries 48 TRUS _CDOR='' ## ex: 'cdo/'|'netcdf-utils-'49 TRUS _MPIR='' ## ex: 'intel/impi/'|'bullxmpi/'50 TRUS _CDFR='' ## ex: 'netcdf/'|'netcdf-'48 TRUST_CDO='' ## ex: 'cdo/'|'netcdf-utils-' 49 TRUST_COMPILE_MPI='' ## ex: 'intel/impi/'|'bullxmpi/' 50 TRUST_COMPILE_NETCDF='' ## ex: 'netcdf/'|'netcdf-' -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/martin.cfg
r8797 r8808 5 5 ## Default settings 6 6 ##--------------------------------------------------- 7 TRUS _CKOT=( 'ARCH CONFIG NEMO8 EXTERNAL/AGRIF EXTERNAL/fcm EXTERNAL/IOIPSL9 TOOLS/COMPILE TOOLS/maketools TOOLS/REBUILD_NEMO' )7 TRUST_SVN_CO=( 'ARCH CONFIG NEMO \ 8 EXTERNAL/AGRIF EXTERNAL/fcm EXTERNAL/IOIPSL \ 9 TOOLS/COMPILE TOOLS/maketools TOOLS/REBUILD_NEMO ' ) 10 10 11 TRUS _CONF=${TRUS_REFE}'_trust'11 TRUST_CFG_NEW=${TRUST_CFG_REF}'_trust' 12 12 13 if [ -z "${TRUS _BRAN}" ]; then14 TRUS _BRAN='trunk'13 if [ -z "${TRUST_SVN_BRANCH}" ]; then 14 TRUST_SVN_BRANCH='trunk' 15 15 16 if [ -z ${TRUS_REFE}]; then17 TRUS _REFE='ORCA2_LIM3_PISCES'18 elif [ ${TRUS_REFE} == 'AMM12' ]; then19 TRUS _TARF='AMM12_v3.7.tar'16 if [ -z "${TRUST_CFG_REF}" ]; then 17 TRUST_CFG_REF='ORCA2_LIM3_PISCES' 18 elif [ ${TRUST_CFG_REF} == 'AMM12' ]; then 19 TRUST_CFG_FORC='AMM12_v3.7.tar' 20 20 fi 21 21 22 [ -z ${TRUS_TARF} ] && TRUS_TARF='ORCA2_LIM_nemo_v3.7.tar23 INPUTS_PISCES_v3.6st.tar'24 elif [ ${TRUS _BRAN} == 'nemo_v3_6_STABLE' ]; then22 [ -z "${TRUST_CFG_FORC}" ] && TRUST_CFG_FORC='ORCA2_LIM_nemo_v3.7.tar \ 23 INPUTS_PISCES_v3.6st.tar ' 24 elif [ ${TRUST_SVN_BRANCH} == 'nemo_v3_6_STABLE' ]; then 25 25 26 if [ -z "${TRUS _REFE}" ]; then27 TRUS _REFE='ORCA2_LIM_PISCES'28 elif [ ${TRUS _REFE} == 'ORCA1_LIM3_PISCES' ]; then29 TRUS _TARF='INPUTS_ORCA1_LIM3_PISCES_V10.tar'30 elif [ ${TRUS _REFE} == 'AMM12' ]; then31 TRUS _TARF='AMM12_v3.6.tar'26 if [ -z "${TRUST_CFG_REF}" ]; then 27 TRUST_CFG_REF='ORCA2_LIM_PISCES' 28 elif [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ]; then 29 TRUST_CFG_FORC='INPUTS_ORCA1_LIM3_PISCES_V10.tar' 30 elif [ ${TRUST_CFG_REF} == 'AMM12' ]; then 31 TRUST_CFG_FORC='AMM12_v3.6.tar' 32 32 fi 33 33 34 34 fi 35 35 36 TRUS _KEYA=''; TRUS_KEYD=''36 TRUST_CFG_KEY_ADD=''; TRUST_CFG_KEY_DEL='' 37 37 38 [ -z "${TRUS _TARF}" ] && TRUS_TARF='ORCA2_LIM_nemo_v3.6.tar'38 [ -z "${TRUST_CFG_FORC}" ] && TRUST_CFG_FORC='ORCA2_LIM_nemo_v3.6.tar' 39 39 40 40 ## User environment 41 41 ##--------------------------------------------------- 42 TRUS _WORK=$CCCWORKDIR/NEMO43 TRUS _SCRA=$CCCSCRATCHDIR/NEMO/trusting/${TRUS_REFE}/${TRUS_BRAN}/${TRUS_DATE}44 TRUS _STOR=$CCCSTOREDIR/NEMO/trusting_sav/${TRUS_REFE}/${TRUS_BRAN}45 TRUS _FORC=$CCCWORKDIR/NEMO/FORC46 TRUS _XIOS=$CCCWORKDIR/XIOS/xios-1.042 TRUST_DIR_WORK=$CCCWORKDIR/NEMO 43 TRUST_DIR_SCRATCH=$CCCSCRATCHDIR/NEMO/trusting/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH}/${TRUST_TEST_DATE} 44 TRUST_DIR_STORE=$CCCSTOREDIR/NEMO/trusting_sav/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH} 45 TRUST_DIR_FORC=$CCCWORKDIR/NEMO/FORC 46 TRUST_DIR_XIOS=$CCCWORKDIR/XIOS/xios-1.0 47 47 48 if [ ${TRUS _REFE} == 'ORCA2_LIM_PISCES' ]; then49 TRUS _CONF='O2LP_trust'50 elif [ ${TRUS _REFE} == 'ORCA2_LIM3_PISCES' ]; then51 TRUS _CONF='O2L3P_trust'52 elif [ ${TRUS _REFE} == 'ORCA1_LIM3_PISCES' ]; then53 TRUS _CONF='O1L3P_trust'54 TRUS _XIOS=$CCCWORKDIR/XIOS/XIOS_DEV_CMIP648 if [ ${TRUST_CFG_REF} == 'ORCA2_LIM_PISCES' ]; then 49 TRUST_CFG_NEW='O2LP_trust' 50 elif [ ${TRUST_CFG_REF} == 'ORCA2_LIM3_PISCES' ]; then 51 TRUST_CFG_NEW='O2L3P_trust' 52 elif [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ]; then 53 TRUST_CFG_NEW='O1L3P_trust' 54 TRUST_DIR_XIOS=$CCCWORKDIR/XIOS/XIOS_DEV_CMIP6 55 55 fi 56 56 57 [ ${TRUS _BRAN} == 'trunk' ] && TRUS_XIOS=$CCCWORKDIR/XIOS/trunk57 [ ${TRUST_SVN_BRANCH} == 'trunk' ] && TRUST_DIR_XIOS=$CCCWORKDIR/XIOS/trunk 58 58 59 [ -z "${TRUS _MAIL}" ] && TRUS_MAIL='nicolas.martin@upmc.fr59 [ -z "${TRUST_TEST_MAILING}" ] && TRUST_TEST_MAILING='nicolas.martin@upmc.fr 60 60 claire.levy@locean-ipsl.upmc.fr 61 61 officers@nemo-ocean.eu' -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/romr005.cfg
r8780 r8808 5 5 ## Default settings 6 6 ##--------------------------------------------------- 7 [ -z "${TRUS _BRAN}" ] && TRUS_BRAN='trunk'8 TRUS _CKOT=( 'ARCH CONFIG NEMO \7 [ -z "${TRUST_SVN_BRANCH}" ] && TRUST_SVN_BRANCH='trunk' 8 TRUST_SVN_CO=( 'ARCH CONFIG NEMO \ 9 9 EXTERNAL/AGRIF EXTERNAL/fcm EXTERNAL/IOIPSL \ 10 10 TOOLS/COMPILE TOOLS/maketools TOOLS/REBUILD_NEMO ' ) 11 11 12 [ -z "${TRUS _REFE}" ] && TRUS_REFE='ORCA2_LIM_PISCES'13 TRUS _CONF=${TRUS_REFE}'_trust'12 [ -z "${TRUST_CFG_REF}" ] && TRUST_CFG_REF='ORCA2_LIM_PISCES' 13 TRUST_CFG_NEW=${TRUST_CFG_REF}'_trust' 14 14 15 [ -z "${TRUS _TARF}" ] && TRUS_TARF='ORCA2_LIM_nemo_v3.6.tar'16 [ ${TRUS _REFE} == 'ORCA1_LIM3_PISCES' ] && TRUS_TARF='INPUTS_ORCA1_LIM3_PISCES_V6.tar'17 [ ${TRUS _REFE} == 'AMM12' ] && TRUS_TARF='AMM12_v3.6.tar'15 [ -z "${TRUST_CFG_FORC}" ] && TRUST_CFG_FORC='ORCA2_LIM_nemo_v3.6.tar' 16 [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ] && TRUST_CFG_FORC='INPUTS_ORCA1_LIM3_PISCES_V6.tar' 17 [ ${TRUST_CFG_REF} == 'AMM12' ] && TRUST_CFG_FORC='AMM12_v3.6.tar' 18 18 19 TRUS _KEYA=''; TRUS_KEYD=''20 [ ${TRUS _REFE} == 'ORCA2_LIM' ] && TRUS_KEYA='key_add key_agrif' && TRUS_KEYD='key_del key_zdftmx'19 TRUST_CFG_KEY_ADD=''; TRUST_CFG_KEY_DEL='' 20 [ ${TRUST_CFG_REF} == 'ORCA2_LIM' ] && TRUST_CFG_KEY_ADD='key_add key_agrif' && TRUST_CFG_KEY_DEL='key_del key_zdftmx' 21 21 22 22 23 23 ## User environment 24 24 ##--------------------------------------------------- 25 TRUS _WORK=$WORKDIR/NEMO26 TRUS _SCRA=$WORKDIR/NEMO/trusting/${TRUS_REFE}/${TRUS_BRAN}/${TRUS_DATE}27 TRUS _STOR=$WORKDIR/NEMO/trusting_sav/${TRUS_REFE}/${TRUS_BRAN}28 TRUS _FORC=$WORKDIR/NEMO/FORC29 TRUS _XIOS=$WORKDIR/XIOS/xios-1.025 TRUST_DIR_WORK=$WORKDIR/NEMO 26 TRUST_DIR_SCRATCH=$WORKDIR/NEMO/trusting/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH}/${TRUST_TEST_DATE} 27 TRUST_DIR_STORE=$WORKDIR/NEMO/trusting_sav/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH} 28 TRUST_DIR_FORC=$WORKDIR/NEMO/FORC 29 TRUST_DIR_XIOS=$WORKDIR/XIOS/xios-1.0 30 30 31 [ ${TRUS _REFE} == 'ORCA2_LIM_PISCES' ] && TRUS_CONF='O2LP_trust'32 [ ${TRUS _REFE} == 'ORCA1_LIM3_PISCES' ] && TRUS_CONF='O1L3P_trust'33 [ ${TRUS _REFE} == 'ORCA2_LIM' ] && TRUS_CONF='O2LA_trust'31 [ ${TRUST_CFG_REF} == 'ORCA2_LIM_PISCES' ] && TRUST_CFG_NEW='O2LP_trust' 32 [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ] && TRUST_CFG_NEW='O1L3P_trust' 33 [ ${TRUST_CFG_REF} == 'ORCA2_LIM' ] && TRUST_CFG_NEW='O2LA_trust' 34 34 35 [ -z "${TRUS _MAIL}" ] && TRUS_MAIL='ntmlod@locean-ipsl.upmc.fr'35 [ -z "${TRUST_TEST_MAILING}" ] && TRUST_TEST_MAILING='ntmlod@locean-ipsl.upmc.fr' -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/cfg/user_template.cfg
r8797 r8808 13 13 14 14 ## SVN branch name ('trunk', 'nemo_v3_6_STABLE', development branches) 15 [ -z "${TRUS _BRAN}" ] && TRUS_BRAN='trunk'15 [ -z "${TRUST_SVN_BRANCH}" ] && TRUST_SVN_BRANCH='trunk' 16 16 17 17 ## Minimal content for code checkout/update 18 TRUS _CKOT=( 'ARCH CONFIG NEMO18 TRUST_SVN_CO=( 'ARCH CONFIG NEMO 19 19 EXTERNAL/AGRIF EXTERNAL/fcm EXTERNAL/IOIPSL 20 20 TOOLS/COMPILE TOOLS/maketools TOOLS/REBUILD_NEMO ' ) 21 21 22 [ -z "${TRUS _REFE}" ] && TRUS_REFE='ORCA2_LIM_PISCES' ## Reference configuration to test23 TRUS _CONF=${TRUS_REFE}'_trust' ## Testing configuration name22 [ -z "${TRUST_CFG_REF}" ] && TRUST_CFG_REF='ORCA2_LIM_PISCES' ## Reference configuration to test 23 TRUST_CFG_NEW=${TRUST_CFG_REF}'_trust' ## Testing configuration name 24 24 25 ## Forcing archive, let void if just need to copy the files inside ${TRUS _FORC}26 [ -z "${TRUS _TARF}" ] && TRUS_TARF='ORCA2_LIM_nemo_v3.6.tar'27 [ ${TRUS _REFE} == 'ORCA1_LIM3_PISCES' ] && TRUS_TARF='INPUTS_ORCA1_LIM3_PISCES_V6.tar'28 [ ${TRUS _REFE} == 'AMM12' ] && TRUS_TARF='AMM12_v3.6.tar'25 ## Forcing archive, let void if just need to copy the files inside ${TRUST_DIR_FORC} 26 [ -z "${TRUST_CFG_FORC}" ] && TRUST_CFG_FORC='ORCA2_LIM_nemo_v3.6.tar' 27 [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ] && TRUST_CFG_FORC='INPUTS_ORCA1_LIM3_PISCES_V6.tar' 28 [ ${TRUST_CFG_REF} == 'AMM12' ] && TRUST_CFG_FORC='AMM12_v3.6.tar' 29 29 30 30 ## CPP keys to add or remove from reference configuration 31 TRUS _KEYA=''; TRUS_KEYD=''32 [ ${TRUS _REFE} == 'ORCA2_LIM' ] && TRUS_KEYA='key_add key_agrif' && TRUS_KEYD='key_del key_zdftmx'31 TRUST_CFG_KEY_ADD=''; TRUST_CFG_KEY_DEL='' 32 [ ${TRUST_CFG_REF} == 'ORCA2_LIM' ] && TRUST_CFG_KEY_ADD='key_add key_agrif' && TRUST_CFG_KEY_DEL='key_del key_zdftmx' 33 33 34 34 35 35 ## User environment 36 36 ##--------------------------------------------------- 37 TRUS _WORK= ## Testing folder for compilation (branches checkouts & configuration compilation)38 TRUS _SCRA= ## " " "" " " computation39 ## ...../${TRUS _REFE}/${TRUS_BRAN}/${TRUS_DATE} recommended40 TRUS _STOR= ## Benchmark folder where target files for comparison have been stored, ie:37 TRUST_DIR_WORK= ## Testing folder for compilation (branches checkouts & configuration compilation) 38 TRUST_DIR_SCRATCH= ## " " "" " " computation 39 ## ...../${TRUST_CFG_REF}/${TRUST_SVN_BRANCH}/${TRUST_TEST_DATE} recommended 40 TRUST_DIR_STORE= ## Benchmark folder where target files for comparison have been stored, ie: 41 41 ## Inputs (all) : cpp_*, namelist_*, *.xml et inputs_list.txt (created by initial test) 42 42 ## Outputs (any) : *.stat, ocean.output, restarts 43 ## ...../${TRUS _REFE}/${TRUS_BRAN} recommended (same layout as ${TRUS_SCRA})44 TRUS _FORC= ## Path to the forcing archive to extract (usage combined with ${TRUS_TARF}) or45 ## "" all inputs files who will be copied into ${TRUS _SCRA}46 TRUS _XIOS= ## XIOS installation43 ## ...../${TRUST_CFG_REF}/${TRUST_SVN_BRANCH} recommended (same layout as ${TRUST_DIR_SCRATCH}) 44 TRUST_DIR_FORC= ## Path to the forcing archive to extract (usage combined with ${TRUST_CFG_FORC}) or 45 ## "" all inputs files who will be copied into ${TRUST_DIR_SCRATCH} 46 TRUST_DIR_XIOS= ## XIOS installation 47 47 48 48 ## Mailing list to notify on failure (-p|--prod option required) 49 [ -z "${TRUS _MAIL}" ] && TRUS_MAIL=''49 [ -z "${TRUST_TEST_MAILING}" ] && TRUST_TEST_MAILING='' -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc/trusting.env
r8797 r8808 2 2 3 3 4 ## Global environment variables 5 ##-------------------------------------- 6 dat=$( date ) 7 export TRUS_DATE=$( date -ud "$dat" +"%Y%m%d%Z%H%M" ) 8 export TRUS_NAME=${TRUS_USER}'_'${TRUS_HPCC} 9 export TRUS_SVNR='https://forge.ipsl.jussieu.fr/nemo/svn' 4 ## Source user & (super)computer configurations 5 ##--------------------------------------------------- 6 . ./cfg/${TRUST_MAIN_USER}.cfg 7 . ./cfg/${TRUST_MAIN_HPCC}.cfg 10 8 9 ## Global environment variables per realm 10 ##--------------------------------------- 11 11 12 ## Source user configuration 13 ##--------------------------------------------------- 14 . ./cfg/${TRUS_USER}.cfg 15 export TRUS_WORK TRUS_SCRA TRUS_STOR TRUS_XIOS TRUS_FORC 16 export TRUS_BRAN TRUS_REFE 17 export TRUS_CONF TRUS_TARF TRUS_KEYA TRUS_KEYD 18 export TRUS_MAIL 12 ## Installation and 1^st^ branch checkout (./install_new_branch.sh) 13 export TRUST_DIR_WORK TRUST_DIR_SCRATCH TRUST_DIR_STORE 14 export TRUST_SVN_REPO='https://forge.ipsl.jussieu.fr/nemo/svn' 15 export TRUST_SVN_BRANCH 16 export TRUST_DIR_NEMOGCM=${TRUST_DIR_WORK}/${TRUST_SVN_BRANCH}/NEMOGCM 19 17 18 ## Configuration 19 export TRUST_CFG_REF TRUST_CFG_NEW TRUST_CFG_KEY_ADD TRUST_CFG_KEY_DEL 20 export TRUST_DIR_XIOS TRUST_DIR_FORC TRUST_CFG_FORC 20 21 21 ## Source (super)computer configuration 22 ##--------------------------------------------------- 23 . ./cfg/${TRUS_HPCC}.cfg 24 export TRUS_ENVI TRUS_CDOD TRUS_NPRO TRUS_TOUT 25 export TRUS_JSPT TRUS_JSUB TRUS_JSTA TRUS_JKIL 26 export TRUS_JPME TRUS_JTIM TRUS_JVME TRUS_JINF 27 export TRUS_CMPV TRUS_CDOR TRUS_MPIR TRUS_CDFR 22 ## Compilation & Running 23 export TRUST_JOB_ENV 24 export TRUST_COMPILE_FORTRAN TRUST_COMPILE_NPROC 25 export TRUST_COMPILE_MPI TRUST_COMPILE_NETCDF 26 export TRUST_JOB_SCRIPT TRUST_JOB_SUBMIT 27 export TRUST_JOB_STATE TRUST_JOB_KILL TRUST_JOB_TIMEOUT 28 export TRUST_JOB_INFO TRUST_JOB_TIME TRUST_JOB_RAM_P TRUST_JOB_RAM_V 29 export TRUST_CDO 28 30 29 30 ## 31 ##--------------------------------------------------- 32 export TRUS_NGCM=${TRUS_WORK}/${TRUS_BRAN}/NEMOGCM 33 export TRUS_HIST=${TRUS_STOR}/trusting_${TRUS_NAME}.txt 34 export TRUS_ARCH=trusting_${TRUS_DATE}_${TRUS_NAME}.tgz 31 ## Trusting test 32 export TRUST_TEST_NAME=${TRUST_MAIN_USER}'_'${TRUST_MAIN_HPCC} 33 export TRUST_TEST_DATE=$( date -u +"%Y%m%d%Z%H%M" ) 34 export TRUST_TEST_SUMMARY=trusting_${TRUST_TEST_DATE}_${TRUST_TEST_NAME}.txt 35 export TRUST_TEST_BACKUP=trusting_${TRUST_TEST_DATE}_${TRUST_TEST_NAME}.tgz 36 export TRUST_TEST_LOG=${TRUST_DIR_STORE}/trusting_${TRUST_TEST_NAME}.txt 37 export TRUST_TEST_MAILING -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc/trusting_func.sh
r8797 r8808 20 20 21 21 init_files() { 22 echo 'Date' > ${file_date}; echo 'Result' > ${file_rslt} 23 echo 'Status' > ${file_stat}; echo 'NEMOGCM rev.' > ${file_nemo} 24 echo 'XIOS rev.' > ${file_xios}; echo 'Fortran compiler' > ${file_cmpf} 25 echo 'MPI libs' > ${file_lmpi}; echo 'NetCDF libs' > ${file_ncdf} 26 echo 'Input files' > ${file_inpt}; echo 'Elapsed time' > ${file_time} 27 echo 'Memory usage (P/V)' > ${file_memy}; echo 'Comments' > ${file_note} 22 echo 'Date' > ${file_date} 23 echo 'Result' > ${file_rslt} 24 echo 'Status' > ${file_stat} 25 echo 'NEMOGCM rev.' > ${file_nemo} 26 echo 'XIOS rev.' > ${file_xios} 27 echo 'Fortran compiler' > ${file_cmpf} 28 echo 'MPI libs' > ${file_lmpi} 29 echo 'NetCDF libs' > ${file_ncdf} 30 echo 'Input files' > ${file_inpt} 31 echo 'Elapsed time' > ${file_time} 32 echo 'Memory (Phy./Virt.)' > ${file_memy} 33 echo 'Comments' > ${file_note} 28 34 29 35 ## 'Failed' status with 'Unknown error' by default 30 echo ${TRUS _RSLT}\36 echo ${TRUST_FLAG_RESULT} \ 31 37 >> ${file_rslt} 32 38 echo 'Unknown error' \ … … 36 42 get_date() { 37 43 ## UTC time zone for timestamping 38 local dat=$( date -ud "${TRUS _DATE}" +"%F %R %Z" )44 local dat=$( date -ud "${TRUST_TEST_DATE}" +"%F %R %Z" ) 39 45 40 46 echo $dat \ … … 47 53 48 54 ## Loop on essential NEMO directories 49 for dir in ${TRUS _CKOT} ${TRUS_XIOS}; do55 for dir in ${TRUST_SVN_CO} ${TRUST_DIR_XIOS}; do 50 56 51 57 ## For time being, just get revision from XIOS with no action on directory 52 if [ $dir == ${TRUS _XIOS} ]; then58 if [ $dir == ${TRUST_DIR_XIOS} ]; then 53 59 rev_loc=$( svn info $dir | awk '/Last Changed Rev/ {print $NF}' ) 54 60 echo 'XIOS '${rev_loc} \ 55 61 >> model.log 56 echo "<a href=\"https://forge.ipsl.jussieu.fr/ioserver/changeset/${rev_loc}\" target=\"_blank\">${rev_loc}</a>" \ 62 echo "<a href=\"https://forge.ipsl.jussieu.fr/ioserver/changeset/${rev_loc}\" target=\"_blank\"> \ 63 ${rev_loc} \ 64 </a>" \ 57 65 >> ${file_xios} 58 66 continue 59 67 fi 60 68 61 echo $dir && ${TRUS_SVNA} ${TRUS_NGCM}/$dir 62 rev_loc=$( svn info ${TRUS_NGCM}/$dir | awk '/Last Changed Rev/ {print $NF}' ) 69 echo $dir && ${TRUST_SVN_ACTION} ${TRUST_DIR_NEMOGCM}/$dir 70 rev_loc=$( svn info ${TRUST_DIR_NEMOGCM}/$dir \ 71 | awk '/Last Changed Rev/ {print $NF}' ) 63 72 64 73 ## Keep last rev. nb … … 68 77 echo 'NEMOGCM '$rev \ 69 78 >> model.log 70 echo "<a href=\"https://forge.ipsl.jussieu.fr/nemo/changeset/$rev\" target=\"_blank\">$rev</a>" \ 79 echo "<a href=\"https://forge.ipsl.jussieu.fr/nemo/changeset/$rev\" target=\"_blank\"> \ 80 $rev \ 81 </a> " \ 71 82 >> ${file_nemo} 72 83 } 73 84 74 85 get_soft_rel() { 75 local soft_relstr86 local ver str 76 87 77 88 ## Sourcing environment 78 if [ -n "${TRUS_ENVI}" ]; then 79 if [[ -e ${TRUS_ENVI}.env && $( declare -F | grep ' module' ) ]]; then 80 ## .env file if module function is available 81 . ${TRUS_ENVI}.env 82 else 83 ## .path file if existing, if not the given file 84 [ -e ${TRUS_ENVI}.path ] && . ${TRUS_ENVI}.path || . ${TRUS_ENVI} 85 fi 86 fi 87 88 ## Problem with `prepend-path` of modulefile that use ':' instead of ' ' as delimiter 89 [ $TRUS_HPCC == 'X64_ADA' ] && WRAPPER_LDFLAGS='-L/smplocal/pub/IdrMemMPI/1.4/lib -lidrmem '${WRAPPER_LDFLAGS} 90 91 for str in ${TRUS_CMPV} ${TRUS_MPIR} ${TRUS_CDFR} ${TRUS_CDOR}; do 89 . ${TRUST_JOB_ENV} 90 91 for str in ${TRUST_COMPILE_FORTRAN} \ 92 ${TRUST_COMPILE_MPI} ${TRUST_COMPILE_NETCDF} \ 93 ${TRUST_CDO} ; do 92 94 [ -z "$str" ] && continue 93 soft_rel='' 94 95 ## Software release: next word after "$soft" in $PATH (case-insensitive) 96 soft_rel=$( echo $PATH | sed "s#.*$str\([0-9.a-z_]*\).*#\1#i" ) 97 98 ## option --version would work for main compilers (gfortran, intel, pgfortran, ...) 99 [ $str == ${TRUS_CMPV} ] && soft_rel=$( $str --version | grep -m1 -oe '\<[0-9. ]*\>' ) 95 ver='' 96 97 ## Extract version number after searching pattern in PATH env. variable 98 ver=$( echo $PATH | sed "s|.*\($str[0-9.]*\).*|\1|" ) 99 100 ## option --version would work for main Fortran compilers and CDO 101 if [[ $str =~ ${TRUST_COMPILE_FORTRAN}|${TRUST_CDO} ]]; then 102 ver=$( $str --version 2>&1 | grep -m1 -oe '\<[0-9. ]*\>' \ 103 | xargs echo $str ) 104 fi 100 105 101 106 ## Cleaning characters string to display proper soft name 102 str=$( echo $str | sed 's#\\##g; s#[/-]$##' ) 103 104 echo $str ${soft_rel} \ 107 #str=$( echo $str | sed 's|[/-]||g' ) 108 ver=$( echo $ver | sed 's|[/-]| |g' ) 109 110 echo $ver \ 105 111 >> model.log 106 112 done … … 116 122 get_inputs() { 117 123 # List archive content & extract it by default 118 local get_iol=$( eval "119 for archive in ${TRUS _TARF}; do120 tar -tvf ${TRUS _FORC}/\$archive >> inputs_list.txt;124 local inputs_list=$( eval " 125 for archive in ${TRUST_CFG_FORC}; do 126 tar -tvf ${TRUST_DIR_FORC}/\$archive >> inputs_list.txt; 121 127 done 122 128 " ) 123 local get_iof=$( eval "124 for archive in ${TRUS _TARF}; do125 tar -vxf ${TRUS _FORC}/\$archive >/dev/null;129 local inputs_get=$( eval " 130 for archive in ${TRUST_CFG_FORC}; do 131 tar -vxf ${TRUST_DIR_FORC}/\$archive > /dev/null; 126 132 done 127 133 " ) 128 134 129 ## List & copy files in case of personal inputs130 if [ -z "${TRUS _TARF}" ]; then131 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`]; then135 ## List & copy files without archive 136 if [ -z "${TRUST_CFG_FORC}" ]; then 137 inputs_list=" ls -lh ${TRUST_DIR_FORC}/* >> inputs_list.txt" 138 inputs_get=" \cp ${TRUST_DIR_FORC}/* . " 139 fi 140 141 ${inputs_list}; ${inputs_get} 142 143 if [ $( find -name '*.gz' -print -quit ) ]; then 138 144 find . -name '*.gz' -exec gzip -d {} \; 139 145 fi … … 149 155 150 156 ## Continue even if input file is not in here (see after) 151 if [ -e ${TRUS_STOR}/$file ]; then dif=$( diff -q $file ${TRUS_STOR}/$file ); else dif=0; fi 157 if [ -e ${TRUST_DIR_STORE}/$file ]; then 158 dif=$( diff -q $file ${TRUST_DIR_STORE}/$file ) 159 else 160 dif=0 161 fi 152 162 153 163 ## Pass over useless file omission in benckmark directory 154 [[ -n "$dif" && "$dif" != '0' ]] && { mesg='Different'; echo $dif; files_list+=$file' '; } 164 if [[ -n "$dif" && "$dif" != '0' ]]; then 165 mesg='Different' 166 echo $dif 167 files_list+=$file' ' 168 fi 169 155 170 done 156 171 … … 170 185 171 186 ## Append a log file while pending 172 while [[ $( eval ${TRUS_JSTA} ) && ${time_elapsed} -lt ${TRUS_TOUT} ]]; do 173 printf "\n%s\n" ${outline// /#} \ 187 while [[ $( eval ${TRUST_JOB_STATE} ) \ 188 && ${time_elapsed} -lt ${TRUST_JOB_TIMEOUT} ]]; do 189 printf "\n%s\n" ${outline// /#} \ 174 190 >> computation.log 175 [ -n "${TRUS _JINF}" ] && eval ${TRUS_JINF} \191 [ -n "${TRUST_JOB_INFO}" ] && eval ${TRUST_JOB_INFO} \ 176 192 >> computation.log 177 193 sleep ${time_increment} … … 182 198 183 199 ## Kill remaining job & stop the test if it's too long 184 [ ${time_elapsed} -eq ${TRUS_TOUT} ] && { eval ${TRUS_JKIL} &> /dev/null; get_out 6; } 200 if [ ${time_elapsed} -eq ${TRUST_JOB_TIMEOUT} ]; then 201 eval ${TRUST_JOB_KILL} &> /dev/null 202 get_out 6 203 fi 204 185 205 } 186 206 … … 191 211 ## Simple diff 192 212 for file in 'ocean.output' *.stat; do 193 ## Stop if no benchmark files (ocean.output, eventual stat files) 194 [ ! -e ${TRUS_STOR}/$file ] && { TRUS_RSLT='FAILED'; get_out 7; } 195 196 diff -q $file ${TRUS_STOR}/$file 213 ## Stop if no minimal benchmark files (ocean.output, eventual stat files) 214 if [ ! -e ${TRUST_DIR_STORE}/$file ]; then 215 TRUST_FLAG_RESULT='FAILED' 216 get_out 7 217 fi 218 219 diff -q $file ${TRUST_DIR_STORE}/$file 197 220 198 221 ## Continue even if it differs 199 [ $? -ne 0 ] && { TRUS_RSLT='FAILED'; mesg='Different'; files_list+=$file' '; } 222 if [ $? -ne 0 ]; then 223 TRUST_FLAG_RESULT='FAILED' 224 mesg='Different' 225 files_list+=$file' ' 226 fi 227 200 228 done 201 229 … … 207 235 } 208 236 209 diff_restart () {237 diff_restarts() { 210 238 local dif filebase filebases ndomain out 211 local files_list='' dif_sum=' undef'239 local files_list='' dif_sum='0' #bcmk='false' 212 240 213 241 ## Find all restart files to rebuild 214 242 if [ $( find -regex ".*_restart.*[0-9]\.nc" -print -quit ) ]; then 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} \ 243 ################################################################ 244 ## Think to set the confgiguration name in the 'namelist_cfg' ## 245 ################################################################ 246 filebases=$( find -regextype sed -regex ".*${TRUST_CFG_NEW}.*_[0-9]\{4\}\.nc" \ 247 | sed 's/\(.*\)_.*/\1/' | sort -u ) 248 249 for filebase in $filebases; do 250 251 ndomain=$( find -regex ".*${filebase}_[0-9]*.nc" \ 252 | wc -l | awk '{print $1}' ) 253 254 [ $ndomain -eq 0 ] && TRUST_FLAG_RESULT='FAILED' && get_out 8 255 256 ${TRUST_DIR_NEMOGCM}/TOOLS/REBUILD_NEMO/rebuild_nemo \ 257 -t ${TRUST_COMPILE_NPROC} $filebase $ndomain \ 226 258 > /dev/null 227 259 228 260 ## Possibility of remaining decomposed restarts (even after rebuild) 229 [ $? -eq 0 ] && rm -f ${file }_[0-9]*.nc \261 [ $? -eq 0 ] && rm -f ${filebase}_[0-9]*.nc \ 230 262 > /dev/null 231 263 232 dif=''233 234 264 ## 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}' ) 265 if [ -e ${TRUST_DIR_STORE}/$filebase.nc ]; then 266 267 #bcmk='true' 268 cdo diffn $filebase.nc ${TRUST_DIR_STORE}/$filebase.nc \ 269 > cdo_diff.out 2> /dev/null 270 271 ## Identical if cdo_diff.out is zero size 272 [ ! -s cdo_diff.out ] && continue 273 274 dif=$( grep -om1 '[0-9]* of [0-9]* records' cdo_diff.out ) 275 276 if [ -n "$dif" ]; then 277 export TRUST_FLAG_RESULT='FAILED' 278 files_list+=$filebase' ' && echo $filebase'.nc: '$dif 279 let dif_sum+=$( echo $dif | sed '|^\([0-9]*\).*|\1|' ) 243 280 fi 244 281 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}' ) 249 fi 282 fi 250 283 251 284 done 252 285 253 ## Stop if no benchmark files (ie time.step) 254 if [ ${dif_sum} == 'undef' ]; then 255 TRUS_RSLT='FAILED' 256 get_out 7 257 ## List different files for web comment with sum of different records 258 elif [ ${dif_sum} -ne 0 ]; then 286 ## No benchmark files 287 #if [ $bcmk == 'false' ]; then 288 # TRUST_FLAG_RESULT='FAILED' 289 # get_out 7 290 #fi 291 292 ## List modified restart(s) for web comment with sum of differences 293 if [ ${dif_sum} -ne 0 ]; then 259 294 echo 'Restarts: '${files_list}${dif_sum}' record(s) differ<br>' \ 260 295 >> temp_${file_note} … … 263 298 fi 264 299 265 else266 TRUS_RSLT='FAILED'267 300 fi 268 301 … … 270 303 271 304 get_time() { 272 [ -z "${TRUS _JTIM}" ] && return305 [ -z "${TRUST_JOB_TIME}" ] && return 273 306 274 307 ## Interest for checking unusual time computation 275 local time_cpu=$( eval ${TRUS _JTIM} )308 local time_cpu=$( eval ${TRUST_JOB_TIME} ) 276 309 277 310 printf "Elapsed time: " … … 280 313 281 314 get_memy() { 282 [[ -z "${TRUS _JPME}" && -z "${TRUS_JVME}" ]] && return315 [[ -z "${TRUST_JOB_RAM_P}" && -z "${TRUST_JOB_RAM_V}" ]] && return 283 316 284 317 ## Interest for checking unusual memory usage 285 local memory_pmax=$( eval ${TRUS_JPME} ) memory_vmax=$( eval ${TRUS_JVME} ) 318 local memory_pmax=$( eval ${TRUST_JOB_RAM_P} ) 319 local memory_vmax=$( eval ${TRUST_JOB_RAM_V} ) 286 320 287 321 printf "Memory max usage (physical/virtual): " … … 308 342 log_make() { 309 343 ## Format comments for web 310 [ -e temp_${file_note} ] && cat temp_${file_note} | tr -d '\n' | sed 's/<br>$//' \ 311 >> ${file_note} 344 if [ -e temp_${file_note} ]; then 345 cat temp_${file_note} | tr -d '\n' | sed 's/<br>$//' \ 346 >> ${file_note} 347 fi 312 348 313 349 ## Construct txt file with all messenger files 314 paste -d ';' mesg_*.txt | tee ${TRUS _FILE}350 paste -d ';' mesg_*.txt | tee ${TRUST_TEST_SUMMARY} 315 351 } 316 352 … … 320 356 321 357 ## Production mode (-p|--prod) 322 if [ ${TRUS _PROD} -eq 1 ]; then358 if [ ${TRUST_FLAG_PROD} -eq 1 ]; then 323 359 324 360 ## Create or append trusting logfile 325 if [ -f ${TRUS _HIST} ]; then cmd='tail -1'; else cmd='cat'; fi326 327 $cmd ${TRUS _FILE}\328 >> ${TRUS _HIST}361 if [ -f ${TRUST_TEST_LOG} ]; then cmd='tail -1'; else cmd='cat'; fi 362 363 $cmd ${TRUST_TEST_SUMMARY} \ 364 >> ${TRUST_TEST_LOG} 329 365 330 366 ## Send mail only when FAILED 331 if [[ ! -z "${TRUS_MAIL}" && ${TRUS_RSLT} == 'FAILED' ]]; then 367 if [[ ! -z "${TRUST_TEST_MAILING}" \ 368 && ${TRUST_FLAG_RESULT} == 'FAILED' ]]; then 332 369 333 370 ## Content … … 337 374 338 375 339 The trusting sequence has not completed successfully on new configuration ${TRUS_CONF} based on ${TRUS_REFE}. 340 341 Here is the model summary: 376 The following trusting sequence has not completed successfully: 377 378 Testing configuration ${TRUST_CFG_NEW} based on ${TRUST_CFG_REF}. 379 User installation ${TRUST_MAIN_USER} 380 HPC environment ${TRUST_MAIN_HPCC} 381 382 Here is the running environment summary: 342 383 `cat model.log` 343 384 344 First checking would be on the trusting environment files:345 ${TRUS_USER}.cfg & ${TRUS_HPCC}.cfg346 347 385 For more details, look into the testing folder at: 348 ${TRUS_SCRA} 349 350 An archive has been created to share the questionable configuration for further studies: 351 ${TRUS_STOR}/${TRUS_ARCH} 386 ${TRUST_DIR_SCRATCH} 387 An archive is also available to share the questionable configuration: 388 ${TRUST_DIR_STORE}/${TRUST_TEST_BACKUP} 352 389 353 390 END_MAIL 354 391 355 392 ## Send with detailed subject 356 mail -s "[NEMO Trusting][$rev][${TRUS_BRAN}][${TRUS_REFE}] ${TRUS_RSLT} ${TRUS_RORR}" ${TRUS_MAIL} \ 393 mail -s "[NEMO Trusting][${TRUST_CFG_REF}][${TRUST_SVN_BRANCH}] \ 394 ${TRUST_FLAG_RESULT} ${TRUST_FLAG_ERROR}" \ 395 ${TRUST_TEST_MAILING} \ 357 396 < trusting.mail 358 397 fi … … 364 403 local time_step=0 365 404 366 TRUS _RORR=$1405 TRUST_FLAG_ERROR=$1 367 406 368 407 printf "\n\nEnd of test\n" 369 408 370 409 ## In case of compilation error 371 cd ${TRUS _SCRA}372 373 if [ ${TRUS _RSLT} == 'FAILED' ]; then410 cd ${TRUST_DIR_SCRATCH} 411 412 if [ ${TRUST_FLAG_RESULT} == 'FAILED' ]; then 374 413 echo 'Failure' 375 414 376 415 ## Error identification 377 case ${TRUS _RORR} in416 case ${TRUST_FLAG_ERROR} in 378 417 ## Compilation 379 '1') TRUS_RORR='XIOS compilation failed' ;; '2') TRUS_RORR='NEMO compilation failed';; 418 '1') TRUST_FLAG_ERROR='XIOS compilation failed' ;; 419 '2') TRUST_FLAG_ERROR='NEMO compilation failed' ;; 380 420 ## Submission 381 '3') TRUS_RORR='Missing input files' ;; '4') TRUS_RORR='Job submission error' ;; 382 ## Computation 383 '5') TRUS_RORR='Crashed at time step' ;; '6') TRUS_RORR='Exceeded time limit' ;; 421 '3') TRUST_FLAG_ERROR='Missing input files' ;; 422 '4') TRUST_FLAG_ERROR='Job submission error' ;; 423 ## Computing 424 '5') TRUST_FLAG_ERROR='Crashed at time step' ;; 425 '6') TRUST_FLAG_ERROR='Exceeded time limit' ;; 384 426 ## Results 385 '7') TRUS_RORR='Missing previous outputs';; '8') TRUS_RORR='New outputs differ' ;; 427 '7') TRUST_FLAG_ERROR='Missing previous outputs';; 428 '8') TRUST_FLAG_ERROR='New outputs differ' ;; 386 429 ## Other 387 '*') TRUS _RORR='Unknown error' ;;430 '*') TRUST_FLAG_ERROR='Unknown error' ;; 388 431 esac 389 432 390 433 else 391 echo 'Success' && TRUS _RORR='Code is reliable'434 echo 'Success' && TRUST_FLAG_ERROR='Code is reliable' 392 435 fi 393 436 394 437 ## Eventual comments from ocean.output 395 if [ "${TRUS _RORR}" == 'Crashed at time step' ]; then438 if [ "${TRUST_FLAG_ERROR}" == 'Crashed at time step' ]; then 396 439 comments 'E R R O R' 397 [ -e time.step ] && time_step=$( grep -o [0-9]*time.step )398 TRUS _RORR+=' '$time_step440 [ -e time.step ] && time_step=$( cat time.step ) 441 TRUST_FLAG_ERROR+=' '$time_step 399 442 else 400 443 comments 'W A R N I N G' 401 [ "${TRUS_RORR}" == 'Exceeded time limit' ] && TRUS_RORR+=' '$(( ${TRUS_TOUT}/3600 ))'h' 444 445 if [ "${TRUST_FLAG_ERROR}" == 'Exceeded time limit' ]; then 446 TRUST_FLAG_ERROR+=' '$(( ${TRUST_JOB_TIMEOUT}/3600 ))'h' 447 fi 448 402 449 fi 403 450 404 451 ## Last messenger files 405 #export TRUS_RORR406 sed -i "2 s/.*/$TRUS _RSLT/" ${file_rslt}; sed -i "2 s/.*/$TRUS_RORR/" ${file_stat}452 sed -i "2 s/.*/$TRUST_RESULT/" ${file_rslt} 453 sed -i "2 s/.*/$TRUST_FLAG_ERROR/" ${file_stat} 407 454 408 455 ## Save tested configuration if trusting failed in production mode (-p|--prod) 409 if [[ ${TRUS_RSLT} == 'FAILED' && ${TRUS_PROD} -eq 1 ]]; then 410 echo 'Creating archive '${TRUS_ARCH}' under '${TRUS_STOR} 411 tar -czf ${TRUS_STOR}/${TRUS_ARCH} * \ 412 -C ${TRUS_NGCM}/CONFIG/${TRUS_CONF}/MY_SRC . \ 413 -C ${TRUS_NGCM}/CONFIG/${TRUS_CONF} cpp_${TRUS_CONF}.fcm 456 if [[ ${TRUST_FLAG_RESULT} == 'FAILED' && ${TRUST_FLAG_PROD} -eq 1 ]]; then 457 echo 'Creating archive '${TRUST_TEST_BACKUP}' under '${TRUST_DIR_STORE} 458 tar -czf ${TRUST_DIR_STORE}/${TRUST_TEST_BACKUP} * \ 459 -C ${TRUST_DIR_NEMOGCM}/CONFIG/${TRUST_CFG_NEW}/MY_SRC . \ 460 -C ${TRUST_DIR_NEMOGCM}/CONFIG/${TRUST_CFG_NEW} \ 461 cpp_${TRUST_CFG_NEW}.fcm 414 462 fi 415 463 -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/install_new_branch.sh
r8797 r8808 6 6 ## Set defaults 7 7 ##--------------------------------------------------- 8 TRUS _DBUG=0; TRUS_PROD=0; TRUS_HELP=08 TRUST_FLAG_DEBUG=0; TRUST_FLAG_PROD=0; TRUST_FLAG_HELP=0 9 9 10 10 … … 13 13 while [ $# -ne 0 ]; do 14 14 case $1 in 15 '-d'|'--debug' ) TRUS _DBUG=1 ; shift ;; '-j'|'--job' ) TRUS_NPRO=$2; shift 2;;16 '-m'|'--machine') TRUS _HPCC=$2; shift 2;; '-h'|'--help' ) TRUS_HELP=1 ; shift ;;17 '-u'|'--user' ) TRUS _USER=$2; shift 2;; "*" ) TRUS_HELP=1 ; shift ;;15 '-d'|'--debug' ) TRUST_FLAG_DEBUG=1 ; shift ;; '-j'|'--job' ) TRUST_COMPILE_NPROC=$2; shift 2;; 16 '-m'|'--machine') TRUST_MAIN_HPCC=$2; shift 2;; '-h'|'--help' ) TRUST_FLAG_HELP=1 ; shift ;; 17 '-u'|'--user' ) TRUST_MAIN_USER=$2; shift 2;; "*" ) TRUST_FLAG_HELP=1 ; shift ;; 18 18 esac 19 19 done … … 22 22 ## Initialization (HPC & user environment) 23 23 ##--------------------------------------------------- 24 if [[ ! -e cfg/${TRUS _USER}.cfg || ! -e cfg/${TRUS_HPCC}.cfg || ${TRUS_HELP} -eq 1 ]]; then24 if [[ ! -e cfg/${TRUST_MAIN_USER}.cfg || ! -e cfg/${TRUST_MAIN_HPCC}.cfg || ${TRUST_FLAG_HELP} -eq 1 ]]; then 25 25 cat ./inc/trusting_help.txt 26 26 27 if [ ${TRUS _HELP} -eq 0 ]; then27 if [ ${TRUST_FLAG_HELP} -eq 0 ]; then 28 28 printf "\n\n\033[0;33m" 29 29 printf "At least one configuration (arch or user) file is missing or misspelled:" 30 printf "\t'%s'.cfg\t'%s'.cfg" ${TRUS _USER} ${TRUS_HPCC}30 printf "\t'%s'.cfg\t'%s'.cfg" ${TRUST_MAIN_USER} ${TRUST_MAIN_HPCC} 31 31 printf "\033[0m" 32 32 fi … … 38 38 else 39 39 . ./inc/trusting.env 40 [ ${TRUS _DBUG} -eq 1 ] && set -vx40 [ ${TRUST_FLAG_DEBUG} -eq 1 ] && set -vx 41 41 fi 42 42 … … 44 44 ## List last branches from NEMO Forge 45 45 ##--------------------------------------------------- 46 printf "\nWhat branch do you want to install in "${TRUS _WORK}" for trusting test ? "46 printf "\nWhat branch do you want to install in "${TRUST_DIR_WORK}" for trusting test ? " 47 47 echo 'Enter 0 to abort' 48 select branch in 'trunk' $( svn ls ${TRUS _SVNR}/branches/2015 | tr -d / | sort -r ); do48 select branch in 'trunk' $( svn ls ${TRUST_SVN_REPO}/branches/2015 | tr -d / | sort -r ); do 49 49 50 if [ $REPLY -eq 0 ]; then exit 1; else export TRUS _BRAN=$branch; fi50 if [ $REPLY -eq 0 ]; then exit 1; else export TRUST_SVN_BRANCH=$branch; fi 51 51 52 printf "\nInstallation of a working copy of '%s' branch in '%s'? " ${TRUS _BRAN} ${TRUS_WORK}52 printf "\nInstallation of a working copy of '%s' branch in '%s'? " ${TRUST_SVN_BRANCH} ${TRUST_DIR_WORK} 53 53 printf "\nType [Y|y|yes] to confirm, if not back to branches list number\n" 54 54 read answer … … 62 62 ## First checkout of selected branch 63 63 ##--------------------------------------------------- 64 echo 'Initial checkout of '${TRUS _BRAN}' branch'65 mkdir -p ${TRUS _WORK}/${TRUS_BRAN}/NEMOGCM66 cd ${TRUS _WORK}/${TRUS_BRAN}/NEMOGCM64 echo 'Initial checkout of '${TRUST_SVN_BRANCH}' branch' 65 mkdir -p ${TRUST_DIR_WORK}/${TRUST_SVN_BRANCH}/NEMOGCM 66 cd ${TRUST_DIR_WORK}/${TRUST_SVN_BRANCH}/NEMOGCM 67 67 68 svn_bran=branches/2015/${TRUS _BRAN}69 [ ${TRUS _BRAN} == 'trunk' ] && svn_bran=${TRUS_BRAN}68 svn_bran=branches/2015/${TRUST_SVN_BRANCH} 69 [ ${TRUST_SVN_BRANCH} == 'trunk' ] && svn_bran=${TRUST_SVN_BRANCH} 70 70 71 for elmt in ${TRUS _CKOT}; do71 for elmt in ${TRUST_SVN_CO}; do 72 72 [ $elmt == '\' ] && continue 73 73 printf "%s " $elmt 74 74 75 75 if [ $elmt == 'TOOLS/maketools' ]; then 76 svn co -q ${TRUS _SVNR}/${svn_bran}/NEMOGCM/TOOLS --depth empty76 svn co -q ${TRUST_SVN_REPO}/${svn_bran}/NEMOGCM/TOOLS --depth empty 77 77 svn up -q $elmt 78 78 else 79 svn co -q ${TRUS _SVNR}/${svn_bran}/NEMOGCM/$elmt $elmt79 svn co -q ${TRUST_SVN_REPO}/${svn_bran}/NEMOGCM/$elmt $elmt 80 80 fi 81 81 … … 87 87 ## Compile rebuild_nemo.exe in anticipation 88 88 ##--------------------------------------------------- 89 if [ $( find ARCH -name arch-${TRUS _HPCC}.fcm ) ]; then89 if [ $( find ARCH -name arch-${TRUST_MAIN_HPCC}.fcm ) ]; then 90 90 echo 'Compile NEMO rebuild tool' 91 cd TOOLS && ./maketools -n REBUILD_NEMO -m ${TRUS _HPCC} -j ${TRUS_NPRO} >& /dev/null91 cd TOOLS && ./maketools -n REBUILD_NEMO -m ${TRUST_MAIN_HPCC} -j ${TRUST_COMPILE_NPROC} >& /dev/null 92 92 [ -e REBUILD_NEMO/rebuild_nemo.exe ] && printf "\033[0;32mOK\033[0m" || printf "\033[0;31mKO\033[0m" 93 93 printf "\n\n" -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/trusting.sh
r8797 r8808 6 6 ## Set defaults 7 7 ##--------------------------------------------------- 8 TRUS _DIRE=$PWD9 TRUS _DBUG=0; TRUS_PROD=0; TRUS_HELP=08 TRUST_MAIN_DIR=$PWD 9 TRUST_FLAG_DEBUG=0; TRUST_FLAG_PROD=0; TRUST_FLAG_HELP=0 10 10 ## No update on SVN directories & 'FAILED' result for 'Unknown error' ) 11 TRUS_SVNA='svn status'; TRUS_RSLT='FAILED'; TRUS_RORR=0 11 TRUST_SVN_ACTION='svn status' 12 TRUST_FLAG_RESULT='FAILED'; TRUST_FLAG_ERROR=0 13 12 14 xios_mode='--full'; stdout_redir='>&' 13 15 rev=$( svn info | awk '(NR == 9) {print $NF}' ) … … 17 19 ##--------------------------------------------------- 18 20 while [ $# -ne 0 ]; do 21 19 22 case $1 in 20 '-a'|'--archive') TRUS _TARF=$2; shift 2;; '-b'|'--branch' ) TRUS_BRAN=$2; shift 2;;21 '-d'|'--debug' ) TRUS _DBUG=1 ; shift ;; '-e'|'--email' ) TRUS_MAIL=$2; shift 2;;22 '-f'|'--forcdir') TRUS _FORC=$2; shift 2;; '-j'|'--job' ) TRUS_NPRO=$2; shift 2;;23 '-h'|'--help' ) TRUS _HELP=1 ; shift ;; '-m'|'--machine') TRUS_HPCC=$2; shift 2;;24 '-n'|'--newconf') TRUS _CONF=$2; shift 2;; '-r'|'--refconf') TRUS_REFE=$2; shift 2;;25 '-t'|'--time' ) TRUS _TOUT=$2; shift 2;; '-p'|'--prod' ) TRUS_PROD=1 ; shift ;;26 '-u'|'--user' ) TRUS _USER=$2; shift 2;; '-v'|'--version') TRUS_SVNV=$2; shift 2;;27 '-w'|'--workdir') TRUS _WORK=$2; shift 2;; "*" ) TRUS_HELP=1 ; shift ;;23 '-a'|'--archive') TRUST_CFG_FORC=$2; shift 2;; '-b'|'--branch' ) TRUST_SVN_BRANCH=$2; shift 2;; 24 '-d'|'--debug' ) TRUST_FLAG_DEBUG=1 ; shift ;; '-e'|'--email' ) TRUST_TEST_MAILING=$2; shift 2;; 25 '-f'|'--forcdir') TRUST_DIR_FORC=$2; shift 2;; '-j'|'--job' ) TRUST_COMPILE_NPROC=$2; shift 2;; 26 '-h'|'--help' ) TRUST_FLAG_HELP=1 ; shift ;; '-m'|'--machine') TRUST_MAIN_HPCC=$2; shift 2;; 27 '-n'|'--newconf') TRUST_CFG_NEW=$2; shift 2;; '-r'|'--refconf') TRUST_CFG_REF=$2; shift 2;; 28 '-t'|'--time' ) TRUST_JOB_TIMEOUT=$2; shift 2;; '-p'|'--prod' ) TRUST_FLAG_PROD=1 ; shift ;; 29 '-u'|'--user' ) TRUST_MAIN_USER=$2; shift 2;; '-v'|'--version') TRUST_SVN_REV=$2; shift 2;; 30 '-w'|'--workdir') TRUST_DIR_WORK=$2; shift 2;; "*" ) TRUST_FLAG_HELP=1 ; shift ;; 28 31 esac 32 29 33 done 30 34 … … 32 36 ## Initialization (HPC & user environment) 33 37 ##--------------------------------------------------- 34 if [[ ! -e cfg/${TRUS _USER}.cfg || ! -e cfg/${TRUS_HPCC}.cfg || ${TRUS_HELP} -eq 1 ]]; then38 if [[ ! -e cfg/${TRUST_MAIN_USER}.cfg || ! -e cfg/${TRUST_MAIN_HPCC}.cfg || ${TRUST_FLAG_HELP} -eq 1 ]]; then 35 39 cat ./inc/trusting_help.txt 36 40 37 if [ ${TRUS _HELP} -eq 0 ]; then41 if [ ${TRUST_FLAG_HELP} -eq 0 ]; then 38 42 printf "\n\n\033[0;33m" 39 43 printf "At least one configuration (arch or user) file is missing or misspelled:" 40 printf "\t'%s'.cfg\t'%s'.cfg" ${TRUS _USER} ${TRUS_HPCC}44 printf "\t'%s'.cfg\t'%s'.cfg" ${TRUST_MAIN_USER} ${TRUST_MAIN_HPCC} 41 45 printf "\033[0m" 42 46 fi … … 50 54 51 55 ## DEBUG option to speed up & expand verbosity of compilation 52 [ ${TRUS _DBUG} -eq 1 ] && { set -vx; xios_mode=''; stdout_redir='>'; }56 [ ${TRUST_FLAG_DEBUG} -eq 1 ] && { set -vx; xios_mode=''; stdout_redir='>'; } 53 57 54 58 ## If -v|--version option has been set, modify default SVN action on directories 55 if [ $( echo ${TRUS _SVNV} | grep "HEAD\|up\|update" ) ]; then56 TRUS _SVNA='svn update -r HEAD'57 elif [ $( echo ${TRUS _SVNV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then58 TRUS _SVNA='svn update -r '$( echo ${TRUS_SVNV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' )59 elif [ $( echo ${TRUS _SVNV} | grep -o '[0-9]*' ) ]; then60 TRUS _SVNA='svn update -r '$( echo ${TRUS_SVNV} | grep -o '[0-9]*' )59 if [ $( echo ${TRUST_SVN_REV} | grep "HEAD\|up\|update" ) ]; then 60 TRUST_SVN_ACTION='svn update -r HEAD' 61 elif [ $( echo ${TRUST_SVN_REV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then 62 TRUST_SVN_ACTION='svn update -r '$( echo ${TRUST_SVN_REV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) 63 elif [ $( echo ${TRUST_SVN_REV} | grep -o '[0-9]*' ) ]; then 64 TRUST_SVN_ACTION='svn update -r '$( echo ${TRUST_SVN_REV} | grep -o '[0-9]*' ) 61 65 fi 62 66 … … 67 71 ##--------------------------------------------------- 68 72 echo 73 69 74 if [ -t 0 ]; then cat ./inc/banner.txt; else cat ./inc/banner.html; fi 75 70 76 echo 71 77 echo '****************************************************************************************************' … … 76 82 echo '****************************************************************************************************' 77 83 echo 78 printf "\t§ Testing configuration\t\t%s based on %s\n" ${TRUS _CONF} ${TRUS_REFE}79 printf "\t§ SVN working copy\t\t%s/%s\n" ${TRUS _WORK} ${TRUS_BRAN}80 printf "\t§ Benchmark folder\t\t%s\n" ${TRUS _STOR}81 printf "\t§ (Super)Computer\t\t%s\n" ${TRUS _HPCC}82 printf "\t§ User installation\t\t%s\n\n" ${TRUS _USER}84 printf "\t§ Testing configuration\t\t%s based on %s\n" ${TRUST_CFG_NEW} ${TRUST_CFG_REF} 85 printf "\t§ SVN working copy\t\t%s/%s\n" ${TRUST_DIR_WORK} ${TRUST_SVN_BRANCH} 86 printf "\t§ Benchmark folder\t\t%s\n" ${TRUST_DIR_STORE} 87 printf "\t§ (Super)Computer\t\t%s\n" ${TRUST_MAIN_HPCC} 88 printf "\t§ User installation\t\t%s\n\n" ${TRUST_MAIN_USER} 83 89 84 90 … … 86 92 ##--------------------------------------------------- 87 93 print_step 'Timestamped testing directory' 88 mkdir -p ${TRUS_SCRA} ${TRUS_STOR} 89 cd ${TRUS_SCRA} 90 echo ${TRUS_SCRA} 94 95 mkdir -p ${TRUST_DIR_SCRATCH} ${TRUST_DIR_STORE} 96 cd ${TRUST_DIR_SCRATCH} 97 echo ${TRUST_DIR_SCRATCH} 98 91 99 init_files 100 92 101 get_date 93 102 … … 95 104 ## Get SVN revision on XIOS & NEMO essentials directories 96 105 ##--------------------------------------------------- 97 print_step "SVN action on NEMO directories: ${TRUS_SVNA}" 106 print_step "SVN action on NEMO directories: ${TRUST_SVN_ACTION}" 107 98 108 get_nemo_rev 99 109 … … 102 112 ##--------------------------------------------------- 103 113 print_step 'Get testing environement' 114 104 115 get_soft_rel 116 105 117 cat model.log | awk '{printf "%-20s %s %s\n", $1, $2, $3}' 106 118 env | sort > env.log … … 110 122 ##--------------------------------------------------- 111 123 print_step 'Compile XIOS' 112 cd ${TRUS_XIOS} 113 eval ./make_xios ${xios_mode} --arch ${TRUS_HPCC} --job ${TRUS_NPRO} \ 124 125 cd ${TRUST_DIR_XIOS} 126 127 eval ./make_xios ${xios_mode} --arch ${TRUST_MAIN_HPCC} --job ${TRUST_COMPILE_NPROC} \ 114 128 ${stdout_redir} /dev/null 129 115 130 [ ! -e lib/libxios.a ] && get_out 1 || echo 'Success' 116 131 … … 118 133 ## NEMO compilation from scratch 119 134 ##--------------------------------------------------- 120 print_step "Compile ${TRUS_REFE} configuration" 121 cd ${TRUS_NGCM}/CONFIG 122 [[ -d ${TRUS_CONF} && ${TRUS_DBUG} -eq 0 ]] && ./makenemo -n ${TRUS_CONF} clean_config \ 123 > /dev/null <<EOF 135 print_step "Compile ${TRUST_CFG_REF} configuration" 136 137 cd ${TRUST_DIR_NEMOGCM}/CONFIG 138 139 if [[ -d ${TRUST_CFG_NEW} && ${TRUST_FLAG_DEBUG} -eq 0 ]]; then 140 ./makenemo -n ${TRUST_CFG_NEW} clean_config \ 141 > /dev/null <<EOF 124 142 y 125 143 EOF 126 127 eval ./makenemo -n ${TRUS_CONF} -r ${TRUS_REFE} -m ${TRUS_HPCC} -j ${TRUS_NPRO} \ 128 ${TRUS_KEYA} ${TRUS_KEYD} \ 144 fi 145 146 eval ./makenemo -n ${TRUST_CFG_NEW} -r ${TRUST_CFG_REF} \ 147 -m ${TRUST_MAIN_HPCC} -j ${TRUST_COMPILE_NPROC} \ 148 ${TRUST_CFG_KEY_ADD} ${TRUST_CFG_KEY_DEL} \ 129 149 ${stdout_redir} /dev/null 130 [ ! -e ${TRUS_CONF}/BLD/bin/nemo.exe ] && get_out 2 || echo 'Success' 150 151 [ ! -e ${TRUST_CFG_NEW}/BLD/bin/nemo.exe ] && get_out 2 || echo 'Success' 131 152 132 153 … … 134 155 ##--------------------------------------------------- 135 156 print_step 'Set job (copying or extracting inputs)' 136 cd ${TRUS_SCRA} 157 158 cd ${TRUST_DIR_SCRATCH} 159 137 160 get_inputs 138 cp ${TRUS_NGCM}/CONFIG/${TRUS_CONF}/cpp_* . 139 find ${TRUS_NGCM}/CONFIG/${TRUS_CONF}/EXP00 -regex '.*\(_cfg\|.in\|opa\|_ref\|.xml\)' \ 140 -exec cp {} . \; 161 162 cp ${TRUST_DIR_NEMOGCM}/CONFIG/${TRUST_CFG_NEW}/cpp_* . 163 find ${TRUST_DIR_NEMOGCM}/CONFIG/${TRUST_CFG_NEW}/EXP00 \ 164 -regex '.*\(_cfg\|.in\|opa\|_ref\|.xml\)' \ 165 -exec cp {} . \; 141 166 142 167 … … 144 169 ##--------------------------------------------------- 145 170 print_step 'Compare inputs' 171 146 172 diff_inputs 147 173 … … 150 176 ##--------------------------------------------------- 151 177 print_step 'Submit job' 152 cp ${TRUS_DIRE}/batch/${TRUS_JSPT} ${TRUS_SCRA} ## Copy the submitting script to testing folder 153 TRUS_JIDN=$( eval ${TRUS_JSUB} ) 154 [ $? -ne 0 ] && get_out 4 || printf "Success (job ID %s)\n" ${TRUS_JIDN} 178 179 ## Copy the submitting script to testing folder 180 cp ${TRUST_JOB_SCRIPT} ${TRUST_DIR_SCRATCH} 181 TRUST_JOB_ID=$( eval ${TRUST_JOB_SUBMIT} ) 182 183 [ $? -ne 0 ] && get_out 4 || printf "Success (job ID %s)\n" ${TRUST_JOB_ID} 184 155 185 print_step 'Pending job' 186 156 187 job_pending 188 157 189 print_step 'Job finished' 158 190 … … 161 193 ##--------------------------------------------------- 162 194 print_step 'Test job state' 163 [[ ! -e time.step || $( grep 'E R R O R' ocean.output ) ]] && get_out 5 || echo 'Success' ## Must be reviewed 195 196 if [[ ! -e time.step || $( grep 'E R R O R' ocean.output ) ]]; then 197 get_out 5 198 else 199 echo 'Success' ## Must be reviewed 200 fi 201 164 202 print_step 'Get job performances' 203 165 204 get_time 205 166 206 get_memy 167 207 … … 169 209 ## Check outputs 170 210 ##--------------------------------------------------- 171 TRUS_RSLT='OK' ## 'OK' by default 211 TRUST_FLAG_RESULT='OK' ## 'OK' by default 212 172 213 print_step 'Compare outputs' 214 173 215 diff_results 216 174 217 print_step 'Compare restarts' 175 diff_restart 176 [ $TRUS_RSLT == 'FAILED' ] && get_out 8 177 178 179 ## End, at least nothing has changed ;-) 218 219 diff_restarts 220 221 [ $TRUST_RESULT == 'FAILED' ] && get_out 8 222 223 224 ## End, at least nothing major has changed ;-) 180 225 ##--------------------------------------------------- 181 226 get_out 0 -
branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/web/index.html
r5933 r8808 31 31 ini_set('display_errors', 'Off'); error_reporting(E_ALL); 32 32 include 'read_trusting.php'; 33 $ DODS_TGCC="http://dods.extra.cea.fr/store/martin/trusting"; $DODS_IDRIS="http://dodsp.idris.fr/romr005/trusting";34 $file_headers=get_headers("${ DODS_TGCC}/ORCA2_LIM_PISCES/nemo_v3_6_STABLE/trusting_info.html");35 if ($file_headers[0] == '' ) { $LOCATION="./src/martin"; } else { $LOCATION="${ DODS_TGCC}"; }33 $TRUST_URL_TGCC="http://dods.extra.cea.fr/store/martin/trusting"; $TRUST_URL_IDRIS="http://dodsp.idris.fr/romr005/trusting"; 34 $file_headers=get_headers("${TRUST_URL_TGCC}/ORCA2_LIM_PISCES/nemo_v3_6_STABLE/trusting_info.html"); 35 if ($file_headers[0] == '' ) { $LOCATION="./src/martin"; } else { $LOCATION="${TRUST_URL_TGCC}"; } 36 36 ?> 37 37 38 38 <!--$ctx=stream_context_create(array('http'=>array('timeout'=>1))); 39 $test=file_get_contents("${ DODS_TGCC}/ORCA2_LIM_PISCES/nemo_v3_6_STABLE/trusting_info.html", 0, $ctx);40 if ($test == FALSE ) { $LOCATION="./src/martin"; } else { $LOCATION="${ DODS_TGCC}"; }-->39 $test=file_get_contents("${TRUST_URL_TGCC}/ORCA2_LIM_PISCES/nemo_v3_6_STABLE/trusting_info.html", 0, $ctx); 40 if ($test == FALSE ) { $LOCATION="./src/martin"; } else { $LOCATION="${TRUST_URL_TGCC}"; }--> 41 41 42 42 <!-----Begin NEMO trust-----> … … 69 69 <div class="dhtmlgoodies_aTab"> 70 70 <table class="sort-table" id="table-2" cellspacing="1"> 71 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>71 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 72 72 </table> 73 73 <script type="text/javascript"> … … 104 104 <div class="dhtmlgoodies_aTab"> 105 105 <table class="sort-table" id="table-4" cellspacing="1"> 106 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>106 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 107 107 </table> 108 108 <script type="text/javascript"> … … 139 139 <div class="dhtmlgoodies_aTab"> 140 140 <table class="sort-table" id="table-6" cellspacing="1"> 141 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>141 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 142 142 </table> 143 143 <script type="text/javascript"> … … 184 184 <div class="dhtmlgoodies_aTab"> 185 185 <table class="sort-table" id="table-8" cellspacing="1"> 186 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>186 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 187 187 </table> 188 188 <script type="text/javascript"> … … 219 219 <div class="dhtmlgoodies_aTab"> 220 220 <table class="sort-table" id="table-10" cellspacing="1"> 221 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>221 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 222 222 </table> 223 223 <script type="text/javascript"> … … 254 254 <div class="dhtmlgoodies_aTab"> 255 255 <table class="sort-table" id="table-12" cellspacing="1"> 256 <?php read_trusting("${ DODS_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?>256 <?php read_trusting("${TRUST_URL_IDRIS}/$CONF/$BRANCH/trusting_romr005_X64_ADA_at.txt") ?> 257 257 </table> 258 258 <script type="text/javascript">
Note: See TracChangeset
for help on using the changeset viewer.