Changeset 571 for branches/libIGCM_MPI_OpenMP/libIGCM_post/libIGCM_post.ksh
- Timestamp:
- 03/07/12 10:39:55 (12 years ago)
- Location:
- branches/libIGCM_MPI_OpenMP
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/libIGCM_MPI_OpenMP
-
Property
svn:mergeinfo
set to
False
/trunk/libIGCM merged eligible
-
Property
svn:mergeinfo
set to
False
-
branches/libIGCM_MPI_OpenMP/libIGCM_post/libIGCM_post.ksh
r457 r571 16 16 function IGCM_post_Configure 17 17 { 18 IGCM_debug_PushStack "IGCM_post_Configure" 19 20 # Debug Print : 21 echo 22 IGCM_debug_Print 1 "IGCM_post_Configure" 23 # 24 # Initialize 25 # 26 POST=false 27 RebuildFrequency=false 28 TimeSeriesFrequency=false 29 SeasonalFrequency=false 30 # 31 # ONLY IF SOMETHING NEEDS TO BE DONE (EATHER TIME SERIES OR SEASONAL) COMPUTE THE MODULOS 32 # 33 if [ X${AsynchronousRebuild} = Xtrue ] ; then 34 list_post="RebuildFrequency" 18 IGCM_debug_PushStack "IGCM_post_Configure" 19 20 # Debug Print : 21 echo 22 IGCM_debug_Print 1 "IGCM_post_Configure" 23 # 24 # Initialize 25 # 26 POST=false 27 RebuildFrequency=false 28 PackFrequency=false 29 TimeSeriesFrequency=false 30 SeasonalFrequency=false 31 unset list_post 32 # 33 # ONLY IF SOMETHING NEEDS TO BE DONE (EATHER TIME SERIES OR SEASONAL) COMPUTE THE MODULOS 34 # 35 if [ X${AsynchronousRebuild} = Xtrue ] ; then 36 list_post="RebuildFrequency" 37 fi 38 # 39 if [ X${Pack} = Xtrue ] ; then 40 list_post="${list_post} PackFrequency" 41 fi 42 # 43 if ( [ X${TimeSeries} = Xtrue ] || [ X${TimeSeries2D} = Xtrue ] || [ X${TimeSeries3D} = Xtrue ] ) ; then 44 list_post="${list_post} TimeSeriesFrequency" 45 fi 46 # 47 if [ X${Seasonal} = Xtrue ] ; then 48 list_post="${list_post} SeasonalFrequency" 49 fi 50 51 # Overrule special cases 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 # 59 if ( [ X${AsynchronousRebuild} = Xtrue ] && [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 60 RebuildFrequency=true 61 POST=true 62 fi 63 64 # READ REBUILD OR TIME SERIES OR SEASONAL FREQUENCY 65 # AND TURN ON THE SUBMISSION FLAG WHEN MODULO IS ZERO 66 for post_freq in ${list_post} ; do 67 # Extract frequency from previously defined variable 68 config_Post_post_freq=$( eval echo \${config_Post_${post_freq}} ) 69 # Offset for Seasonal Average starting period 70 if [ ${post_freq} = SeasonalFrequency ] ; then 71 if ( [ X${config_Post_SeasonalFrequencyOffset} = X${NULL_STR} ] || [ X${config_Post_SeasonalFrequencyOffset} = XNONE ] || [ X${config_Post_SeasonalFrequencyOffset} = X ] ) ; then 72 PeriodOffset=0 73 else 74 PeriodOffset=${config_Post_SeasonalFrequencyOffset} 75 fi 76 else 77 PeriodOffset=0 35 78 fi 36 # 37 if ( [ X${TimeSeries} = Xtrue ] || [ X${TimeSeries2D} = Xtrue ] || [ X${TimeSeries3D} = Xtrue ] ) ; then 38 list_post="${list_post} TimeSeriesFrequency" 79 # Compute Modulo between frequencys (/!\second argument will be multiplied by CumuPeriod/!\) 80 # RebuildFrequency needs additionnal information 81 if [ ${post_freq} = RebuildFrequency ] ; then 82 IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength NbRebuildDir 83 else 84 IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength 39 85 fi 40 86 # 41 if [ X${Seasonal} = Xtrue ] ; then 42 list_post="${list_post} SeasonalFrequency" 43 fi 44 45 # Overrule special cases 46 if ( [ ! X${config_Post_TimeSeriesFrequency} = X${NULL_STR} ] && \ 47 [ ! X${config_Post_TimeSeriesFrequency} = XNONE ] && \ 48 [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 49 TimeSeriesFrequency=true 50 POST=true 51 fi 52 # 53 if ( [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && \ 54 [ ! X${config_Post_RebuildFrequency} = XNONE ] && \ 55 [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ) ; then 56 RebuildFrequency=true 57 POST=true 58 fi 59 60 # READ REBUILD OR TIME SERIES OR SEASONAL FREQUENCY 61 # AND TURN ON THE SUBMISSION FLAG WHEN MODULO IS ZERO 62 for post_freq in ${list_post} ; do 63 # Extract frequency from previously defined variable 64 config_Post_post_freq=$( eval echo \${config_Post_${post_freq}} ) 65 # Offset for Seasonal Average starting period 66 if [ ${post_freq} = SeasonalFrequency ] ; then 67 if ( [ X${config_Post_SeasonalFrequencyOffset} = X${NULL_STR} ] || [ X${config_Post_SeasonalFrequencyOffset} = XNONE ] || [ X${config_Post_SeasonalFrequencyOffset} = X ] ) ; then 68 PeriodOffset=0 69 else 70 PeriodOffset=${config_Post_SeasonalFrequencyOffset} 71 fi 72 else 73 PeriodOffset=0 74 fi 75 # Compute Modulo between frequencys (/!\second argument will be multiplied by CumuPeriod/!\) 76 # RebuildFrequency needs additionnal information 77 if [ ${post_freq} = RebuildFrequency ] ; then 78 IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength NbRebuildDir 79 else 80 IGCM_post_ModuloRuntimeFrequency config_Post_post_freq config_UserChoices_PeriodLength 81 fi 82 # 83 IGCM_debug_Print 1 "${post_freq} flag value : ${RebuildFrequency}" 84 done 85 # 86 IGCM_debug_Print 2 "POST-TREATEMENT flag value : ${POST}" 87 # 88 IGCM_debug_PopStack "IGCM_post_Configure" 87 IGCM_debug_Print 1 "${post_freq} flag value : ${RebuildFrequency}" 88 done 89 # 90 IGCM_debug_Print 2 "POST-TREATEMENT flag value : ${POST}" 91 # 92 IGCM_debug_PopStack "IGCM_post_Configure" 89 93 } 90 94 91 95 function IGCM_post_Submit 92 96 { 93 IGCM_debug_PushStack "IGCM_post_Submit" 94 95 typeset listVarEnv 96 97 POST_DIR=${R_OUT_POST}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 98 99 if [ ${POST} = true ]; then 97 IGCM_debug_PushStack "IGCM_post_Submit" 98 99 typeset listVarEnv DaysTemp 100 101 #POST_DIR=${R_OUT_POST}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 102 POST_DIR=${R_BUF_KSH} 103 # trick for IDRIS 104 POST_DIR=$( echo ${R_BUF_KSH} | sed -e "s/workgpfs/workdir/" ) 105 106 if [ ${POST} = true ]; then 107 echo 108 IGCM_debug_Print 1 "IGCM_post_Submit" 109 echo 110 IGCM_debug_Print 2 "POST_DIR = ${POST_DIR}" 111 fi 112 113 #============ TIME SERIES POST-PROCESSING ===========# 114 if [ ${TimeSeriesFrequency} = true ] ; then 115 116 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ACTIVATED" 117 echo 118 119 120 121 # Get information from last execution 122 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted 123 CompletedFlag=${run_PostProcessing_TimeSeriesCompleted} 124 # 125 126 127 128 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,CompletedFlag,TsTask,CompToRead,FlagToRead,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 129 # 130 jLoop=${#ListDimension[*]} 131 j=0 132 until [ $j -ge ${jLoop} ]; do 133 Dimension=${ListDimension[${j}]} 134 # 135 if [ X$( eval echo \${TimeSeries${Dimension}} ) = Xtrue ] ; then 136 # 137 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} ACTIVATED" 100 138 echo 101 IGCM_debug_Print 1 "IGCM_post_Submit"102 echo103 IGCM_debug_Print 2 "POST_DIR = ${POST_DIR}"104 fi105 106 #============ TIME SERIES POST-TREATMENT ===========#107 if [ ${TimeSeriesFrequency} = true ] ; then108 109 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ACTIVATED"110 echo111 112 113 114 # Get information from last execution115 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted116 CompletedFlag=${run_PostProcessing_TimeSeriesCompleted}117 139 # 118 119 120 121 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,CompletedFlag,TsTask,CompToRead,FlagToRead,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 140 if [ X${Dimension} = X ] ; then 141 TsTask="empty" 142 Script_Post_Output=create_ts.${PeriodDateEnd} 143 else 144 TsTask=${Dimension} 145 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 146 fi 122 147 # 123 jLoop=${#ListDimension[*]} 124 j=0 125 until [ $j -ge ${jLoop} ]; do 126 Dimension=${ListDimension[${j}]} 127 # 128 if [ X$( eval echo \${TimeSeries${Dimension}} ) = Xtrue ] ; then 129 # 130 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} ACTIVATED" 131 echo 132 # 133 if [ X${Dimension} = X ] ; then 134 TsTask="empty" 135 Script_Post_Output=create_ts.${PeriodDateEnd} 136 else 137 TsTask=${Dimension} 138 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 139 fi 140 # 141 if [ ${RebuildFrequency} = true ] ; then 142 # 143 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 144 if [ X${MASTER} = Xtitane ] ; then 145 echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 146 fi 147 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 148 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 149 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 150 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 151 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 152 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 153 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 154 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 155 echo "export DateBegin=${DateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 156 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 157 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 158 echo "export CompletedFlag=${CompletedFlag} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 159 echo "export TsTask=${TsTask} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 160 echo "unset CompToRead " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 161 echo "unset FlagToRead " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 162 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 163 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 164 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 165 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 166 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 167 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 168 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 169 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 170 if [ X${MASTER} = Xtitane ] ; then 171 echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 172 echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 173 fi 174 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 175 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 176 echo "IGCM_sys_QsubPost create_ts " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 177 if [ X${MASTER} = Xtitane ] ; then 178 echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 179 fi 180 fi 181 # 182 else 183 # 184 IGCM_sys_RshPost <<-EOF 148 if [ ${RebuildFrequency} = true ] ; then 149 # 150 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 151 # if [ X${MASTER} = Xtitane ] ; then 152 # echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 153 # fi 154 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 155 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 156 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 157 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 158 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 159 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 160 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 161 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 162 echo "export DateBegin=${DateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 163 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 164 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 165 echo "export CompletedFlag=${CompletedFlag} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 166 echo "export TsTask=${TsTask} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 167 echo "unset CompToRead " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 168 echo "unset FlagToRead " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 169 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 170 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 171 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 172 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 173 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 174 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 175 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 176 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 177 # if [ X${MASTER} = Xtitane ] ; then 178 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 179 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 180 # fi 181 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 182 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 183 echo "IGCM_sys_QsubPost create_ts " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 184 # if [ X${MASTER} = Xtitane ] ; then 185 # echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 186 # fi 187 fi 188 else 189 IGCM_sys_RshPost <<-EOF 185 190 export DEBUG_debug=${DEBUG_debug} 186 191 export MODIPSL=${MODIPSL} … … 212 217 IGCM_sys_QsubPost create_ts 213 218 EOF 214 fi 219 fi 220 fi 221 # 222 if [ X$( eval echo \${TimeSeriesChunck${Dimension}} ) = Xtrue ] ; then 223 # 224 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} WITH CHUNCK ACTIVATED" 225 echo 226 # Need to Remember This One 227 SavedDateBegin=${DateBegin} 228 # Kind of task create_ts will perform 229 TsTask=Chunck${Dimension} 230 # Number of chunck jobs to configure and submit 231 eval NbJob=\${#CHUNCK${Dimension}_COMP[@]} 232 typeset i 233 i=0 234 until [ $i -ge $NbJob ]; do 235 CompToRead=$( eval echo \${CHUNCK${Dimension}_COMP[\${i}]} ) 236 FlagToRead=$( eval echo \${CHUNCK${Dimension}_FLAG[\${i}]} ) 237 NameToRead=$( eval echo \${CHUNCK${Dimension}_NAME[\${i}]} ) 238 ChunckSize=$( eval echo \${CHUNCK${Dimension}_SIZE[\${i}]} ) 239 # Chunck Length (mandatory in Year) 240 YearsChunckLength=$( echo ${ChunckSize} | sed -e "s/[yY]//" ) 241 # 242 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 243 # 244 IGCM_date_GetYearMonth ${PeriodDateEnd} YearEnd MonthEnd 245 # How many chunck in total since simulation began 246 NbYearsChunckLoop=$(( ( ${YearEnd} - ${YearBegin} + 1 ) / ${YearsChunckLength} )) 247 # Tweak special case 248 [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 )) 249 # Starting Year of the current chunck 250 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} )) 251 # Starting date of the current chunck 252 ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01 253 # 254 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 255 # 256 if [ ${RebuildFrequency} = true ] ; then 257 # 258 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 259 # if [ X${MASTER} = Xtitane ] ; then 260 # echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 261 # fi 262 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 263 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 264 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 265 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 266 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 267 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 268 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 269 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 270 echo "export DateBegin=${ChunckTsDateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 271 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 272 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 273 echo "export CompletedFlag=${CompletedFlag} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 274 echo "export TsTask=${TsTask} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 275 echo "export CompToRead=${CompToRead} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 276 echo "export FlagToRead=${FlagToRead} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 277 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 278 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 279 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 280 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 281 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 282 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 283 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 284 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 285 # if [ X${MASTER} = Xtitane ] ; then 286 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 287 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 288 # fi 289 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 290 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 291 echo "IGCM_sys_QsubPost create_ts " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 292 # if [ X${MASTER} = Xtitane ] ; then 293 # echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 294 # fi 215 295 fi 216 # 217 if [ X$( eval echo \${TimeSeriesChunck${Dimension}} ) = Xtrue ] ; then 218 # 219 IGCM_debug_Print 1 "TIME SERIES POST-PROCESSING ${Dimension} WITH CHUNCK ACTIVATED" 220 echo 221 # Need to Remember This One 222 SavedDateBegin=${DateBegin} 223 # Kind of task create_ts will perform 224 TsTask=Chunck${Dimension} 225 # Number of chunck jobs to configure and submit 226 eval NbJob=\${#CHUNCK${Dimension}_COMP[@]} 227 typeset i 228 i=0 229 until [ $i -ge $NbJob ]; do 230 CompToRead=$( eval echo \${CHUNCK${Dimension}_COMP[\${i}]} ) 231 FlagToRead=$( eval echo \${CHUNCK${Dimension}_FLAG[\${i}]} ) 232 NameToRead=$( eval echo \${CHUNCK${Dimension}_NAME[\${i}]} ) 233 ChunckSize=$( eval echo \${CHUNCK${Dimension}_SIZE[\${i}]} ) 234 # Chunck Length (mandatory in Year) 235 YearsChunckLength=$( echo ${ChunckSize} | sed -e "s/[yY]//" ) 236 # 237 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 238 # 239 IGCM_date_GetYearMonth ${PeriodDateEnd} YearEnd MonthEnd 240 # How many chunck in total since simulation began 241 NbYearsChunckLoop=$(( ( ${YearEnd} - ${YearBegin} + 1 ) / ${YearsChunckLength} )) 242 # Tweak special case 243 [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 )) 244 # Starting Year of the current chunck 245 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} )) 246 # Starting date of the current chunck 247 ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01 248 # 249 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 250 # 251 if [ ${RebuildFrequency} = true ] ; then 252 # 253 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 254 if [ X${MASTER} = Xtitane ] ; then 255 echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 256 fi 257 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 258 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 259 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 260 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 261 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 262 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 263 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 264 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 265 echo "export DateBegin=${ChunckTsDateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 266 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 267 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 268 echo "export CompletedFlag=${CompletedFlag} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 269 echo "export TsTask=${TsTask} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 270 echo "export CompToRead=${CompToRead} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 271 echo "export FlagToRead=${FlagToRead} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 272 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 273 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 274 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 275 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 276 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 277 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 278 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 279 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 280 if [ X${MASTER} = Xtitane ] ; then 281 echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 282 echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 283 fi 284 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 285 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 286 echo "IGCM_sys_QsubPost create_ts " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 287 if [ X${MASTER} = Xtitane ] ; then 288 echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 289 fi 290 fi 291 # 292 else 293 # 294 IGCM_sys_RshPost <<-EOF 296 else 297 IGCM_sys_RshPost <<-EOF 295 298 export DEBUG_debug=${DEBUG_debug} 296 299 export MODIPSL=${MODIPSL} … … 322 325 IGCM_sys_QsubPost create_ts 323 326 EOF 324 # 325 fi 326 # 327 export DateBegin=${SavedDateBegin} 328 # 329 (( i=i+1 )) 330 # 331 done 332 fi 333 (( j=j+1 )) 327 # 328 fi 329 # 330 export DateBegin=${SavedDateBegin} 331 # 332 (( i=i+1 )) 333 # 334 334 done 335 fi 336 337 #============= SEASONAL POST-TREATMENT ============# 338 if [ ${SeasonalFrequency} = true ] ; then 339 # 340 IGCM_debug_Print 1 "SEASONNAL POST-TREATMENT" 341 echo 335 fi 336 (( j=j+1 )) 337 done 338 fi 339 340 #============= SEASONAL POST-PROCESSING ============# 341 if [ ${SeasonalFrequency} = true ] ; then 342 # 343 IGCM_debug_Print 1 "SEASONNAL POST-PROCESSING" 344 echo 345 # 346 Script_Post_Output=create_se.${PeriodDateEnd} 347 # 348 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 349 350 if [ ${RebuildFrequency} = true ] ; then 351 # 352 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 342 353 # 343 Script_Post_Output=create_se.${PeriodDateEnd} 344 # 345 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 346 347 if [ ${RebuildFrequency} = true ] ; then 348 # 349 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 350 # 351 if [ X${MASTER} = Xtitane ] ; then 352 echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 353 fi 354 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 355 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 356 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 357 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 358 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 359 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 360 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 361 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 362 echo "export DateBegin=${DateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 363 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 364 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 365 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 366 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 367 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 368 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 369 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 370 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 371 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 372 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 373 if [ X${MASTER} = Xtitane ] ; then 374 echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 375 echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 376 fi 377 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 378 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 379 echo "IGCM_sys_QsubPost create_se " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 380 if [ X${MASTER} = Xtitane ] ; then 381 echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 382 fi 383 # 384 fi 385 else 386 # 387 IGCM_sys_RshPost <<-EOF 354 # if [ X${MASTER} = Xtitane ] ; then 355 # echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 356 # fi 357 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 358 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 359 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 360 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 361 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 362 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 363 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 364 echo "export RebuildFrequency=${RebuildFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 365 echo "export DateBegin=${DateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 366 echo "export PeriodDateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 367 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 368 echo "export RESOL_ATM=${RESOL_ATM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 369 echo "export RESOL_OCE=${RESOL_OCE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 370 echo "export RESOL_ICE=${RESOL_ICE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 371 echo "export RESOL_MBG=${RESOL_MBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 372 echo "export RESOL_SRF=${RESOL_SRF} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 373 echo "export RESOL_SBG=${RESOL_SBG} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 374 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 375 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 376 # if [ X${MASTER} = Xtitane ] ; then 377 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 378 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 379 # fi 380 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 381 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 382 echo "IGCM_sys_QsubPost create_se " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 383 # if [ X${MASTER} = Xtitane ] ; then 384 # echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 385 # fi 386 fi 387 else 388 IGCM_sys_RshPost <<-EOF 388 389 export DEBUG_debug=${DEBUG_debug} 389 390 export MODIPSL=${MODIPSL} … … 411 412 IGCM_sys_QsubPost create_se 412 413 EOF 413 #414 fi415 414 fi 416 417 #============== REBUILD POST-TREATMENT =============# 418 if ( [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = XNONE ] ) ; then 419 # ----------------------------------------------------------------------------------- 420 # Function IGCM_FlushRebuild define in rebuild.ksh has not been closed yet. Do it now 421 # ----------------------------------------------------------------------------------- 422 if [ ${DRYRUN} -le 1 ] ; then 423 echo "IGCM_debug_PopStack \"IGCM_FlushRebuild\" " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 424 echo "} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 425 fi 426 if [ ${config_Post_RebuildFromArchive} = true ] ; then 427 IGCM_sys_Put_Dir REBUILD_${PeriodDateBegin} ${REBUILD_DIR} 428 else 429 IGCM_sys_Mv REBUILD_${PeriodDateBegin} ${REBUILD_DIR} 430 fi 415 fi 416 417 #============== REBUILD POST-PROCESSING =============# 418 if [ X${AsynchronousRebuild} = Xtrue ] ; then 419 # ----------------------------------------------------------------------------------- 420 # Function IGCM_FlushRebuild define in rebuild.ksh has not been closed yet. Do it now 421 # ----------------------------------------------------------------------------------- 422 if [ ${DRYRUN} -le 1 ] ; then 423 echo "IGCM_debug_PopStack \"IGCM_FlushRebuild\" " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 424 echo "} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 431 425 fi 432 # 433 if [ ${RebuildFrequency} = true ] ; then 434 if ( [ ${config_Post_RebuildFromArchive} = true ] ) ; then 435 IGCM_debug_Print 1 "REBUILD POST-TREATMENT FROM ARCHIVE" 436 echo 437 # 438 script=rebuild_fromArchive 439 else 440 IGCM_debug_Print 1 "REBUILD POST-TREATMENT FROM WORKDIR" 441 echo 442 # 443 script=rebuild_fromWorkdir 444 fi 445 # 446 Script_Post_Output=${script}.${PeriodDateEnd} 447 # 448 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,REBUILD_DIR,POST_DIR,MASTER,RebuildFromArchive,DateBegin,PeriodDateBegin,PeriodDateEnd,NbRebuildDir,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 449 IGCM_sys_RshPost <<-EOF 450 export DEBUG_debug=${DEBUG_debug} 451 export MODIPSL=${MODIPSL} 452 export libIGCM_SX=${libIGCM} 453 export libIGCM=${libIGCM_POST} 454 export SUBMIT_DIR=${SUBMIT_DIR} 455 export REBUILD_DIR=${REBUILD_DIR} 456 export POST_DIR=${POST_DIR} 457 export MASTER=${MASTER} 458 export RebuildFromArchive=${config_Post_RebuildFromArchive} 459 export DateBegin=${DateBegin} 460 export PeriodDateBegin=${PeriodDateBegin} 461 export PeriodDateEnd=${PeriodDateEnd} 462 export NbRebuildDir=${NbRebuildDir} 463 export StandAlone=false 464 export RESOL_ATM=${RESOL_ATM} 465 export RESOL_OCE=${RESOL_OCE} 466 export RESOL_ICE=${RESOL_ICE} 467 export RESOL_MBG=${RESOL_MBG} 468 export RESOL_SRF=${RESOL_SRF} 469 export RESOL_SBG=${RESOL_SBG} 470 export listVarEnv=${listVarEnv} 471 export Script_Post_Output=${Script_Post_Output} 472 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 473 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 474 IGCM_sys_MkdirWork ${POST_DIR} 475 IGCM_debug_Verif_Exit_Post 476 IGCM_sys_QsubPost ${script} 426 if [ ${config_Post_RebuildFromArchive} = true ] ; then 427 IGCM_sys_Put_Dir REBUILD_${PeriodDateBegin} ${REBUILD_DIR} 428 else 429 IGCM_sys_Mv REBUILD_${PeriodDateBegin} ${REBUILD_DIR} 430 fi 431 fi 432 # 433 if [ ${RebuildFrequency} = true ] ; then 434 if ( [ ${config_Post_RebuildFromArchive} = true ] ) ; then 435 IGCM_debug_Print 1 "REBUILD POST-PROCESSING FROM ARCHIVE" 436 echo 437 # 438 script=rebuild_fromArchive 439 else 440 IGCM_debug_Print 1 "REBUILD POST-PROCESSING FROM WORKDIR" 441 echo 442 # 443 script=rebuild_fromWorkdir 444 fi 445 # 446 Script_Post_Output=${script}.${PeriodDateEnd} 447 # 448 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,REBUILD_DIR,POST_DIR,MASTER,RebuildFromArchive,DateBegin,PeriodDateBegin,PeriodDateEnd,NbRebuildDir,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_MBG,RESOL_SRF,RESOL_SBG" 449 IGCM_sys_RshPost <<-EOF 450 export DEBUG_debug=${DEBUG_debug} 451 export MODIPSL=${MODIPSL} 452 export libIGCM_SX=${libIGCM} 453 export libIGCM=${libIGCM_POST} 454 export SUBMIT_DIR=${SUBMIT_DIR} 455 export REBUILD_DIR=${REBUILD_DIR} 456 export POST_DIR=${POST_DIR} 457 export MASTER=${MASTER} 458 export RebuildFromArchive=${config_Post_RebuildFromArchive} 459 export DateBegin=${DateBegin} 460 export PeriodDateBegin=${PeriodDateBegin} 461 export PeriodDateEnd=${PeriodDateEnd} 462 export NbRebuildDir=${NbRebuildDir} 463 export StandAlone=false 464 export RESOL_ATM=${RESOL_ATM} 465 export RESOL_OCE=${RESOL_OCE} 466 export RESOL_ICE=${RESOL_ICE} 467 export RESOL_MBG=${RESOL_MBG} 468 export RESOL_SRF=${RESOL_SRF} 469 export RESOL_SBG=${RESOL_SBG} 470 export listVarEnv=${listVarEnv} 471 export Script_Post_Output=${Script_Post_Output} 472 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 473 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 474 IGCM_sys_MkdirWork ${POST_DIR} 475 IGCM_debug_Verif_Exit_Post 476 IGCM_sys_QsubPost ${script} 477 477 EOF 478 479 fi 480 481 IGCM_debug_PopStack "IGCM_post_Submit" 478 fi 479 480 #============== PACK PROCESSING FOR RESTART AND DEBUG FILES =============# 481 if [ ${PackFrequency} = true ] ; then 482 IGCM_debug_Print 1 "PACK POST-PROCESSING" 483 echo 484 ## Need to Remember This One 485 SavedDateBegin=${DateBegin} 486 ## Need to Remember This One 487 SavedDateEnd=${DateEnd} 488 # 489 DaysTemp=$(( $( IGCM_date_DaysInPreviousPeriod ${PeriodDateEnd} ${config_Post_PackFrequency} end ) - 1 )) 490 # 491 PackDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} -${DaysTemp} ) 492 # 493 script=pack_debug 494 # 495 Script_Post_Output=${script}.${PeriodDateEnd} 496 # 497 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,DateBegin,DateEnd,PeriodPack,StandAlone" 498 IGCM_sys_RshPost <<-EOF 499 export DEBUG_debug=${DEBUG_debug} 500 export MODIPSL=${MODIPSL} 501 export libIGCM_SX=${libIGCM} 502 export libIGCM=${libIGCM_POST} 503 export SUBMIT_DIR=${SUBMIT_DIR} 504 export POST_DIR=${POST_DIR} 505 export MASTER=${MASTER} 506 export DateBegin=${PackDateBegin} 507 export DateEnd=${PeriodDateEnd} 508 export PeriodPack=${config_Post_PackFrequency} 509 export StandAlone=false 510 export listVarEnv=${listVarEnv} 511 export Script_Post_Output=${Script_Post_Output} 512 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 513 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 514 IGCM_sys_MkdirWork ${POST_DIR} 515 IGCM_debug_Verif_Exit_Post 516 IGCM_sys_QsubPost ${script} 517 EOF 518 # 519 script=pack_restart 520 # 521 Script_Post_Output=${script}.${PeriodDateEnd} 522 # 523 IGCM_sys_RshPost <<-EOF 524 export DEBUG_debug=${DEBUG_debug} 525 export MODIPSL=${MODIPSL} 526 export libIGCM_SX=${libIGCM} 527 export libIGCM=${libIGCM_POST} 528 export SUBMIT_DIR=${SUBMIT_DIR} 529 export POST_DIR=${POST_DIR} 530 export MASTER=${MASTER} 531 export DateBegin=${PackDateBegin} 532 export DateEnd=${PeriodDateEnd} 533 export PeriodPack=${config_Post_PackFrequency} 534 export StandAlone=false 535 export listVarEnv=${listVarEnv} 536 export Script_Post_Output=${Script_Post_Output} 537 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 538 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 539 IGCM_sys_MkdirWork ${POST_DIR} 540 IGCM_debug_Verif_Exit_Post 541 IGCM_sys_QsubPost ${script} 542 EOF 543 544 export DateBegin=${SavedDateBegin} 545 export DateEnd=${SavedDateEnd} 546 fi 547 IGCM_debug_PopStack "IGCM_post_Submit" 482 548 } 483 549 … … 485 551 function IGCM_post_CheckModuloFrequency 486 552 { 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 NONE|none)589 590 591 592 593 594 595 553 IGCM_debug_PushStack "IGCM_post_CheckModuloFrequency" $* 554 555 # Used by IGCM_config_Check 556 # from 2 libIGCM compatible frequency (*Y, *M, *D, *y, *m, *d) 557 # Issue an exit instruction IGCM_debug_Exit if there modulo is not zero 558 # Input parameter are the name of the variable, not the frequency value itself 559 # example 560 # IGCM_post_ModuloFrequency config_Post_RebuildFrequency config_UserChoices_PeriodLength 561 562 typeset MasterName SlaveName MasterFrequency SlaveFrequency PeriodMasterYear PeriodMasterMonth PeriodMasterDay PeriodSlaveYear PeriodSlaveMonth PeriodSlaveDay 563 564 # Get the name of the variable 565 MasterName=$1 566 SlaveName=$2 567 # Get the value the above name points to 568 MasterFrequency=$( eval echo \${${1}} ) 569 SlaveFrequency=$( eval echo \${${2}} ) 570 571 IGCM_debug_Print 2 "IGCM_post_CheckModuloFrequency : Master=${MasterFrequency} Slave=${SlaveFrequency}" 572 573 case ${MasterFrequency} in 574 *y|*Y) 575 PeriodMasterYear=$( echo ${MasterFrequency} | sed -e "s/[yY]//" ) 576 case ${SlaveFrequency} in 577 *Y|*y) 578 PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) 579 if ( [ ${PeriodSlaveYear} -gt ${PeriodMasterYear} ] || \ 580 [ $(( ${PeriodMasterYear} % ${PeriodSlaveYear} )) -ne 0 ] ); then 581 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 582 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 583 IGCM_debug_Exit "Check your frequency" 584 fi ;; 585 *M|*m) 586 PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" ) 587 if ( [ ${PeriodSlaveMonth} -gt $(( ${PeriodMasterYear} * 12 )) ] || \ 588 [ $(( ( ${PeriodMasterYear} * 12 ) % ${PeriodSlaveMonth} )) -ne 0 ] ) ; then 589 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 590 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 591 IGCM_debug_Exit "Check your frequency" 592 fi ;; 593 *D|*d) 594 PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" ) 595 NbDays=$( IGCM_date_DaysInYear ${year} ) 596 if [ ${config_UserChoices_CalendarType} = 360d ] || [ ${config_UserChoices_CalendarType} = noleap ] ; then 597 if ( [ ${PeriodSlaveDay} -gt $(( ${PeriodMasterYear} * ${NbDays} )) ] || \ 598 [ $(( ( ${PeriodMasterYear} * ${NbDays} ) % ${PeriodSlaveDay} )) -ne 0 ] ; ) then 599 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 600 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 601 IGCM_debug_Exit "Check your frequency" 602 fi 603 else 604 IGCM_debug_Print 1 "For ${MasterName} with leap calendar:" 605 IGCM_debug_Print 1 "We have a daily ${SlaveName} frequency and ${MasterName}=${MasterFrequency}" 606 IGCM_debug_Print 1 "No post-treatment. Case not properly handle at this moment by libIGCM. Sorry" 607 IGCM_debug_Exit "Check your frequency ${MasterName} and choose a daily frequency for this one too." 608 fi ;; 609 esac ;; 610 *M|*m) 611 PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" ) 612 case ${SlaveFrequency} in 613 *Y|*y) 614 PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) 615 if ( [ ${PeriodMasterMonth} -gt $(( ${PeriodSlaveYear} * 12 )) ] || \ 616 [ $(( ${PeriodMasterMonth} % ( ${PeriodSlaveYear} * 12 ) )) -ne 0 ] ) ; then 617 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 618 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 619 IGCM_debug_Exit "Check your frequency" 620 fi ;; 621 *M|*m) 622 PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" ) 623 if ( [ ${PeriodSlaveMonth} -gt ${PeriodMasterMonth} ] || \ 624 [ $(( ${PeriodMasterMonth} % ${PeriodSlaveMonth} )) -ne 0 ] ) ; then 625 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 626 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 627 IGCM_debug_Exit "Check your frequency" 628 fi ;; 629 *D|*d) 630 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 631 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 632 IGCM_debug_Exit "Check your frequency" ;; 633 esac ;; 634 *D|*d) 635 PeriodMasterDay=$( echo ${MasterFrequency} | sed -e "s/[dD]//" ) 636 case ${SlaveFrequency} in 637 *Y|*y) 638 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 639 IGCM_debug_Print 1 "${MasterName} frequency ${MasterFrequency}" 640 IGCM_debug_Exit "Check your frequency" ;; 641 *M|*m) 642 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 643 IGCM_debug_Print 1 "${MasterName} frequency ${MasterFrequency}" 644 IGCM_debug_Exit "Check your frequency" ;; 645 *D|*d) 646 PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" ) 647 if ( [ ${PeriodSlaveDay} -gt ${PeriodMasterDay} ] || \ 648 [ $(( ${PeriodMasterDay} % ${PeriodSlaveDay} )) -ne 0 ] ) ; then 649 IGCM_debug_Print 1 "${SlaveName} frequency ${SlaveFrequency} not compatbile with" 650 IGCM_debug_Print 1 "${MasterName} frequency : ${MasterFrequency}" 651 IGCM_debug_Exit "Check your frequency" 652 fi ;; 653 esac ;; 654 NONE|none) 655 ;; 656 *) 657 IGCM_debug_Print 1 "KeyWord ${MasterFrequency} not allowed for ${MasterName} in config.card" 658 IGCM_debug_Exit "Check your ${MasterName} in config.card" ;; 659 esac 660 661 IGCM_debug_PopStack "IGCM_post_CheckModuloFrequency" 596 662 } 597 663 … … 599 665 function IGCM_post_ModuloRuntimeFrequency 600 666 { 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 667 IGCM_debug_PushStack "IGCM_post_ModuloRuntimeFrequency" $* 668 669 # Used by IGCM_post_Configure 670 # - from libIGCM (config_UserChoices_PeriodLength frequency * CumulPeriod) and 671 # - post-processing compatible frequency (*Y, *M, *D, *y, *m, *d) 672 # --> turn on post-processing submission when their modulo is zero 673 # Input parameter are the name of the variable, not the frequency value itself 674 # example 675 # IGCM_post_ModuloRuntimeFrequency config_Post_SeasonalFrequency config_UserChoices_PeriodLength 676 677 typeset MasterName SlaveName MasterFrequency SlaveFrequency PeriodMasterYear PeriodMasterMonth PeriodMasterDay PeriodSlaveYear PeriodSlaveMonth PeriodSlaveDay 678 679 # Get the name of the variable 680 MasterName=$1 681 SlaveName=$2 682 683 # Get the value the above name points to 684 eval MasterFrequency=\${${1}} 685 eval SlaveFrequency=\${${2}} 686 687 echo 688 IGCM_debug_Print 2 "IGCM_post_ModuloRuntimeFrequency : Master=${MasterFrequency} Slave=${SlaveFrequency} CumulPeriod=${CumulPeriod}" 689 690 case ${MasterFrequency} in 691 *y|*Y) 692 PeriodMasterYear=$( echo ${MasterFrequency} | sed -e "s/[yY]//" ) 693 case ${SlaveFrequency} in 694 *Y|*y) 695 PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) 696 if [ $(( ( ${CumulPeriod} * ${PeriodSlaveYear} - ${PeriodOffset} ) % ${PeriodMasterYear} )) -eq 0 ] ; then 697 if [ $(( ${CumulPeriod} * ${PeriodSlaveYear} - ${PeriodOffset} )) -ne 0 ] ; then 698 eval ${post_freq}=true ; POST=true 699 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ${PeriodMasterYear} / ${PeriodSlaveYear} )) 700 fi 701 fi;; 702 *M|*m) 703 PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" ) 704 if [ $(( ( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} * 12 ) % ( ${PeriodMasterYear} * 12 ) )) -eq 0 ] ; then 705 if [ $(( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} * 12 )) -ne 0 ] ; then 706 eval ${post_freq}=true ; POST=true 707 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ( 12 * ${PeriodMasterYear} ) / ${PeriodSlaveMonth} )) 708 fi 709 fi;; 710 *D|*d) 711 PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" ) 712 NbDays=$( IGCM_date_DaysInYear ${year} ) 713 if [ $(( ( ${CumulPeriod} - ( ${PeriodOffset} * ${NbDays} / ${PeriodSlaveDay} ) ) % ( ${NbDays} * ${PeriodMasterYear} / ${PeriodSlaveDay} ) )) -eq 0 ] ; then 714 if [ $(( ${CumulPeriod} - ( ${PeriodOffset} * ${NbDays} / ${PeriodSlaveDay} ) )) -ne 0 ] ; then 715 eval ${post_freq}=true ; POST=true 716 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ( ${NbDays} * ${PeriodMasterYear} ) / ${PeriodSlaveDay} )) 717 fi 718 fi;; 719 esac ;; 720 *M|*m) 721 PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" ) 722 case ${SlaveFrequency} in 723 *Y|*y) 724 PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) 725 if [ $(( ( ${CumulPeriod} * ${PeriodSlaveYear} * 12 - ${PeriodOffset} ) % ( ${PeriodMasterMonth} ) )) -eq 0 ] ; then 726 if [ $(( ${CumulPeriod} * ${PeriodSlaveYear} * 12 - ${PeriodOffset} )) -ne 0 ] ; then 727 eval ${post_freq}=true ; POST=true 728 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ${PeriodMasterMonth} / ( 12 * ${PeriodSlaveYear} ) )) 729 fi 730 fi;; 731 *M|*m) 732 PeriodSlaveMonth=$( echo ${SlaveFrequency} | sed -e "s/[mM]//" ) 733 if [ $(( ( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} ) % ${PeriodMasterMonth} )) -eq 0 ] ; then 734 if [ $(( ${CumulPeriod} * ${PeriodSlaveMonth} - ${PeriodOffset} )) -ne 0 ] ; then 735 eval ${post_freq}=true ; POST=true 736 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ${PeriodMasterMonth} / ${PeriodSlaveMonth} )) 737 fi 738 fi;; 739 *D|*d) 740 IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with" 741 IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;; 742 esac ;; 743 *D|*d) 744 PeriodMasterDay=$( echo ${MasterFrequency} | sed -e "s/[dD]//" ) 745 case ${SlaveFrequency} in 746 *Y|*y) 747 IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with" 748 IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;; 749 *M|*m) 750 IGCM_debug_Print 1 "PeriodLength frequency ${SlaveFrequency} not compatbile with" 751 IGCM_debug_Print 1 "${flag_post} frequency : ${MasterFrequency} " ;; 752 *D|*d) 753 PeriodSlaveDay=$( echo ${SlaveFrequency} | sed -e "s/[dD]//" ) 754 if [ $(( ( ${CumulPeriod} * ${PeriodSlaveDay} - ${PeriodOffset} ) % ${PeriodMasterDay} )) -eq 0 ] ; then 755 if [ $(( ${CumulPeriod} * ${PeriodSlaveDay} - ${PeriodOffset} )) -ne 0 ] ; then 756 eval ${post_freq}=true ; POST=true 757 [ X${3} = XNbRebuildDir ] && NbRebuildDir=$(( ${PeriodMasterDay} / ${PeriodSlaveDay} )) 758 fi 759 fi;; 760 esac ;; 761 NONE|none) 762 ;; 763 *) 764 IGCM_debug_Print 1 "KeyWord not allowed for ${post_freq} in config.card" 765 ;; 766 esac 767 768 IGCM_debug_PopStack "IGCM_post_ModuloRuntimeFrequency" 703 769 }
Note: See TracChangeset
for help on using the changeset viewer.