Changeset 1375 for tags/libIGCM_v3.0_beta1/libIGCM_post/libIGCM_post.ksh
- Timestamp:
- 01/11/17 16:44:40 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tags/libIGCM_v3.0_beta1/libIGCM_post/libIGCM_post.ksh
r1298 r1375 27 27 RebuildFrequency=false 28 28 PackFrequency=false 29 TimeSeriesFrequency=false30 29 SeasonalFrequency=false 31 30 unset list_post … … 41 40 fi 42 41 # 43 if ( [ X${TimeSeries} = Xtrue ] || [ X${TimeSeries2D} = Xtrue ] || [ X${TimeSeries3D} = Xtrue ] || [ X${TimeSeriesChunck2D} = Xtrue ] || [ X${TimeSeriesChunck3D} = Xtrue ] ) ; then44 list_post="${list_post} TimeSeriesFrequency"45 fi46 #47 42 if [ X${Seasonal} = Xtrue ] ; then 48 43 list_post="${list_post} SeasonalFrequency" 49 44 fi 50 45 51 # Overrule Time Series triggering. Special case 1. 52 if ( [ ! X${config_Post_TimeSeriesFrequency} = X${NULL_STR} ] && \ 53 [ ! X${config_Post_TimeSeriesFrequency} = XNONE ] && \ 54 [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 55 TimeSeriesFrequency=true 56 POST=true 57 fi 58 # Overrule Rebuild triggering. Special case 2. 46 # Overrule Rebuild triggering. Special case 1. 59 47 if ( [ X${AsynchronousRebuild} = Xtrue ] && [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 60 48 RebuildFrequency=true 61 49 POST=true 62 50 fi 63 # Overrule Pack triggering. Special case 3.51 # Overrule Pack triggering. Special case 2. 64 52 if ( [ X${Pack} = Xtrue ] && [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 65 53 PackFrequency=true … … 97 85 # 98 86 # Prepare headers for the shell dedicated to post-processing 99 if ( [ ${PackFrequency} = true ] && ( [ ${TimeSeriesFrequency} = true ] || [ ${SeasonalFrequency} = true ] )) ; then87 if ( [ ${PackFrequency} = true ] && [ ${SeasonalFrequency} = true ] ) ; then 100 88 if [ $DRYRUN -le 1 ]; then 101 89 echo "#!/bin/ksh " > ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh … … 124 112 echo 125 113 IGCM_debug_Print 2 "POST_DIR = ${POST_DIR}" 126 fi127 128 #============ TIME SERIES POST-PROCESSING ===========#129 if [ ${TimeSeriesFrequency} = true ] ; then130 131 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ACTIVATED"132 echo133 134 135 136 # Get information from last execution137 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted138 CompletedFlag=${run_PostProcessing_TimeSeriesCompleted}139 #140 141 142 143 listVarEnv="DEBUG_debug,BigBrother,postProcessingStopLevel,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,Script_Post_Output,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,CompletedFlag,TsTask,CompToRead,FlagToRead,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG"144 #145 jLoop=${#ListDimension[*]}146 j=0147 until [ $j -ge ${jLoop} ]; do148 Dimension=${ListDimension[${j}]}149 #150 if [ X$( eval echo \${TimeSeries${Dimension}} ) = Xtrue ] ; then151 #152 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} ACTIVATED"153 echo154 #155 if [ X${Dimension} = X ] ; then156 TsTask="empty"157 Script_Post_Output=create_ts.${PeriodDateEnd}158 else159 TsTask=${Dimension}160 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}161 fi162 #163 if ( [ ${RebuildFrequency} = true ] || [ ${PackFrequency} = true ] ) ; then164 #165 if [ ${PackFrequency} = true ] ; then166 FunctionPath=${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh167 else168 FunctionPath=${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh169 fi170 #171 if [ -f ${FunctionPath} ] ; then172 # if [ X${MASTER} = Xtitane ] ; then173 # echo "IGCM_sys_RshPost <<-EOF" >> ${FunctionPath}174 # fi175 echo "export DEBUG_debug=${DEBUG_debug} " >> ${FunctionPath}176 echo "export BigBrother=${BigBrother} " >> ${FunctionPath}177 echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${FunctionPath}178 echo "export MODIPSL=${MODIPSL} " >> ${FunctionPath}179 echo "export libIGCM_SX=${libIGCM} " >> ${FunctionPath}180 echo "export libIGCM=${libIGCM_POST} " >> ${FunctionPath}181 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${FunctionPath}182 echo "export POST_DIR=${POST_DIR} " >> ${FunctionPath}183 echo "export MASTER=${MASTER} " >> ${FunctionPath}184 echo "export RebuildFrequency=${RebuildFrequency} " >> ${FunctionPath}185 echo "export DateBegin=${DateBegin} " >> ${FunctionPath}186 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${FunctionPath}187 echo "export StandAlone=false " >> ${FunctionPath}188 echo "export CompletedFlag=${CompletedFlag} " >> ${FunctionPath}189 echo "export TsTask=${TsTask} " >> ${FunctionPath}190 echo "unset CompToRead " >> ${FunctionPath}191 echo "unset FlagToRead " >> ${FunctionPath}192 echo "export RESOL_ATM=${RESOL_ATM} " >> ${FunctionPath}193 echo "export RESOL_OCE=${RESOL_OCE} " >> ${FunctionPath}194 echo "export RESOL_ICE=${RESOL_ICE} " >> ${FunctionPath}195 echo "export RESOL_MBG=${RESOL_MBG} " >> ${FunctionPath}196 echo "export RESOL_SRF=${RESOL_SRF} " >> ${FunctionPath}197 echo "export RESOL_SBG=${RESOL_SBG} " >> ${FunctionPath}198 echo "export listVarEnv=${listVarEnv} " >> ${FunctionPath}199 echo "export Script_Post_Output=${Script_Post_Output} " >> ${FunctionPath}200 # if [ X${MASTER} = Xtitane ] ; then201 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${FunctionPath}202 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${FunctionPath}203 # fi204 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${FunctionPath}205 echo "IGCM_debug_Verif_Exit " >> ${FunctionPath}206 echo "IGCM_sys_QsubPost create_ts " >> ${FunctionPath}207 # if [ X${MASTER} = Xtitane ] ; then208 # echo "EOF" >> ${FunctionPath}209 # fi210 fi211 else212 IGCM_sys_RshPost <<-EOF213 export DEBUG_debug=${DEBUG_debug}214 export BigBrother=${BigBrother}215 export postProcessingStopLevel=${postProcessingStopLevel}216 export MODIPSL=${MODIPSL}217 export libIGCM_SX=${libIGCM}218 export libIGCM=${libIGCM_POST}219 export SUBMIT_DIR=${SUBMIT_DIR}220 export POST_DIR=${POST_DIR}221 export MASTER=${MASTER}222 export RebuildFrequency=${RebuildFrequency}223 export DateBegin=${DateBegin}224 export PeriodDateEnd=${PeriodDateEnd}225 export StandAlone=false226 export CompletedFlag=${CompletedFlag}227 export TsTask=${TsTask}228 unset CompToRead229 unset FlagToRead230 export RESOL_ATM=${RESOL_ATM}231 export RESOL_OCE=${RESOL_OCE}232 export RESOL_ICE=${RESOL_ICE}233 export RESOL_MBG=${RESOL_MBG}234 export RESOL_SRF=${RESOL_SRF}235 export RESOL_SBG=${RESOL_SBG}236 export listVarEnv=${listVarEnv}237 export Script_Post_Output=${Script_Post_Output}238 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh239 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh240 IGCM_sys_MkdirWork ${POST_DIR}241 IGCM_debug_Verif_Exit242 IGCM_sys_QsubPost create_ts243 EOF244 fi245 fi246 #247 if [ X$( eval echo \${TimeSeriesChunck${Dimension}} ) = Xtrue ] ; then248 #249 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} WITH CHUNCK ACTIVATED"250 echo251 # Need to Remember This One252 SavedDateBegin=${DateBegin}253 # Kind of task create_ts will perform254 TsTask=Chunck${Dimension}255 # Number of chunck jobs to configure and submit256 eval NbJob=\${#CHUNCK${Dimension}_COMP[@]}257 typeset i258 i=0259 until [ $i -ge $NbJob ]; do260 CompToRead=$( eval echo \${CHUNCK${Dimension}_COMP[\${i}]} )261 FlagToRead=$( eval echo \${CHUNCK${Dimension}_FLAG[\${i}]} )262 NameToRead=$( eval echo \${CHUNCK${Dimension}_NAME[\${i}]} )263 ChunckSize=$( eval echo \${CHUNCK${Dimension}_SIZE[\${i}]} )264 # Chunck Length (mandatory in Year)265 YearsChunckLength=$( echo ${ChunckSize} | sed -e "s/[yY]//" )266 #267 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin268 #269 IGCM_date_GetYearMonth ${PeriodDateEnd} YearEnd MonthEnd270 # How many chunck in total since simulation began271 NbYearsChunckLoop=$(( ( ${YearEnd} - ${YearBegin} + 1 ) / ${YearsChunckLength} ))272 # Tweak special case273 [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 ))274 # Starting Year of the current chunck275 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} ))276 # Starting date of the current chunck277 ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01278 #279 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead}280 #281 if ( [ ${RebuildFrequency} = true ] || [ ${PackFrequency} = true ] ) ; then282 #283 if [ ${PackFrequency} = true ] ; then284 FunctionPath=${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh285 else286 FunctionPath=${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh287 fi288 #289 if [ -f ${FunctionPath} ] ; then290 # if [ X${MASTER} = Xtitane ] ; then291 # echo "IGCM_sys_RshPost <<-EOF" >> ${FunctionPath}292 # fi293 echo "export DEBUG_debug=${DEBUG_debug} " >> ${FunctionPath}294 echo "export BigBrother=${BigBrother} " >> ${FunctionPath}295 echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${FunctionPath}296 echo "export MODIPSL=${MODIPSL} " >> ${FunctionPath}297 echo "export libIGCM_SX=${libIGCM} " >> ${FunctionPath}298 echo "export libIGCM=${libIGCM_POST} " >> ${FunctionPath}299 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${FunctionPath}300 echo "export POST_DIR=${POST_DIR} " >> ${FunctionPath}301 echo "export MASTER=${MASTER} " >> ${FunctionPath}302 echo "export RebuildFrequency=${RebuildFrequency} " >> ${FunctionPath}303 echo "export DateBegin=${ChunckTsDateBegin} " >> ${FunctionPath}304 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${FunctionPath}305 echo "export StandAlone=false " >> ${FunctionPath}306 echo "export CompletedFlag=${CompletedFlag} " >> ${FunctionPath}307 echo "export TsTask=${TsTask} " >> ${FunctionPath}308 echo "export CompToRead=${CompToRead} " >> ${FunctionPath}309 echo "export FlagToRead=${FlagToRead} " >> ${FunctionPath}310 echo "export RESOL_ATM=${RESOL_ATM} " >> ${FunctionPath}311 echo "export RESOL_OCE=${RESOL_OCE} " >> ${FunctionPath}312 echo "export RESOL_ICE=${RESOL_ICE} " >> ${FunctionPath}313 echo "export RESOL_MBG=${RESOL_MBG} " >> ${FunctionPath}314 echo "export RESOL_SRF=${RESOL_SRF} " >> ${FunctionPath}315 echo "export RESOL_SBG=${RESOL_SBG} " >> ${FunctionPath}316 echo "export listVarEnv=${listVarEnv} " >> ${FunctionPath}317 echo "export Script_Post_Output=${Script_Post_Output} " >> ${FunctionPath}318 # if [ X${MASTER} = Xtitane ] ; then319 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${FunctionPath}320 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${FunctionPath}321 # fi322 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${FunctionPath}323 echo "IGCM_debug_Verif_Exit " >> ${FunctionPath}324 echo "IGCM_sys_QsubPost create_ts " >> ${FunctionPath}325 # if [ X${MASTER} = Xtitane ] ; then326 # echo "EOF" >> ${FunctionPath}327 # fi328 fi329 else330 IGCM_sys_RshPost <<-EOF331 export DEBUG_debug=${DEBUG_debug}332 export BigBrother=${BigBrother}333 export postProcessingStopLevel=${postProcessingStopLevel}334 export MODIPSL=${MODIPSL}335 export libIGCM_SX=${libIGCM}336 export libIGCM=${libIGCM_POST}337 export SUBMIT_DIR=${SUBMIT_DIR}338 export POST_DIR=${POST_DIR}339 export MASTER=${MASTER}340 export RebuildFrequency=${RebuildFrequency}341 export DateBegin=${ChunckTsDateBegin}342 export PeriodDateEnd=${PeriodDateEnd}343 export StandAlone=false344 export CompletedFlag=${CompletedFlag}345 export TsTask=${TsTask}346 export CompToRead=${CompToRead}347 export FlagToRead=${FlagToRead}348 export RESOL_ATM=${RESOL_ATM}349 export RESOL_OCE=${RESOL_OCE}350 export RESOL_ICE=${RESOL_ICE}351 export RESOL_MBG=${RESOL_MBG}352 export RESOL_SRF=${RESOL_SRF}353 export RESOL_SBG=${RESOL_SBG}354 export listVarEnv=${listVarEnv}355 export Script_Post_Output=${Script_Post_Output}356 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh357 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh358 IGCM_sys_MkdirWork ${POST_DIR}359 IGCM_debug_Verif_Exit360 IGCM_sys_QsubPost create_ts361 EOF362 #363 fi364 #365 export DateBegin=${SavedDateBegin}366 #367 (( i=i+1 ))368 #369 done370 fi371 (( j=j+1 ))372 done373 114 fi 374 115 … … 463 204 # ----------------------------------------------------------------------------------- 464 205 # Function IGCM_FlushPost called by pack_output.job has not been closed yet. Do it now 465 # Will submit Time Series ORSeasonal Average if needed206 # Will submit Seasonal Average if needed 466 207 # ----------------------------------------------------------------------------------- 467 208 if [ -f ${R_BUFR}/FlushPost_${PeriodDateEnd}.ksh ] ; then … … 513 254 Script_Post_Output=${script}.${PeriodDateEnd} 514 255 # 515 256 IGCM_sys_RshPost <<-EOF 516 257 export DEBUG_debug=${DEBUG_debug} 517 258 export BigBrother=${BigBrother} … … 542 283 Script_Post_Output=${script}.${PeriodDateEnd} 543 284 # 544 if ( [ ${RebuildFrequency} = true ] && [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ) ; then 545 # if [ X${MASTER} = Xtitane ] ; then 546 # echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 547 # fi 548 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 549 echo "export BigBrother=${BigBrother} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 550 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 551 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 552 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 553 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 554 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 555 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 556 echo "export DateBegin=${PackDateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 557 echo "export DateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 558 echo "export PeriodPack=${config_Post_PackFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 559 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 560 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 561 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 562 echo "export script=${script} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 563 echo "export postProcessingStopLevel=${postProcessingStopLevel}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 564 # if [ X${MASTER} = Xtitane ] ; then 565 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 566 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 567 # fi 568 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 569 echo "IGCM_debug_Verif_Exit " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 570 echo "IGCM_sys_QsubPost ${script} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 571 # if [ X${MASTER} = Xtitane ] ; then 572 # echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 573 # fi 574 echo "IGCM_debug_Verif_Exit " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 575 else 576 IGCM_sys_RshPost <<-EOF 285 IGCM_sys_RshPost <<-EOF 577 286 export DEBUG_debug=${DEBUG_debug} 578 287 export BigBrother=${BigBrother} … … 598 307 IGCM_debug_Verif_Exit 599 308 EOF 600 export DateBegin=${SavedDateBegin} 601 export DateEnd=${SavedDateEnd} 602 fi 309 export DateBegin=${SavedDateBegin} 310 export DateEnd=${SavedDateEnd} 603 311 fi 604 312
Note: See TracChangeset
for help on using the changeset viewer.