Changeset 11161 for utils/CI/sette/all_functions.sh
- Timestamp:
- 2019-06-20T18:55:23+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/CI/sette/all_functions.sh
r10632 r11161 90 90 usage=" Usage : set_namelist input_namelist variable_name value" 91 91 usage=" if value is a string ths is neede syntax : ./set_namelist namelist_name var_name \"new_value\" " 92 93 # define validation dir 94 set_valid_dir () { 95 LANG=en_US 96 REVISION_NB=`LC_MESSAGES=${LANG} ${SVN_CMD} info ${SETTE_DIR}/.. | grep "Last Changed Rev" | awk '{print $NF}'` 97 if [ ${#REVISION_NB} -eq 0 ] 98 then 99 echo "some problems with ${SVN_CMD} info command" 100 echo "some problems with ${SVN_CMD} info command" >> ${SETTE_DIR}/output.sette 101 REVISION_NB=`date +%Y%m%d` 102 echo "put in ${REVISION_NB} date" 103 echo "put in ${REVISION_NB} date" >> ${SETTE_DIR}/output.sette 104 else 105 echo "value of revision number of NEMOGCM: ${REVISION_NB}" 106 fi 107 [ `${SVN_CMD} status -q ${SETTE_DIR}/../{cfg,tests,src} | wc -l` -ge 1 ] && REVISION_NB=${REVISION_NB}+ 108 NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 109 } 110 111 # clean valid dir (move old ocean_output/run.stat and tracer to avoid checking them in case something wrong happen. 112 clean_valid_dir () { 113 # set_valid_dir # already done in sette_ref/sette_test 114 echo "validation directory is : $NEMO_VALID" 115 if [ -d $NEMO_VALID ] ; then 116 [ -f ${NEMO_VALID}/ocean.output ] && mv ${NEMO_VALID}/ocean.output ${NEMO_VALID}/ocean.output_old 117 [ -f ${NEMO_VALID}/run.stat ] && mv ${NEMO_VALID}/run.stat ${NEMO_VALID}/run.stat_old 118 [ -f ${NEMO_VALID}/tracer.stat ] && mv ${NEMO_VALID}/tracer.stat ${NEMO_VALID}/tracer.stat_old 119 fi 120 } 92 121 93 122 # function to set namelists parameters … … 141 170 fi 142 171 143 sed -e "s:${VAR_NAME}.*:${VAR_NAME}:" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 172 ARGS_LST="${@:3}" 173 sed -e "s;${VAR_NAME}.*;${VAR_NAME};" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 144 174 mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 145 sed -e "s :${VAR_NAME}:$2=$3:" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp175 sed -e "s;${VAR_NAME};$2=${ARGS_LST};" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 146 176 mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 147 177 … … 154 184 # function to tidy up after each test and populate the NEMO_VALIDATION store 155 185 post_test_tidyup () { 186 # Save current exit status of caller script 187 RUN_STATUS=$? 188 echo "Exit status: ${RUN_STATUS}" 156 189 # 157 190 # requires the following variables defined and exported from the calling script: … … 168 201 echo "EXECUTION directory is : ${EXE_DIR}" 169 202 echo "CONFIG directory is : ${CONFIG_DIR}" 170 echo "VALIDATION directory is : ${NEMO_VALID ATION_DIR}"203 echo "VALIDATION directory is : ${NEMO_VALID}" 171 204 echo "NEW CONFIGURATION is : ${NEW_CONF}" 172 205 echo "COMPILER is : ${CMP_NAM}" … … 175 208 ################################################################ 176 209 # SMALL DEBUG 210 EXIT_STATUS=${RUN_STATUS} 177 211 if [ ! -r ${EXE_DIR}/ocean.output ] 178 212 then 179 213 grep "E R R O R" ${EXE_DIR}/ocean.output && echo "Some ERRORS at execution time, see ${EXE_DIR}/ocean.output" 180 exit 2 214 EXIT_STATUS=2 215 # exit 2 Error now catch in the report 181 216 fi 182 217 … … 185 220 echo "file time.step does not exist" >> ${SETTE_DIR}/output.sette 186 221 echo "some problems during execution of model" >> ${SETTE_DIR}/output.sette 187 exit 1 222 EXIT_STATUS=1 223 # exit 1 Error now catch in the report 188 224 else 189 225 echo "file time.step exists" >> ${SETTE_DIR}/output.sette … … 194 230 195 231 ################################################################ 232 # 196 233 # Creation of NEMO_VALIDATION tree 197 export LANG=en_US 198 REVISION_NB=`svn info ${SETTE_DIR}/../.. | grep -i "Last Changed Rev:" | sed -e "s/ //g" | cut -d ":" -f 2` 199 if [ ${#REVISION_NB} -eq 0 ] 200 then 201 echo "some problems with svn info command" 202 echo "some problems with svn info command" >> ${SETTE_DIR}/output.sette 203 REVISION_NB=`date +%Y%m%d` 204 echo "put in ${REVISION_NB} date" 205 echo "put in ${REVISION_NB} date" >> ${SETTE_DIR}/output.sette 206 else 207 echo "value of revision number of NEMOGCM: ${REVISION_NB}" 208 fi 209 cd ${NEMO_VALIDATION_DIR} 210 `mkdir -p ${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME}` 211 NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 212 if [ -d ${NEMO_VALID} ] ; then 213 echo "created ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 234 # set_valid_dir already done in sette_reference_config 235 mkdir -p ${NEMO_VALIDATION_DIR} 236 if [ -d ${NEMO_VALIDATION_DIR} ] ; then 237 echo "created ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 214 238 else 215 echo "problems in creating ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette239 echo "problems in creating ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 216 240 echo "EXIT," 217 241 exit 1 218 242 fi 219 # Save output & debug files in NEMO_VALIDATION tree 243 # 244 # Exit before populating validation directory if the model run has 245 # returned a non-zero exit status 246 # On CRAY NEMO exit is not the expected 999 or 123456 (let this bloc in case useful later on). 247 # case ${EXIT_STATUS} in 248 # 0|123456|999) echo " NEMO finished with exit code $EXIT_STATUS " ; post_test_tidyup ;; 249 # *) echo " NEMO abort on an unexpected error (segmentation fault or whatever) $EXIT_STATUS " 250 # esac 251 252 [ ${EXIT_STATUS} -ne 0 ] && exit ${EXIT_STATUS} 253 # 254 # Save output & debug files in NEMO_VALIDATION tree 220 255 echo "saving ocean & ice output, run.stat, tracer.stat files ...." >> ${SETTE_DIR}/output.sette 221 256 echo " " >> ${SETTE_DIR}/output.sette 222 [ -f ${EXE_DIR}/ocean.output ] && cp ${EXE_DIR}/*ocean.output ${NEMO_VALID }/.223 [ -f ${EXE_DIR}/run.stat ] && cp ${EXE_DIR}/*run.stat ${NEMO_VALID }/.224 [ -f ${EXE_DIR}/output.namelist.dyn ] && cp ${EXE_DIR}/*output.nam* ${NEMO_VALID }/.225 [ -f ${EXE_DIR}/tracer.stat ] && cp ${EXE_DIR}/*tracer.stat ${NEMO_VALID }/.226 227 if [ -n "$(ls ${NEMO_VALID }/*run*)" ] ; then228 echo "moved run.stat in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette229 echo "moved run.stat in ${NEMO_VALID } directory"257 [ -f ${EXE_DIR}/ocean.output ] && cp ${EXE_DIR}/*ocean.output ${NEMO_VALIDATION_DIR}/. 258 [ -f ${EXE_DIR}/run.stat ] && cp ${EXE_DIR}/*run.stat ${NEMO_VALIDATION_DIR}/. 259 [ -f ${EXE_DIR}/output.namelist.dyn ] && cp ${EXE_DIR}/*output.nam* ${NEMO_VALIDATION_DIR}/. 260 [ -f ${EXE_DIR}/tracer.stat ] && cp ${EXE_DIR}/*tracer.stat ${NEMO_VALIDATION_DIR}/. 261 262 if [ -n "$(ls ${NEMO_VALIDATION_DIR}/*run*)" ] ; then 263 echo "moved run.stat in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 264 echo "moved run.stat in ${NEMO_VALIDATION_DIR} directory" 230 265 else 231 echo "problem in looking for run.stat file in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette232 echo "run.stat IS NOT in ${NEMO_VALID } directory"233 fi 234 if [ -n "$(ls ${NEMO_VALID }/*ocean.output*)" ] ; then235 echo "moved ocean.output in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette236 echo "moved ocean.output in ${NEMO_VALID } directory"266 echo "problem in looking for run.stat file in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 267 echo "run.stat IS NOT in ${NEMO_VALIDATION_DIR} directory" 268 fi 269 if [ -n "$(ls ${NEMO_VALIDATION_DIR}/*ocean.output*)" ] ; then 270 echo "moved ocean.output in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 271 echo "moved ocean.output in ${NEMO_VALIDATION_DIR} directory" 237 272 else 238 echo "problem in looking for ocean.output file in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette239 echo "ocean.output IS NOT in ${NEMO_VALID } directory"240 fi 241 if [ -n "$(ls ${NEMO_VALID }/*tracer.stat*)" ] ; then242 echo "moved tracer.stat in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette243 echo "moved tracer.stat in ${NEMO_VALID } directory"273 echo "problem in looking for ocean.output file in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 274 echo "ocean.output IS NOT in ${NEMO_VALIDATION_DIR} directory" 275 fi 276 if [ -n "$(ls ${NEMO_VALIDATION_DIR}/*tracer.stat*)" ] ; then 277 echo "moved tracer.stat in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 278 echo "moved tracer.stat in ${NEMO_VALIDATION_DIR} directory" 244 279 else 245 echo "problem in looking for tracer.stat file in ${NEMO_VALID } directory" >> ${SETTE_DIR}/output.sette246 echo "tracer.stat IS NOT in ${NEMO_VALID } directory"280 echo "problem in looking for tracer.stat file in ${NEMO_VALIDATION_DIR} directory" >> ${SETTE_DIR}/output.sette 281 echo "tracer.stat IS NOT in ${NEMO_VALIDATION_DIR} directory" 247 282 fi 248 283 }
Note: See TracChangeset
for help on using the changeset viewer.