New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trusting.env in branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc – NEMO

source: branches/2015/dev_r5092_CNRS18_TRUST/NEMOGCM/TRUST/inc/trusting.env @ 8843

Last change on this file since 8843 was 8843, checked in by nicolasmartin, 6 years ago

Review forcing inputs management + cosmetic changes

File size: 6.6 KB
Line 
1#!/bin/bash
2
3
4##--------------------------------------------------------------------------------
5## Defaults
6##--------------------------------------------------------------------------------
7
8## Trusting result: 'FAILED' result for 'Unknown error'
9export TRUST_FLAG_RESULT='FAILED' TRUST_FLAG_ERROR='X'
10
11## Locked options from command line (export as of now to environment)
12##-------------------------------------------------------------------
13
14if [ ${TRUST_FLAG_DEBUG} == 'false' ]; then
15    ## std mode (merge stdout & stderr to /dev/null, XIOS compilation from scratch)
16    TRUST_IO_XIOS_MODE='--full'
17    TRUST_MAIN_STDOUT='>& /dev/null'
18else
19    ## debug mode (verbose output and skip XIOS compilation)
20    TRUST_IO_XIOS_MODE=''
21    TRUST_MAIN_STDOUT='1> /dev/null'
22fi
23
24export TRUST_IO_XIOS_MODE TRUST_MAIN_STDOUT
25
26## If '-v' arg. has been set, modify default SVN action on working copy
27if [ ${TRUST_SVN_REV} ]; then
28
29    if   [ $( echo ${TRUST_SVN_REV} | grep  "HEAD\|up\|update"                     ) ]; then
30   TRUST_SVN_ACTION='svn update -r HEAD --accept mine-conflict'
31    elif [ $( echo ${TRUST_SVN_REV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then
32   TRUST_SVN_ACTION='svn update -r     '$( echo ${TRUST_SVN_REV} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' )
33    elif [ $( echo ${TRUST_SVN_REV} | grep -o '[0-9]*'                             ) ]; then
34   TRUST_SVN_ACTION='svn update -r     '$( echo ${TRUST_SVN_REV} | grep -o '[0-9]*' )
35    fi
36
37else
38    ## By default, no update on SVN directories
39    TRUST_SVN_ACTION='svn status'
40fi
41
42export TRUST_SVN_ACTION
43
44
45## Options editable by .cfg files (no export at this time)
46##--------------------------------------------------------
47
48## NEMO 'trunk' branch by default
49[ -z "${TRUST_SVN_BRANCH}" ] && TRUST_SVN_BRANCH='trunk'
50
51## Ref. cfg. unset or empty (mandatory)
52if [ -z "${TRUST_CFG_REF}" ]; then
53
54    ## Default cfg from trunk excepting last stable
55    TRUST_CFG_REF='ORCA2_LIM3_PISCES'
56
57    if [[ ${TRUST_SVN_BRANCH}                          \
58     && ${TRUST_SVN_BRANCH} == 'nemo_v3_6_STABLE'   ]]; then
59   TRUST_CFG_REF='ORCA2_LIM_PISCES'
60    fi
61
62fi
63
64
65##--------------------------------------------------------------------------------
66## Source user & (super)computer configurations
67##--------------------------------------------------------------------------------
68. ./cfg/${TRUST_MAIN_USER}.cfg
69. ./cfg/${TRUST_MAIN_HPCC}.cfg
70
71
72##--------------------------------------------------------------------------------
73## Checking and export environment variables
74##--------------------------------------------------------------------------------
75
76## Trusting installation
77## ---------------------
78
79[ -z "${TRUST_DIR_WORK}"    ] &&    TRUST_DIR_WORK=${TRUST_MAIN_DIR}/../CONFIG
80[ -z "${TRUST_DIR_SCRATCH}" ] && TRUST_DIR_SCRATCH=${TRUST_MAIN_DIR}
81export TRUST_DIR_WORK TRUST_DIR_SCRATCH TRUST_DIR_STORE
82
83
84## Branch checkout (./install_new_branch.sh)
85##------------------------------------------
86
87export TRUST_SVN_REPO='https://forge.ipsl.jussieu.fr'
88export TRUST_SVN_CO=( 'ARCH           CONFIG          NEMO             
89                       EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL   
90                       TOOLS/COMPILE  TOOLS/maketools TOOLS/REBUILD_NEMO
91                       TRUST                                            ' )
92export TRUST_SVN_UP=( 'ARCH           CONFIG          NEMO           
93                       EXTERNAL/AGRIF EXTERNAL/fcm    EXTERNAL/IOIPSL
94                       TOOLS/COMPILE                                 ' )
95
96export TRUST_SVN_BRANCH
97export TRUST_SVN_NEMOGCM=${TRUST_DIR_WORK}/${TRUST_SVN_BRANCH}/NEMOGCM
98
99
100## NEMO Configuration
101##-------------------
102
103[ -z "${TRUST_CFG_NEW}" ] && TRUST_CFG_NEW=${TRUST_CFG_REF}'_trust'
104export TRUST_CFG_NEW TRUST_CFG_REF
105export TRUST_CFG_KEY_ADD TRUST_CFG_KEY_DEL
106
107
108## Inputs/Outputs
109## --------------
110
111[ -z "${TRUST_IO_XIOS}" ] && get_out A
112export TRUST_IO_XIOS
113
114## Forcing directory set and not empty
115if [ ${TRUST_IO_FORC_PATH} ]; then
116
117    ## Forcing archive unset
118    if [[ ! ${TRUST_IO_FORC_TAR} && ${TRUST_IO_FORC_TAR-_} ]]; then
119
120   ## Default forcing archive from trunk
121   TRUST_IO_FORC_TAR='ORCA2_LIM_nemo_v3.7.tar INPUTS_PISCES_v3.6st.tar'
122   [ ${TRUST_CFG_REF} == 'AMM12' ] && TRUST_IO_FORC_TAR='AMM12_v3.7.tar'
123
124   ## Update forcing archive for stable
125   if [ ${TRUST_SVN_BRANCH} == 'nemo_v3_6_STABLE' ]; then
126       TRUST_IO_FORC_TAR='ORCA2_LIM_nemo_v3.6.tar'
127
128       if   [ ${TRUST_CFG_REF} == 'ORCA1_LIM3_PISCES' ]; then
129      TRUST_IO_FORC_TAR='INPUTS_ORCA1_LIM3_PISCES_V10.tar'
130       elif [ ${TRUST_CFG_REF} == 'AMM12'             ]; then
131      TRUST_IO_FORC_TAR='AMM12_v3.6.tar'
132       fi
133
134   fi
135
136    fi
137
138fi
139
140export TRUST_IO_FORC_PATH TRUST_IO_FORC_TAR
141export TRUST_IO_CDO
142
143
144## Compilation
145##------------
146
147## Assuming the sourcing of XIOS arch .env file (modules) for setting
148if [ -z "${TRUST_JOB_ENV}" ]; then
149    TRUST_JOB_ENV=${TRUST_IO_XIOS}/arch/arch-${TRUST_MAIN_HPCC}.env
150fi
151
152export TRUST_JOB_ENV
153
154## Default parallel compilation on 4 procs
155[ -z "${TRUST_COMPILE_NPROC}" ] && TRUST_COMPILE_NPROC='4'
156export TRUST_COMPILE_NPROC
157
158## Not mandatory
159export TRUST_COMPILE_FORTRAN TRUST_COMPILE_MPI TRUST_COMPILE_NETCDF
160
161
162## Running
163##--------
164
165## Assuming the job submit script is in './batch', if not
166if [ -z "${TRUST_JOB_SCRIPT}" ]; then
167    TRUST_JOB_SCRIPT=${TRUST_MAIN_DIR}/batch/${TRUST_MAIN_HPCC}.sh || get_out A
168fi
169
170export TRUST_JOB_SCRIPT
171
172## Mandatory job management cmds (submit, status checking and killing job)
173if [[ -z "${TRUST_JOB_SUBMIT}" || -z "${TRUST_JOB_STATE}" \
174                               || -z "${TRUST_JOB_KILL}"    ]]; then
175    get_out A
176fi
177
178export TRUST_JOB_SUBMIT TRUST_JOB_STATE TRUST_JOB_KILL
179
180## Default test timeout to 3h (pending AND running time)
181[ -z "${TRUST_JOB_TIMEOUT}" ] && TRUST_JOB_TIMEOUT='10800'
182export TRUST_JOB_TIMEOUT
183
184## Job informations not mandatory
185export TRUST_JOB_INFO TRUST_JOB_TIME TRUST_JOB_RAM_P TRUST_JOB_RAM_V
186
187
188## Trusting test
189##--------------
190
191export TRUST_TEST_NAME=${TRUST_MAIN_USER}'_'${TRUST_MAIN_HPCC}
192export TRUST_TEST_DATE=$( date -u +"%Y%m%d%Z%H%M" )
193
194export TRUST_TEST_SUMMARY=trusting_${TRUST_TEST_DATE}_${TRUST_TEST_NAME}.txt
195export  TRUST_TEST_BACKUP=trusting_${TRUST_TEST_DATE}_${TRUST_TEST_NAME}.tgz
196
197##       TRUST_TEST_DIR unset
198if [[ ! ${TRUST_TEST_DIR}       && ${TRUST_TEST_DIR-_}       ]]; then
199        TRUST_TEST_DIR=${TRUST_DIR_SCRATCH}/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH}
200        TRUST_TEST_DIR+=/${TRUST_TEST_DATE}
201    export TRUST_TEST_DIR
202fi
203
204## TRUST_TEST_BENCHMARK unset
205if [[ ! ${TRUST_TEST_BENCHMARK} && ${TRUST_TEST_BENCHMARK-_} ]]; then
206    TRUST_TEST_BENCHMARK=${TRUST_DIR_STORE}/${TRUST_CFG_REF}/${TRUST_SVN_BRANCH}
207    export TRUST_TEST_BENCHMARK
208fi
209
210export TRUST_TEST_LOG=${TRUST_DIR_BENCHMARK}/trusting_${TRUST_TEST_NAME}.txt
211
212export TRUST_TEST_MAILING
Note: See TracBrowser for help on using the repository browser.