- Timestamp:
- 2011-10-28T12:07:09+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_LOCEAN_2011/NEMOGCM/SETTE/all_functions.sh
r2756 r3021 31 31 # 32 32 # $ ./set_namelist INPUT_NAMELIST VARIABLE VALUE 33 # $ ./copy_original INPUT_NAMELIST33 # $ post_test_tidyup 34 34 # 35 35 # … … 39 39 # function superegrep 40 40 # input variable value 41 #42 # function copy_original43 # input namelist_name44 # output namelist45 41 # 46 42 # function set_namelist … … 48 44 # output namelist 49 45 # 46 # function post_test_tidyup 47 # creates nemo_validation tree, and save output & debug files 48 # this function creates tree of validation in NEMO_VALIDATION_DIR as follows : 49 # 50 # NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/REVISION_NUMBER(or DATE)/TEST_NAME 51 # 52 # NEMO_VALIDATION_DIR : is choosen in param.cfg 53 # 54 # WCONFIG_NAME : set by makenemo at the moment of compilation 55 # 56 # WCOMPILER_NAME : set by makenemo at the moment of compilation 57 # 58 # REVISION_NUMBER(or DATE) : revision number by svn info, if problems with svn date is taken 59 # 60 # TEST_NAME : set in sette.sh for each configuration to be tested (directory TEST_NAME is created under ${NEW_CONF} directory ) 61 # 50 62 # EXAMPLES 51 63 # ======== … … 53 65 # :: 54 66 # 55 # $ ./copy_original namelist_pisces56 67 # $ ./set_namelist namelist nn_itend 75 57 68 # $ ./set_namelist namelist_ice_lim2 cn_icerst_in \"00101231_restart_ice\" 69 # $ post_test_tidyup 58 70 # 59 71 # … … 71 83 # * creation 72 84 #- 73 #74 75 76 # function to copy original namelists in ORIGINAL_namelist directory in ${INPUT_DIR} directory77 # to allow re-run same tests in same directory and start with all correct values of namelist78 copy_original () {79 `mkdir -p ${INPUT_DIR}/ORIGINAL_namelist`80 if [ -d ${INPUT_DIR}/ORIGINAL_namelist ] ; then81 echo "created ${INPUT_DIR}/ORIGINAL_namelist directory in ${INPUT_DIR}" >> ${SETTE_DIR}/output.sette82 else83 echo "problems in creating ${INPUT_DIR}/ORIGINAL_namelist directory" >> ${SETTE_DIR}/output.sette84 echo "EXIT,"85 exit 186 fi87 `cp ${CONFIG_DIR}/${REF_CONF}/EXP00/$1 ${INPUT_DIR}/ORIGINAL_namelist/$1.ori`88 if [ -n "$(ls ${INPUT_DIR}/ORIGINAL_namelist/$1.ori)" ] ; then89 echo "copied namelist of reference configuration in ${INPUT_DIR}/ORIGINAL_namelist/$1.ori " >> ${SETTE_DIR}/output.sette90 else91 echo "problem in copying namelist of reference configuration in ${INPUT_DIR}/ORIGINAL_namelist/$1.ori " >> ${SETTE_DIR}/output.sette92 echo "EXIT,"93 exit 194 fi95 `cp ${INPUT_DIR}/ORIGINAL_namelist/$1.ori ${INPUT_DIR}/$1`96 if [ -n "$(ls ${INPUT_DIR}/$1)" ] ; then97 echo "copied original namelist in ${INPUT_DIR} directory " >> ${SETTE_DIR}/output.sette98 else99 echo "problem in copying original namelist in ${INPUT_DIR} directory" >> ${SETTE_DIR}/output.sette100 echo "EXIT,"101 exit 1102 fi103 }104 105 85 # function to find namelists parameters 106 86 supergrep () { … … 128 108 echo "################" >> ${SETTE_DIR}/output.sette 129 109 130 VAR_NAME=$( supergrep $2 ${ INPUT_DIR}/$1 )110 VAR_NAME=$( supergrep $2 ${EXE_DIR}/$1 ) 131 111 if [ ${#VAR_NAME} -eq 0 ] 132 112 then 133 113 echo "doing \"set_namelist $@\". " 134 114 echo "variable: \"$2\" is empty" 135 echo "control that variable $2 is in \"${ INPUT_DIR}/$1\" "115 echo "control that variable $2 is in \"${EXE_DIR}/$1\" " 136 116 echo "exit" 137 117 echo "error in executing script : set_namelist $@" >> ${SETTE_DIR}/output.sette … … 139 119 exit 1 140 120 fi 141 sed -e "s/${VAR_NAME}.*/${VAR_NAME}/" ${ INPUT_DIR}/$1 > ${INPUT_DIR}/$1.tmp142 mv ${ INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1143 sed -e "s/${VAR_NAME}/$2=$3/" ${ INPUT_DIR}/$1 > ${INPUT_DIR}/$1.tmp144 mv ${ INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1121 sed -e "s/${VAR_NAME}.*/${VAR_NAME}/" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 122 mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 123 sed -e "s/${VAR_NAME}/$2=$3/" ${EXE_DIR}/$1 > ${EXE_DIR}/$1.tmp 124 mv ${EXE_DIR}/$1.tmp ${EXE_DIR}/$1 145 125 146 126 echo "finished script : set_namelist $@" >> ${SETTE_DIR}/output.sette … … 148 128 echo " " >> ${SETTE_DIR}/output.sette 149 129 } 130 131 # function to tidy up after each test and populate the NEMO_VALIDATION store 132 post_test_tidyup () { 133 # 134 # requires the following variables defined and exported from the calling script: 135 # SETTE_DIR 136 # INPUT_DIR 137 # EXE_DIR 138 # CONFIG_DIR 139 # NEMO_VALIDATION_DIR 140 # NEW_CONF 141 # CMP_NAM 142 # TEST_NAME 143 echo "SETTE directory is : ${SETTE_DIR}" 144 echo "INPUT directory is : ${INPUT_DIR}" 145 echo "EXECUTION directory is : ${EXE_DIR}" 146 echo "CONFIG directory is : ${CONFIG_DIR}" 147 echo "VALIDATION directory is : ${NEMO_VALIDATION_DIR}" 148 echo "NEW CONFIGURATION is : ${NEW_CONF}" 149 echo "COMPILER is : ${CMP_NAM}" 150 echo "TEST is : ${TEST_NAME}" 151 ################################################################ 152 # SMALL DEBUG 153 if [ ! -r ${EXE_DIR}/time.step ] 154 then 155 echo "file time.step does not exist" >> ${SETTE_DIR}/output.sette 156 echo "some problems during execution of model" >> ${SETTE_DIR}/output.sette 157 exit 1 158 else 159 echo "file time.step exists" >> ${SETTE_DIR}/output.sette 160 echo "ok model run" >> ${SETTE_DIR}/output.sette 161 fi 162 ################################################################ 163 164 ################################################################ 165 # Creation of NEMO_VALIDATION tree 166 export LANG=en_US 167 cd ${CONFIG_DIR} 168 cd ../ 169 REVISION_NB=`svn info | grep -i "Revision:" | sed -e "s/ //" | cut -d ":" -f 2` 170 if [ ${#REVISION_NB} -eq 0 ] 171 then 172 echo "some problems with svn info command" 173 echo "some problems with svn info command" >> ${SETTE_DIR}/output.sette 174 REVISION_NB=`date +%Y%m%d` 175 echo "put in ${REVISION_NB} date" 176 echo "put in ${REVISION_NB} date" >> ${SETTE_DIR}/output.sette 177 else 178 echo "value of revision number of NEMOGCM: ${REVISION_NB}" 179 fi 180 cd ${NEMO_VALIDATION_DIR} 181 `mkdir -p ${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME}` 182 NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 183 if [ -d ${NEMO_VALID} ] ; then 184 echo "created ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 185 else 186 echo "problems in creating ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 187 echo "EXIT," 188 exit 1 189 fi 190 # Save output & debug files in NEMO_VALIDATION tree 191 echo "saving ocean & ice output, solver.stat, tracer.stat files ...." >> ${SETTE_DIR}/output.sette 192 echo " " >> ${SETTE_DIR}/output.sette 193 [ -f ${EXE_DIR}/*ocean.output ] && cp ${EXE_DIR}/*ocean.output ${NEMO_VALID}/. 194 [ -f ${EXE_DIR}/*solver.stat ] && cp ${EXE_DIR}/*solver.stat ${NEMO_VALID}/. 195 [ -f ${EXE_DIR}/*tracer.stat ] && cp ${EXE_DIR}/*tracer.stat ${NEMO_VALID}/. 196 if [ -n "$(ls ${NEMO_VALID}/*solver*)" ] ; then 197 echo "moved solver.stat in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 198 echo "moved solver.stat in ${NEMO_VALID} directory" 199 else 200 echo "problem in looking for solver.stat file in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 201 echo "solver.stat IS NOT in ${NEMO_VALID} directory" 202 fi 203 if [ -n "$(ls ${NEMO_VALID}/*ocean.output*)" ] ; then 204 echo "moved ocean.output in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 205 echo "moved ocean.output in ${NEMO_VALID} directory" 206 else 207 echo "problem in looking for ocean.output file in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 208 echo "ocean.output IS NOT in ${NEMO_VALID} directory" 209 fi 210 if [ -n "$(ls ${NEMO_VALID}/*tracer.stat*)" ] ; then 211 echo "moved tracer.stat in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 212 echo "moved tracer.stat in ${NEMO_VALID} directory" 213 else 214 echo "problem in looking for tracer.stat file in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 215 echo "tracer.stat IS NOT in ${NEMO_VALID} directory" 216 fi 217 }
Note: See TracChangeset
for help on using the changeset viewer.