Changeset 592 for branches/libIGCM_MPI_OpenMP
- Timestamp:
- 03/22/12 18:02:50 (12 years ago)
- Location:
- branches/libIGCM_MPI_OpenMP
- Files:
-
- 24 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/libIGCM_MPI_OpenMP/AA_SaveSourceModifications
r571 r592 145 145 fi 146 146 147 # Clean RUN_DIR_PATH (necessary for cesium )147 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 148 148 if ( ! ${DEBUG_debug} ) ; then 149 149 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_TimeSeries_Checker
r571 r592 41 41 POST_DIR=${POST_DIR:=${CARD_DIR}/OutScript} 42 42 43 # project 44 export BRIDGE_MSUB_PROJECT=gen2211 45 43 46 if [ ! -d ${CARD_DIR} ]; then 44 45 47 echo "No ${CARD_DIR}, we stop here" 48 exit 46 49 fi 47 50 … … 65 68 read ActionAnswer 66 69 67 case ${ActionAnswer} in 68 69 70 71 72 73 74 75 76 77 78 79 80 81 70 case ${ActionAnswer} in 71 oui|OUI|o|y|yes|YES) 72 echo "OK. I will submit jobs but ask permissions before removing files" 73 action=true 74 ;; 75 non|NON|n|no|NO) 76 echo "OK. I won't submit jobs and only print out files I could remove" 77 action=false 78 ;; 79 *) 80 echo "I did not recognize your answer. I will stop here." 81 echo "Please respond: oui|OUI|o|y|yes|YES" 82 echo "Or please respond: non|NON|n|no|NO" 83 exit 84 ;; 82 85 esac 83 86 87 #================================== 84 88 # First of all 89 # 90 typeset option 91 92 #================================== 93 # Read UserChoices section: 85 94 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card UserChoices 86 typeset option 95 echo 96 IGCM_debug_Print 1 "DefineArrayFromOption : config_UserChoices" 87 97 for option in ${config_UserChoices[*]} ; do 88 98 IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option} 99 eval auxprint=\${config_UserChoices_${option}} 100 IGCM_debug_Print 3 "${option} : ${auxprint}" 89 101 done 90 91 echo 92 IGCM_debug_Print 1 "DefineVariableFromOption : config_UserChoices" 93 IGCM_debug_PrintVariables 3 config_UserChoices_JobName 94 #IGCM_debug_PrintVariables 3 config_UserChoices_SpaceName 95 #IGCM_debug_PrintVariables 3 config_UserChoices_ExperimentName 96 IGCM_debug_PrintVariables 3 config_UserChoices_CalendarType 97 IGCM_debug_PrintVariables 3 config_UserChoices_DateBegin 98 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd 102 # 103 echo 104 105 #================================== 106 # Read Post section: 107 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post 108 echo 109 IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 110 111 for option in ${config_Post[*]} ; do 112 IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post ${option} 113 eval auxprint=\${config_Post_${option}} 114 IGCM_debug_Print 3 "${option} : ${auxprint}" 115 done 116 # 117 echo 99 118 100 119 if [ -f ${CARD_DIR}/run.card ] ; then 101 102 103 104 105 106 107 108 109 110 111 112 113 114 120 IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration OldPrefix 121 IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState 122 IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card PostProcessing TimeSeriesCompleted 123 IGCM_debug_Print 1 "DefineVariableFromOption : run_Configuration" 124 IGCM_debug_PrintVariables 3 run_Configuration_OldPrefix 125 IGCM_debug_PrintVariables 3 run_Configuration_PeriodState 126 IGCM_debug_Print 1 "DefineVariableFromOption : run_PostProcessing" 127 IGCM_debug_PrintVariables 3 run_PostProcessing_TimeSeriesCompleted 128 if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then 129 DateEnd=$( IGCM_date_ConvertFormatToGregorian $( echo ${run_Configuration_OldPrefix} | awk -F'_' '{print $2}' ) ) 130 else 131 DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 132 fi 133 CompletedFlag=${run_PostProcessing_TimeSeriesCompleted} 115 134 else 116 117 135 DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} ) 136 CompletedFlag="" 118 137 fi 119 138 SavedCompletedFlag=${CompletedFlag} … … 133 152 #R_BUFR : Job output buffered directory 134 153 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then 135 136 137 138 154 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 155 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 156 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 157 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 139 158 else 140 141 142 159 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 160 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 161 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 143 162 fi 144 163 … … 146 165 147 166 for comp in ${config_ListOfComponents[*]} ; do 148 # Debug Print 149 IGCM_debug_Print 1 ${comp} 150 # Define component 151 IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp} 152 eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1 153 eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1 154 155 # Read libIGCM compatibility version in ${compname}.card 156 card=${CARD_DIR}/COMP/${compname}.card 157 158 # Read and Build Output File stuff 159 #IGCM_debug_Print 1 "DefineArrayFromOption : ${compname}_OutputFiles ${card}" 160 IGCM_card_DefineArrayFromOption ${card} OutputFiles List 161 ListFilesName=${compname}_OutputFiles_List 162 eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 167 # Debug Print 168 IGCM_debug_Print 1 ${comp} 169 # Define component 170 IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp} 171 eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1 172 eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1 173 174 # Read libIGCM compatibility version in ${compname}.card 175 card=${CARD_DIR}/COMP/${compname}.card 176 177 # Read and Build Output File stuff 178 #IGCM_debug_Print 1 "DefineArrayFromOption : ${compname}_OutputFiles ${card}" 179 IGCM_card_DefineArrayFromOption ${card} OutputFiles List 180 ListFilesName=${compname}_OutputFiles_List 181 eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 182 # 183 if [ X${FileName0} != X${NULL_STR} ] ; then 163 184 # 164 if [ X${FileName0} != X${NULL_STR} ] ; then 185 #IGCM_debug_Print 1 "Component : ${compname}" 186 # 187 # INITIALISATION 188 # 189 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 190 i=2 191 # 192 until [ $i -ge $NbFiles ]; do 193 # 194 eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 195 # 196 if [ X${flag_post} != XNONE ] ; then 165 197 # 166 #IGCM_debug_Print 1 "Component : ${compname}" 167 # 168 # INITIALISATION 169 # 170 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 171 i=2 172 # 173 until [ $i -ge $NbFiles ]; do 174 # 175 eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 176 # 177 if [ X${flag_post} != XNONE ] ; then 178 # 179 # First of all 198 # First of all 199 # 200 IGCM_card_DefineArrayFromSection ${card} ${flag_post} 201 # 202 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 203 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 204 if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then 205 # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 206 unset ListDimension 207 ListDimension[0]=2D 208 ListDimension[1]=3D 209 TimeSeries=false 210 TimeSeries2D=false 211 TimeSeries3D=false 212 chunck=false 213 iLoop=${#ListDimension[*]} 214 j=0 215 until [ $j -ge ${iLoop} ]; do 216 Dimension=${ListDimension[${j}]} 217 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 218 IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 219 # 220 # Time series WITHOUT chunk 221 # 222 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 223 if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 224 IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}" 225 eval TimeSeries${Dimension}=true 226 chunck=false 227 fi 228 fi 229 # 230 # Time series WITH chunk 231 # 232 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 233 chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 234 if [ ! ${chunck_size} = NONE ] && [ ! ${chunck_size} = OFF ] ; then 235 IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}" 236 eval TimeSeriesChunck${Dimension}=true 237 chunck=true 238 fi 239 fi 240 (( j=j+1 )) 241 # 242 # If TimeSeriesVars list is empty or OFF we skip 243 # 244 if ( [ $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] || \ 245 [ ${chunck_size} = OFF ] ) ; then 246 #IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}" 247 #(( i=i+3 )) 248 continue 249 fi 250 # 251 # ICI ON TESTE QUE LES FICHIERS TS SONT LA! 252 # 253 FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) 254 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} TimeSeriesVars${Dimension} 255 IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} 256 # 257 FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 258 case ${FlagDir} in 259 *Y) TS_Dir=TS_YE ;; 260 *M) TS_Dir=TS_MO ;; 261 *D) TS_Dir=TS_DA ;; 262 3H|HF) TS_Dir=TS_HF ;; 263 INS) TS_Dir=TS_INS ;; 264 esac 265 # 266 # We need LIST of variables not allready produced (useful for standalone mode) 267 # 268 DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} ) 269 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 270 271 # Si on n'a pas de chunck, dans ce cas chunck_size=la durée de la simulation en années 272 YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" ) 273 [ ${chunck} = false ] && YearsChunckLength=$(( YearEnd - YearBegin + 1 )) 274 275 NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength )) 276 Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength )) 277 278 if [ ${Reste} -ne 0 ] ; then 279 NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 )) 280 fi 281 282 if [ ${NbYearsChunckLoop} -eq 1 ] ; then 283 PeriodDateEnd=${DateEnd} 284 else 285 DaysInYear=$( IGCM_date_DaysInYear ${YearBegin} ) 286 PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( YearsChunckLength * DaysInYear - 1 )) ) 287 fi 288 # 289 DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 290 YearsChunckLoop=1 291 ChunckDebut=${DateBegin} 292 ChunckFin=${PeriodDateEnd} 293 while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do 294 countTotal=0 295 countGood=0 296 countBad=0 297 unset RemoveList 298 unset PotentialCompletedFlag 299 for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do 300 TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc 180 301 # 181 IGCM_card_DefineArrayFromSection ${card} ${flag_post} 182 # 183 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 184 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 185 if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not" ] ; then 186 # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 187 unset ListDimension 188 ListDimension[0]=2D 189 ListDimension[1]=3D 190 TimeSeries=false 191 TimeSeries2D=false 192 TimeSeries3D=false 193 chunck=false 194 iLoop=${#ListDimension[*]} 195 j=0 196 until [ $j -ge ${iLoop} ]; do 197 Dimension=${ListDimension[${j}]} 198 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 199 IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 200 # 201 # Time series WITHOUT chunk 202 # 203 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 204 if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 205 IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}" 206 eval TimeSeries${Dimension}=true 207 chunck=false 208 fi 209 fi 210 # 211 # Time series WITH chunk 212 # 213 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 214 chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 215 if [ ! ${chunck_size} = NONE ] && [ ! ${chunck_size} = OFF ] ; then 216 IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}" 217 eval TimeSeriesChunck${Dimension}=true 218 chunck=true 219 fi 220 fi 221 (( j=j+1 )) 222 # 223 # If TimeSeriesVars list is empty or OFF we skip 224 # 225 if ( [ $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] || \ 226 [ ${chunck_size} = OFF ] ) ; then 227 #IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}" 228 #(( i=i+3 )) 229 continue 230 fi 231 # 232 # ICI ON TESTE QUE LES FICHIERS TS SONT LA! 233 # 234 # 235 FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) 236 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} TimeSeriesVars${Dimension} 237 IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} 238 # 239 FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 240 case ${FlagDir} in 241 *Y) TS_Dir=TS_YE ;; 242 *M) TS_Dir=TS_MO ;; 243 *D) TS_Dir=TS_DA ;; 244 3H|HF) TS_Dir=TS_HF ;; 245 INS) TS_Dir=TS_INS ;; 246 esac 247 # 248 # We need LIST of variables not allready produced (useful for standalone mode) 249 # 250 DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} ) 251 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 252 253 # Si on n'a pas de chunck, dans ce cas chunck_size=la durée de la simulation en années 254 YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" ) 255 [ ${chunck} = false ] && YearsChunckLength=$(( YearEnd - YearBegin + 1 )) 256 257 NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength )) 258 Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength )) 259 260 if [ ${Reste} -ne 0 ] ; then 261 NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 )) 262 fi 263 264 if [ ${NbYearsChunckLoop} -eq 1 ] ; then 265 PeriodDateEnd=${DateEnd} 266 else 267 DaysInYear=$( IGCM_date_DaysInYear ${YearBegin} ) 268 PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( YearsChunckLength * DaysInYear - 1 )) ) 269 fi 270 # 271 DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 272 YearsChunckLoop=1 273 ChunckDebut=${DateBegin} 274 ChunckFin=${PeriodDateEnd} 275 while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do 276 countTotal=0 277 countGood=0 278 countBad=0 279 unset RemoveList 280 unset PotentialCompletedFlag 281 for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do 282 TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc 283 # 284 if [ -d ${DIRECTORY} ] ; then 285 Candidat=$( find ${DIRECTORY} -name "${config_UserChoices_JobName}_${ChunckDebut}_*_${FlagDir}_${var}.nc" ) 286 else 287 Candidat="" 288 fi 289 # 290 BestCandidat=${ChunckDebut} 291 # 292 FoundCandidat=false 293 if [ ! "X${Candidat}" = "X" ] ; then 294 for candid in ${Candidat} ; do 295 #IGCM_debug_Print 1 -e "\033[1;32m[CompletedFlag CANDIDAT MATCH FOUND]\033[m $( basename ${candid} )" 296 CandidatEnd=$( echo ${candid} | awk -F${config_UserChoices_JobName} '{print $3}' | awk -F_ '{print $3}' ) 297 if [ ${CandidatEnd} -gt ${ChunckFin} ] ; then 298 #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress" 299 set +A RemoveList ${RemoveList[*]} ${candid} 300 elif [ ${CandidatEnd} -lt ${ChunckFin} ] ; then 301 #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress or used as a CompletedFlag baseline" 302 # We keep the best candidat and remove the others 303 if [ ${BestCandidat} -lt ${CandidatEnd} ] ; then 304 if [ ${FoundCandidat} = true ] ; then 305 set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 306 else 307 FoundCandidat=true 308 fi 309 BestCandidat=${CandidatEnd} 310 else 311 set +A RemoveList ${RemoveList[*]} ${candid} 312 fi 313 fi 314 done 315 else 316 # No CompletedFlag candidat found 317 CandidatCompletedFlag="" 318 fi 319 # 320 if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then 321 (( countBad = countBad + 1 )) 322 [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} :" 323 IGCM_debug_Print 3 ${DIRECTORY}/${TestedFile} 324 # Then we keep a track of the Best Candidat 325 if [ ${FoundCandidat} = true ] ; then 326 if [ ${chunck} = true ] ; then 327 set +A PotentialCompletedFlag ${PotentialCompletedFlag[*]} ${BestCandidat} 328 else 329 eval set +A PotentialCompletedFlag${Dimension} \${PotentialCompletedFlag${Dimension}[*]} \${BestCandidat} 330 fi 331 fi 332 else 333 (( countGood = countGood + 1 )) 334 # Then we do not need the best candidat if any 335 [ ${FoundCandidat} = true ] && set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 336 fi 337 (( countTotal = countTotal + 1 )) 338 done 339 340 SuccessRate=$(( countGood * 100 / countTotal )) 341 if [ ${SuccessRate} -ne 100 ] ; then 342 IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 343 else 344 IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 345 fi 346 echo 347 348 # Remove what's in the RemoveList 349 if [ ${RemoveList} ] ; then 350 IGCM_debug_Print 2 "File(s) that will be removed ${RemoveList[*]}" 351 if [ ${action} = true ] ; then 352 echo -e "\033[1;32mDo you want to remove them?\033[m" 353 echo -n " Your answer (y/n) : " 354 read RemoveAnswer 355 case ${RemoveAnswer} in 356 oui|OUI|o|y|yes|YES) 357 echo "OK. I will erase them" 358 IGCM_sys_Rm -f ${RemoveList[*]} 359 ;; 360 non|NON|n|no|NO) 361 echo "OK. I won't erase them" 362 ;; 363 *) 364 echo "I did not recognize your answer." 365 echo "Please respond: oui|OUI|o|y|yes|YES" 366 echo "Or please respond: non|NON|n|no|NO" 367 exit 368 ;; 369 esac 370 fi 371 fi 372 #[ ${FoundCandidat} = true ] && IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag[*]}" 373 if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then 374 # 375 # TO REWRITE BEGIN 376 # 377 NbCandidats=${#PotentialCompletedFlag[@]} 378 countCandid=1 379 if [ ${NbCandidats} -eq 0 ] ; then 380 ChunckCompletedFlag="" 381 IGCM_debug_Print 2 -e "\033[1;31mNO CompletedFlag\033[m" 382 elif [ ${NbCandidats} -eq 1 ] ; then 383 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 384 IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 385 elif [ ${NbCandidats} -gt 1 ] ; then 386 k=1 387 until [ $k -ge ${NbCandidats} ]; do 388 ((k_m1=k-1)) 389 if [ ${PotentialCompletedFlag[${k_m1}]} = ${PotentialCompletedFlag[${k}]} ] ; then 390 ((countCandid=countCandid+1)) 391 fi 392 ((k=k+1)) 393 done 394 if [ ${NbCandidats} -eq ${countCandid} ] ; then 395 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 396 IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 397 else 398 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 399 IGCM_debug_Print 2 -e "\033[1;31mToo Many Potential CompletedFlag\033[m Let start with first CompletedPeriod" 400 IGCM_debug_Print 2 -e "\033[1;31mYou will have to redo TimeSeries_Checker\033[m for other period." 401 fi 402 fi 403 # 404 # TO REWRITE END 405 # 406 if [ ${action} = true ] ; then 407 IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 408 listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead" 409 export libIGCM=${libIGCM} 410 export SUBMIT_DIR=${CARD_DIR} 411 export POST_DIR=${POST_DIR} 412 export DateBegin=${ChunckDebut} 413 export PeriodDateEnd=${ChunckFin} 414 export CompletedFlag=${ChunckCompletedFlag} 415 export TsTask=Chunck${Dimension} 416 export CompToRead=${comp} 417 export FlagToRead=${i} 418 export NameToRead=${flag_post} 419 export listVarEnv=${listVarEnv} 420 IGCM_sys_MkdirWork ${POST_DIR} 421 IGCM_debug_Verif_Exit_Post 422 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 423 IGCM_sys_QsubPost create_ts 424 echo 425 else 426 IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 427 fi 428 fi 429 430 if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then 431 eval Launch${Dimension}=true 432 fi 433 434 # Date update 435 ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 ) 436 437 (( YearsChunckLoop = YearsChunckLoop + 1 )) 438 439 if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then 440 ChunckFin=${DateEnd} 441 else 442 ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} $(( YearsChunckLength * DaysInYear - 1 )) ) 443 fi 444 done 445 done 446 else 447 ListDimension[0]="" 448 TimeSeries=true 449 TimeSeries2D=false 450 TimeSeries3D=false 451 TimeSeriesChunck2D=false 452 TimeSeriesChunck3D=false 453 fi 454 fi 455 (( i=i+3 )) 456 done 457 fi 302 if [ -d ${DIRECTORY} ] ; then 303 Candidat=$( find ${DIRECTORY} -name "${config_UserChoices_JobName}_${ChunckDebut}_*_${FlagDir}_${var}.nc" ) 304 else 305 Candidat="" 306 fi 307 # 308 BestCandidat=${ChunckDebut} 309 # 310 FoundCandidat=false 311 if [ ! "X${Candidat}" = "X" ] ; then 312 for candid in ${Candidat} ; do 313 #IGCM_debug_Print 1 -e "\033[1;32m[CompletedFlag CANDIDAT MATCH FOUND]\033[m $( basename ${candid} )" 314 CandidatEnd=$( echo ${candid} | awk -F${config_UserChoices_JobName} '{print $3}' | awk -F_ '{print $3}' ) 315 if [ ${CandidatEnd} -gt ${ChunckFin} ] ; then 316 #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress" 317 set +A RemoveList ${RemoveList[*]} ${candid} 318 elif [ ${CandidatEnd} -lt ${ChunckFin} ] ; then 319 #IGCM_debug_Print 3 -e "File $( basename ${candid} ) should be suppress or used as a CompletedFlag baseline" 320 # We keep the best candidat and remove the others 321 if [ ${BestCandidat} -lt ${CandidatEnd} ] ; then 322 if [ ${FoundCandidat} = true ] ; then 323 set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 324 else 325 FoundCandidat=true 326 fi 327 BestCandidat=${CandidatEnd} 328 else 329 set +A RemoveList ${RemoveList[*]} ${candid} 330 fi 331 fi 332 done 333 else 334 # No CompletedFlag candidat found 335 CandidatCompletedFlag="" 336 fi 337 # 338 if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then 339 (( countBad = countBad + 1 )) 340 [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} :" 341 IGCM_debug_Print 3 ${DIRECTORY}/${TestedFile} 342 # Then we keep a track of the Best Candidat 343 if [ ${FoundCandidat} = true ] ; then 344 if [ ${chunck} = true ] ; then 345 set +A PotentialCompletedFlag ${PotentialCompletedFlag[*]} ${BestCandidat} 346 else 347 eval set +A PotentialCompletedFlag${Dimension} \${PotentialCompletedFlag${Dimension}[*]} \${BestCandidat} 348 fi 349 fi 350 else 351 (( countGood = countGood + 1 )) 352 # Then we do not need the best candidat if any 353 [ ${FoundCandidat} = true ] && set +A RemoveList ${RemoveList[*]} ${DIRECTORY}/${config_UserChoices_JobName}_${ChunckDebut}_${BestCandidat}_${FlagDir}_${var}.nc 354 fi 355 (( countTotal = countTotal + 1 )) 356 done 357 358 SuccessRate=$(( countGood * 100 / countTotal )) 359 if [ ${SuccessRate} -ne 100 ] ; then 360 IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 361 else 362 IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}" 363 fi 364 echo 365 366 # Remove what's in the RemoveList 367 if [ ${RemoveList} ] ; then 368 IGCM_debug_Print 2 "File(s) that will be removed ${RemoveList[*]}" 369 if [ ${action} = true ] ; then 370 echo -e "\033[1;32mDo you want to remove them?\033[m" 371 echo -n " Your answer (y/n) : " 372 read RemoveAnswer 373 case ${RemoveAnswer} in 374 oui|OUI|o|y|yes|YES) 375 echo "OK. I will erase them" 376 IGCM_sys_Rm -f ${RemoveList[*]} 377 ;; 378 non|NON|n|no|NO) 379 echo "OK. I won't erase them" 380 ;; 381 *) 382 echo "I did not recognize your answer." 383 echo "Please respond: oui|OUI|o|y|yes|YES" 384 echo "Or please respond: non|NON|n|no|NO" 385 exit 386 ;; 387 esac 388 fi 389 fi 390 #[ ${FoundCandidat} = true ] && IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag[*]}" 391 # 392 # TO REWRITE BEGIN 393 # 394 if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then 395 NbCandidats=${#PotentialCompletedFlag[@]} 396 countCandid=1 397 if [ ${NbCandidats} -eq 0 ] ; then 398 ChunckCompletedFlag="" 399 IGCM_debug_Print 2 -e "\033[1;31mNO CompletedFlag\033[m" 400 elif [ ${NbCandidats} -eq 1 ] ; then 401 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 402 IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 403 elif [ ${NbCandidats} -gt 1 ] ; then 404 k=1 405 until [ $k -ge ${NbCandidats} ]; do 406 ((k_m1=k-1)) 407 if [ ${PotentialCompletedFlag[${k_m1}]} = ${PotentialCompletedFlag[${k}]} ] ; then 408 ((countCandid=countCandid+1)) 409 fi 410 ((k=k+1)) 411 done 412 if [ ${NbCandidats} -eq ${countCandid} ] ; then 413 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 414 IGCM_debug_Print 2 -e "\033[1;32mCompletedFlag=${ChunckCompletedFlag}\033[m" 415 else 416 ChunckCompletedFlag=${PotentialCompletedFlag[0]} 417 IGCM_debug_Print 2 -e "\033[1;31mToo Many Potential CompletedFlag\033[m Let start with first CompletedPeriod" 418 IGCM_debug_Print 2 -e "\033[1;31mYou will have to redo TimeSeries_Checker\033[m for other period." 419 fi 420 fi 421 # 422 # TO REWRITE END 423 # 424 if [ ${action} = true ] ; then 425 IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 426 listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead" 427 export libIGCM=${libIGCM} 428 export SUBMIT_DIR=${CARD_DIR} 429 export POST_DIR=${POST_DIR} 430 export DateBegin=${ChunckDebut} 431 export PeriodDateEnd=${ChunckFin} 432 export CompletedFlag=${ChunckCompletedFlag} 433 export TsTask=Chunck${Dimension} 434 export CompToRead=${comp} 435 export FlagToRead=${i} 436 export NameToRead=${flag_post} 437 export listVarEnv=${listVarEnv} 438 IGCM_sys_MkdirWork ${POST_DIR} 439 IGCM_debug_Verif_Exit_Post 440 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask}.${CompToRead}.${NameToRead} 441 IGCM_sys_QsubPost create_ts 442 echo 443 else 444 IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin} and CompletedFlag=${ChunckCompletedFlag}" 445 fi 446 fi 447 448 if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then 449 eval Launch${Dimension}=true 450 fi 451 452 # Date update 453 ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 ) 454 455 (( YearsChunckLoop = YearsChunckLoop + 1 )) 456 457 if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then 458 ChunckFin=${DateEnd} 459 else 460 ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} $(( YearsChunckLength * DaysInYear - 1 )) ) 461 fi 462 done 463 done 464 else 465 ListDimension[0]="" 466 TimeSeries=true 467 TimeSeries2D=false 468 TimeSeries3D=false 469 TimeSeriesChunck2D=false 470 TimeSeriesChunck3D=false 471 fi 472 fi 473 (( i=i+3 )) 474 done 475 fi 458 476 done # comp loop 459 477 … … 468 486 469 487 if [ X${Launch2D} = Xtrue ] ; then 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 488 if [ ${action} = true ] ; then 489 #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag2D[*]}" 490 IGCM_debug_Print 2 -e "\033[1;31mSubmit 2D\033[m without chunck period ${DateBegin}-${DateEnd}" 491 listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 492 export libIGCM=${libIGCM} 493 export SUBMIT_DIR=${CARD_DIR} 494 export POST_DIR=${POST_DIR} 495 export DateBegin=${DateBegin} 496 export PeriodDateEnd=${DateEnd} 497 export CompletedFlag=${CompletedFlag} 498 export TsTask=2D 499 export listVarEnv=${listVarEnv} 500 IGCM_sys_MkdirWork ${POST_DIR} 501 IGCM_debug_Verif_Exit_Post 502 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 503 IGCM_sys_QsubPost create_ts 504 echo 505 else 506 IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 2D without chunck\033[m period ${DateBegin}-${DateEnd}" 507 fi 490 508 fi 491 509 492 510 if [ X${Launch3D} = Xtrue ] ; then 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 511 if [ ${action} = true ] ; then 512 #IGCM_debug_Print 2 "Potentials CompletedFlag: ${PotentialCompletedFlag3D[*]}" 513 IGCM_debug_Print 2 -e "\033[1;31mSubmit 3D\033[m without chunck period ${DateBegin}-${DateEnd}" 514 listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask" 515 export libIGCM=${libIGCM} 516 export SUBMIT_DIR=${CARD_DIR} 517 export POST_DIR=${POST_DIR} 518 export DateBegin=${DateBegin} 519 export PeriodDateEnd=${DateEnd} 520 export CompletedFlag=${CompletedFlag} 521 export TsTask=3D 522 export listVarEnv=${listVarEnv} 523 IGCM_sys_MkdirWork ${POST_DIR} 524 IGCM_debug_Verif_Exit_Post 525 Script_Post_Output=create_ts.${PeriodDateEnd}.${TsTask} 526 IGCM_sys_QsubPost create_ts 527 echo 528 else 529 IGCM_debug_Print 2 -e "\033[1;31mI should NOW submit 3D without chunck\033[m period ${DateBegin}-${DateEnd}" 530 fi 513 531 fi -
branches/libIGCM_MPI_OpenMP/AA_atlas_LMDZ
r571 r592 185 185 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 186 186 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 187 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 187 188 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 188 189 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 189 190 else 190 191 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 192 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 191 193 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 192 194 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 193 195 fi 194 196 # 197 IGCM_sys_MkdirArchive ${R_FIGR} 195 198 196 199 R_ATLAS=ATLAS/SE_${YEARS} … … 228 231 229 232 # Save files 230 IGCM_sys_Put_Dir ATLAS ${R_ SAVE}233 IGCM_sys_Put_Dir ATLAS ${R_FIGR} 231 234 IGCM_sys_Rm -Rf ATLAS 232 235 IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_histmth.nc 233 236 234 237 # DODS copy 235 IGCM_sys_TestDirArchive ${R_ SAVE}/${R_ATLAS}238 IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 236 239 [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 237 240 238 # Clean RUN_DIR_PATH (necessary for cesium )241 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 239 242 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_atlas_ORCA_LIM
r571 r592 185 185 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 186 186 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 187 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 187 188 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 188 189 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 189 190 else 190 191 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 192 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 191 193 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 192 194 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 193 195 fi 194 196 # 197 IGCM_sys_MkdirArchive ${R_FIGR} 195 198 196 199 R_ATLAS=ATLAS/SE_${YEARS} … … 263 266 264 267 # Save files 265 IGCM_sys_Put_Dir ATLAS ${R_ SAVE}268 IGCM_sys_Put_Dir ATLAS ${R_FIGR} 266 269 267 270 IGCM_sys_Rm -Rf ATLAS … … 274 277 275 278 # DODS copy 276 IGCM_sys_TestDirArchive ${R_ SAVE}/${R_ATLAS}279 IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 277 280 [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 278 281 279 # Clean RUN_DIR_PATH (necessary for cesium )282 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 280 283 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_atlas_ORCHIDEE
r571 r592 194 194 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 195 195 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 196 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 196 197 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 197 198 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 198 199 else 199 200 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 201 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 200 202 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 201 203 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 202 204 fi 203 205 # 206 IGCM_sys_MkdirArchive ${R_FIGR} 204 207 205 208 R_ATLAS=ATLAS/SE_${YEARS} … … 234 237 235 238 # Save files 236 IGCM_sys_Put_Dir ATLAS ${R_ SAVE}239 IGCM_sys_Put_Dir ATLAS ${R_FIGR} 237 240 IGCM_sys_Rm -Rf ATLAS 238 241 IGCM_sys_Rm ${config_UserChoices_JobName}_SE_${YEARS}_1M_sechiba_history.nc 239 242 240 243 # DODS copy 241 IGCM_sys_TestDirArchive ${R_ SAVE}/${R_ATLAS}244 IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 242 245 [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 243 246 244 # Clean RUN_DIR_PATH (necessary for cesium )247 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 245 248 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_atlas_PISCES
r571 r592 186 186 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 187 187 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 188 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 188 189 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 189 190 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 190 191 else 191 192 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 193 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 192 194 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 193 195 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 194 196 fi 195 197 # 198 IGCM_sys_MkdirArchive ${R_FIGR} 196 199 197 200 R_ATLAS=ATLAS/SE_${YEARS} … … 232 235 233 236 # Save files 234 IGCM_sys_Put_Dir ATLAS ${R_ SAVE}237 IGCM_sys_Put_Dir ATLAS ${R_FIGR} 235 238 236 239 IGCM_sys_Rm -Rf ATLAS … … 239 242 240 243 # DODS copy 241 IGCM_sys_TestDirArchive ${R_ SAVE}/${R_ATLAS}244 IGCM_sys_TestDirArchive ${R_FIGR}/${R_ATLAS} 242 245 [ $? = 0 ] && IGCM_sys_Put_Dods ${R_ATLAS} 243 246 244 # Clean RUN_DIR_PATH (necessary for cesium )247 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 245 248 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_create_multi_se
r571 r592 546 546 fi 547 547 548 # Clean RUN_DIR_PATH (necessary for cesium )548 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 549 549 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_create_se
r571 r592 697 697 fi 698 698 699 # Clean RUN_DIR_PATH (necessary for cesium )699 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 700 700 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_create_ts
r571 r592 244 244 fi 245 245 246 # 246 #================================== 247 247 # First of all 248 248 # 249 typeset option 250 251 #================================== 252 # Read UserChoices section: 249 253 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card UserChoices 250 typeset option 254 echo 255 IGCM_debug_Print 1 "DefineArrayFromOption : config_UserChoices" 251 256 for option in ${config_UserChoices[*]} ; do 252 257 IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option} 258 eval auxprint=\${config_UserChoices_${option}} 259 IGCM_debug_Print 3 "${option} : ${auxprint}" 253 260 done 254 261 # 255 262 echo 256 IGCM_debug_Print 1 "DefineArrayFromOption : config_UserChoices" 257 IGCM_debug_PrintVariables 3 config_UserChoices_JobName 258 IGCM_debug_PrintVariables 3 config_UserChoices_LongName 259 IGCM_debug_PrintVariables 3 config_UserChoices_TagName 260 IGCM_debug_PrintVariables 3 config_UserChoices_SpaceName 261 IGCM_debug_PrintVariables 3 config_UserChoices_ExperimentName 262 IGCM_debug_PrintVariables 3 config_UserChoices_CalendarType 263 IGCM_debug_PrintVariables 3 config_UserChoices_DateBegin 264 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd 265 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength 263 264 #================================== 265 # Read Post section: 266 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post 266 267 echo 268 IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 269 for option in ${config_Post[*]} ; do 270 IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Post ${option} 271 eval auxprint=\${config_Post_${option}} 272 IGCM_debug_Print 3 "${option} : ${auxprint}" 273 done 274 # 275 echo 276 277 #================================== 278 # Define default value to keep compatibility with previous card: means before changes due to TGCC 279 [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} 280 281 #================================== 282 # If pack is active then PackFrequency overule the config_UserChoices_PeriodLength 283 if ( [ ! X${config_Post_PackFrequency} = X${NULL_STR} ] && [ ! X${config_Post_PackFrequency} = XNONE ] ) ; then 284 config_UserChoices_PeriodLength=${config_Post_PackFrequency} 285 fi 267 286 268 287 #================================== … … 869 888 fi 870 889 871 # Clean RUN_DIR_PATH (necessary for cesium )890 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 872 891 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 873 892 -
branches/libIGCM_MPI_OpenMP/AA_monitoring
r571 r592 231 231 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 232 232 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 233 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 233 234 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 234 235 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 235 236 else 236 237 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 238 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 237 239 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 238 240 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} 239 241 fi 242 243 IGCM_sys_MkdirArchive ${R_FIGR} 240 244 # 241 IGCM_sys_TestDirArchive ${R_ SAVE}/MONITORING245 IGCM_sys_TestDirArchive ${R_FIGR}/MONITORING 242 246 if [ $? = 0 ] ; then 243 247 IGCM_debug_Print 1 "Get MONITORING directory from archive" 244 IGCM_sys_Get_Dir ${R_ SAVE}/MONITORING ${RUN_DIR}248 IGCM_sys_Get_Dir ${R_FIGR}/MONITORING ${RUN_DIR} 245 249 else 246 250 IGCM_debug_Print 1 "MONITORING first pass. Nothing has been done before" … … 292 296 293 297 # Save files 294 IGCM_sys_Put_Dir MONITORING ${R_ SAVE}298 IGCM_sys_Put_Dir MONITORING ${R_FIGR} 295 299 296 300 # Dods copy 297 301 IGCM_sys_Put_Dods MONITORING 298 302 299 # Clean RUN_DIR_PATH (necessary for cesium )303 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 300 304 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} -
branches/libIGCM_MPI_OpenMP/AA_pack_debug
r571 r592 3 3 #-Q- cesium ## CESIUM CEA ## 4 4 #-Q- cesium ###################### 5 #-Q- cesium #MSUB -r PACKDEBUG # Nom du job 5 #-Q- cesium #MSUB -r PACKDEBUG # Nom du job 6 6 #-Q- cesium #MSUB -N 1 # Reservation du noeud 7 7 #-Q- cesium #MSUB -n 1 # Reservation du processus … … 27 27 #-Q- sx8brodie # Nom du travail LoadLeveler 28 28 #-Q- sx8brodie # @ job_name = PACKDEBUG 29 #-Q- sx8brodie # Fichier de sortie standard du travail 29 #-Q- sx8brodie # Fichier de sortie standard du travail 30 30 #-Q- sx8brodie # @ output = $(job_name).$(jobid) 31 31 #-Q- sx8brodie # Fichier de sortie d'erreur du travail … … 81 81 #-Q- sx9mercure ## CESIUM CEA ## 82 82 #-Q- sx9mercure ###################### 83 #-Q- sx9mercure #MSUB -r PACKDEBUG # Nom du job 83 #-Q- sx9mercure #MSUB -r PACKDEBUG # Nom du job 84 84 #-Q- sx9mercure #MSUB -N 1 # Reservation du noeud 85 85 #-Q- sx9mercure #MSUB -n 1 # Reservation du processus … … 91 91 #-Q- titane ## TITANE CEA ## 92 92 #-Q- titane ###################### 93 #-Q- titane #MSUB -r PACKDEBUG # Nom du job 93 #-Q- titane #MSUB -r PACKDEBUG # Nom du job 94 94 #-Q- titane #MSUB -eo 95 95 #-Q- titane #MSUB -n 1 # Reservation du processus … … 178 178 #RESTART/ATM_****.nc 179 179 #RESTART/OCE_****.nc 180 #Attention de bien conserver les dates d'origines 180 #Attention de bien conserver les dates d'origines 181 181 # 182 182 #Dans le cadre de la production nouvelle chaine 183 183 #ils auront directement le bon nom 184 184 # 185 #On veut egalement que l'archive soit par periode de temps 186 # cette periode est definie par la taille du pack donc connue 187 # en entree du script (1M, 1Y, 5Y, 10Y etc...) 188 # 189 # $1= PATH/config_card d'une simulation avec 190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd /PATH_SIMUL185 #On veut egalement que l'archive soit par periode de temps 186 # cette periode est definie par la taille du pack donc connue 187 # en entree du script (1M, 1Y, 5Y, 10Y etc...) 188 # 189 # $1= PATH/config_card d'une simulation avec 190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd 191 191 # $2=PeriodPack en M/m ou Y/y 192 192 … … 223 223 fi 224 224 225 # 225 #==================================================== 226 226 # First of all 227 227 # 228 #### 0- lecture de config.card 229 #### on veut les renseignements suivants : 230 #### JobName, PATH_SIMUL, DateBegin et DateEnd 231 228 # Read config.card 232 229 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card UserChoices 233 230 typeset option … … 250 247 251 248 #==================================================== 252 #R_SAVE : Job output storage directory 253 #R_BUFR : Job output buffered directory 249 # Prepare environment 250 #R_SAVE : Job output storage directory 251 #R_BUFR : Job output buffered directory 252 #STORE_DEBUG : Where we store tar files 254 253 255 254 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then … … 264 263 [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive" 265 264 266 #### Preparation de l'environnement 267 # repertoire dans lequel seront crees les archives 268 #STORE_DEBUG=/scratch/cont003/p86denv/Pack_Test/DEBUG 265 #STORE_DEBUG=/ccc/store/cont003/dsm/p86denv/.../DEBUG 269 266 STORE_DEBUG=${R_SAVE}/DEBUG 270 267 IGCM_sys_MkdirArchive ${STORE_DEBUG} 271 268 269 #cd ${STORE_DEBUG} 270 #rm -f * 271 272 272 # Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure) 273 273 JobName=${config_UserChoices_JobName} 274 PATH_SIMUL=${R_BUFR} 275 echo $JobName $PATH_SIMUL $DateBegin $DateEnd 276 277 #### 1- renommer les fichiers ###### 278 #cd ${STORE_DEBUG} 279 #rm -rf * 280 281 # On les copie sur le scratchdir en changeant le nom et conservant la date 274 echo $JobName $DateBegin $DateEnd 275 282 276 # Clear txt file lists 283 277 rm -f ${RUN_DIR}/liste_debug_files.txt … … 286 280 287 281 # Create sorted debug list to work with 288 find ${ PATH_SIMUL}/*/Debug -type f | sort >> ${RUN_DIR}/liste_debug_files.txt282 find ${R_BUFR}/*/Debug -type f | sort >> ${RUN_DIR}/liste_debug_files.txt 289 283 290 284 # Rename debug files we will work with using symlinks … … 312 306 IGCM_debug_PrintVariables 3 number_pack 313 307 314 DaysTemp=$( IGCM_date_DaysIn NextPeriod ${date_begin_pack} ${PeriodPack} )315 date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $ {DaysTemp})308 DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} ) 309 date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) ) 316 310 317 311 for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_debug_files.txt ); do 318 312 extract_date_file=$( echo ${file} | sed -e "s/.*${JobName}_[0-9]*_//" ) 319 313 date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 320 # echo pack n°${number_pack} ${date_file} ${date_begin_pack} ${date_end_pack} 321 if [ ${date_file} -l t ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then314 # echo pack n°${number_pack} ${date_file} ${date_begin_pack} ${date_end_pack} 315 if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 322 316 echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 323 echo $( ls -L ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 324 317 echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 325 318 # Will not work. Need to find a better ordering. 326 319 # elif [ ${date_file} -ge ${date_end_pack} ] ; then … … 350 343 351 344 done 345 346 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 347 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 348 349 date -
branches/libIGCM_MPI_OpenMP/AA_pack_restart
r571 r592 3 3 #-Q- cesium ## CESIUM CEA ## 4 4 #-Q- cesium ###################### 5 #-Q- cesium #MSUB -r PACKRESTART # Nom du job 5 #-Q- cesium #MSUB -r PACKRESTART # Nom du job 6 6 #-Q- cesium #MSUB -N 1 # Reservation du noeud 7 7 #-Q- cesium #MSUB -n 1 # Reservation du processus … … 27 27 #-Q- sx8brodie # Nom du travail LoadLeveler 28 28 #-Q- sx8brodie # @ job_name = PACKRESTART 29 #-Q- sx8brodie # Fichier de sortie standard du travail 29 #-Q- sx8brodie # Fichier de sortie standard du travail 30 30 #-Q- sx8brodie # @ output = $(job_name).$(jobid) 31 31 #-Q- sx8brodie # Fichier de sortie d'erreur du travail … … 81 81 #-Q- sx9mercure ## CESIUM CEA ## 82 82 #-Q- sx9mercure ###################### 83 #-Q- sx9mercure #MSUB -r PACKRESTART # Nom du job 83 #-Q- sx9mercure #MSUB -r PACKRESTART # Nom du job 84 84 #-Q- sx9mercure #MSUB -N 1 # Reservation du noeud 85 85 #-Q- sx9mercure #MSUB -n 1 # Reservation du processus … … 91 91 #-Q- titane ## TITANE CEA ## 92 92 #-Q- titane ###################### 93 #-Q- titane #MSUB -r PACKRESTART # Nom du job 93 #-Q- titane #MSUB -r PACKRESTART # Nom du job 94 94 #-Q- titane #MSUB -eo 95 95 #-Q- titane #MSUB -n 1 # Reservation du processus … … 178 178 #RESTART/ATM_****.nc 179 179 #RESTART/OCE_****.nc 180 #Attention de bien conserver les dates d'origines 180 #Attention de bien conserver les dates d'origines 181 181 # 182 182 #Dans le cadre de la production nouvelle chaine 183 183 #ils auront directement le bon nom 184 184 # 185 #On veut egalement que l'archive soit par periode de temps 186 # cette periode est definie par la taille du pack donc connue 187 # en entree du script (1M, 1Y, 5Y, 10Y etc...) 188 # 189 # $1= PATH/config_card d'une simulation avec 190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd /PATH_SIMUL185 #On veut egalement que l'archive soit par periode de temps 186 # cette periode est definie par la taille du pack donc connue 187 # en entree du script (1M, 1Y, 5Y, 10Y etc...) 188 # 189 # $1= PATH/config_card d'une simulation avec 190 # TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd 191 191 # $2=PeriodPack en M/m ou Y/y 192 192 … … 223 223 fi 224 224 225 # 225 #==================================================== 226 226 # First of all 227 227 # 228 #### 0- lecture de config.card 229 #### on veut les renseignements suivants : 230 #### JobName, PATH_SIMUL, DateBegin et DateEnd 228 # Read config.card 231 229 232 230 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card UserChoices … … 250 248 251 249 #==================================================== 252 #R_SAVE : Job output storage directory 253 #R_BUFR : Job output buffered directory 250 # Prepare environment 251 #R_SAVE : Job output storage directory 252 #R_BUFR : Job output buffered directory 253 #STORE_RESTART : Where we store tar files 254 254 255 255 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then … … 264 264 [ $? != 0 ] && IGCM_debug_Exit "IGCM_sys_TestDirArchive" 265 265 266 #### Preparation de l'environnement 267 # repertoire dans lequel seront crees les archives 268 #STORE_RESTART=/scratch/cont003/p86denv/Pack_Test/RESTART 266 #STORE_RESTART=/ccc/store/cont003/dsm/p86denv/.../RESTART 269 267 STORE_RESTART=${R_SAVE}/RESTART 270 268 IGCM_sys_MkdirArchive ${STORE_RESTART} 271 269 270 #cd ${STORE_RESTART} 271 #rm -f * 272 272 273 # Switch to script variables meaning (try to be compatible with ipsl_pack TGCC moving procedure) 273 274 JobName=${config_UserChoices_JobName} 274 PATH_SIMUL=${R_BUFR} 275 echo $JobName $PATH_SIMUL $DateBegin $DateEnd 276 277 #### 1- renommer les fichiers ###### 278 #cd ${STORE_RESTART} 279 #rm -rf * 280 281 # On les copie sur le scratchdir en changeant le nom et conservant la date 275 echo $JobName $R_BUFR $DateBegin $DateEnd 276 282 277 # Clear txt file lists 283 278 rm -f ${RUN_DIR}/liste_restart_files.txt … … 286 281 287 282 # Create sorted restart list to work with 288 find ${ PATH_SIMUL}/*/Restart -name "*nc" | sort >> ${RUN_DIR}/liste_restart_files.txt283 find ${R_BUFR}/*/Restart -name "*nc" | sort >> ${RUN_DIR}/liste_restart_files.txt 289 284 290 285 # Rename restart files we will work with using symlinks … … 312 307 IGCM_debug_PrintVariables 3 number_pack 313 308 314 DaysTemp=$( IGCM_date_DaysIn NextPeriod ${date_begin_pack} ${PeriodPack} )315 date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $ {DaysTemp})309 DaysTemp=$( IGCM_date_DaysInCurrentPeriod ${date_begin_pack} ${PeriodPack} ) 310 date_end_pack=$( IGCM_date_AddDaysToGregorianDate ${date_begin_pack} $(( ${DaysTemp} - 1 )) ) 316 311 317 312 for file in $( gawk '{print $11}' ${RUN_DIR}/new_liste_restart_files.txt ); do 318 313 extract_date_file=$( echo ${file} | sed -e "s/.*${JobName}_//" ) 319 314 date_file=$( echo ${extract_date_file} | sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 320 # echo pack n°${number_pack} ${date_file} ${date_begin_pack} ${date_end_pack} 321 if [ ${date_file} -lt ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 322 echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 323 echo $( ls -L ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 324 325 # Will not work. Need to find a better ordering. 326 # elif [ ${date_file} -ge ${date_end_pack} ] ; then 327 # break 315 # echo pack n°${number_pack} ${date_file} ${date_begin_pack} ${date_end_pack} 316 if [ ${date_file} -le ${date_end_pack} ] && [ ${date_file} -ge ${date_begin_pack} ] ; then 317 echo $( basename ${file} ) >> ${RUN_DIR}/liste_pack_${number_pack}.txt 318 echo $( readlink ${file} ) >> ${RUN_DIR}/liste_remove_pack_${number_pack}.txt 319 # Will not work. Need to find a better ordering. 320 # elif [ ${date_file} -ge ${date_end_pack} ] ; then 321 # break 328 322 fi 329 323 done … … 350 344 351 345 done 346 347 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 348 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 349 350 date -
branches/libIGCM_MPI_OpenMP/AA_rebuild_fromArchive
r571 r592 275 275 done 276 276 277 # Clean RUN_DIR_PATH (necessary for cesium only)277 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 278 278 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 279 280 date -
branches/libIGCM_MPI_OpenMP/AA_rebuild_fromWorkdir
r571 r592 275 275 done 276 276 277 # Clean RUN_DIR_PATH (necessary for cesium only)277 # Clean RUN_DIR_PATH (necessary for cesium and titane only) 278 278 IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH} 279 280 date -
branches/libIGCM_MPI_OpenMP/libIGCM_comp/libIGCM_comp.ksh
r572 r592 482 482 eval file_out=${file_out_} 483 483 484 IGCM_sys_Get ${file_in} ${file_out} 485 IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 484 IGCM_sys_IsFileArchived ${file_in} 485 if [ $? = 0 ] ; then 486 IGCM_sys_Get ${file_in} ${file_out} 487 #IGCM_comp_PrepareDeletedFiles ${file_in} ${file_out} 488 else 489 IGCM_sys_Cp ${file_in} ${file_out} 490 fi 486 491 487 492 (( i=i+2 )) … … 603 608 echo 604 609 605 typeset Date_tmp Date_r Path_r do_start CompOldName Path_OUT Path_BUF Buffered 610 typeset Date_tmp Date_r Path_r do_start CompOldName Path_OUT Path_BUF 611 typeset Buffered Archived Tared PotentialTarFile IsMatching TarFileFound 606 612 typeset comp compname comptagname card ListFilesName FileName0 NbFiles i i_ 607 613 typeset file_in file_out file_in_ file_out_ file_in_Name … … 632 638 eval CompOldName=${comp} 633 639 else 634 640 # Read component Restarts parameters 635 641 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card ${comp} Restart 636 642 eval do_start=\${config_${comp}_Restart} > /dev/null 2>&1 … … 726 732 727 733 if [ -f ${Path_BUF}*.nc ] ; then 734 IGCM_debug_Print 3 "Buffered restart" 728 735 Buffered=true 736 Archived=false 737 Tared=false 729 738 nb_restart_file=$(IGCM_sys_CountFileBuffer ${Path_BUF}_????.nc) 739 elif [ -f ${Path_OUT}*.nc ] ; then 740 IGCM_debug_Print 3 "Archived restart" 741 Buffered=false 742 Archived=true 743 Tared=false 744 nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.nc) 730 745 else 746 IGCM_debug_Print 3 "Tared restart" 731 747 Buffered=false 732 nb_restart_file=$(IGCM_sys_CountFileArchive ${Path_OUT}_????.nc) 748 Archived=false 749 Tared=true 750 # Look after the tar file we want if we did not found it already 751 if [ X${IsMatching} = X ] ; then 752 for PotentialTarFile in $( find ${R_SAVE}/RESTART -name "${config_UserChoices_JobName}_*_restart.tar" ) ; do 753 IsMatching=$( echo ${PotentialTarFile} | sed "s:^${config_UserChoices_JobName}_::" | sed "s:\.restart\.tar$::" | gawk -F_ -v restartdate=${LastPeriodDateEnd} '{if (($1 < restartdate) && ($2 > restartdate)) {print $1"_"$2}}' ) 754 if [ ! X${IsMatching} = X ] ; then 755 TarFileFound=${PotentialTarFile} 756 break 757 fi 758 done 759 fi 760 tar xvf ${TarFileFound} ${comp}_${generic_restart_file_name_in}*.nc 761 nb_restart_file=$( IGCM_sys_CountFileBuffer ${comp}_${generic_restart_file_name_in}_????.nc ) 733 762 fi 734 763 … … 739 768 if [ X${Buffered} = Xtrue ] ; then 740 769 IGCM_sys_GetBuffer ${Path_BUF}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 741 el se770 elif [ X${Archived} = Xtrue ] ; then 742 771 IGCM_sys_Get ${Path_OUT}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 772 elif [ X${Tared} = Xtrue ] ; then 773 IGCM_sys_Mv ${comp}_${generic_restart_file_name_in}_${j4}.nc ${generic_restart_file_name_out}_${j4}.nc 743 774 fi 744 775 (( j=j+1 )) … … 747 778 if [ X${Buffered} = Xtrue ] ; then 748 779 eval IGCM_sys_GetBuffer \${R_BUF_${comp}_R}/${file_in_Name} ${file_out} 749 el se780 elif [ X${Archived} = Xtrue ] ; then 750 781 eval IGCM_sys_Get \${R_OUT_${comp}_R}/${file_in_Name} ${file_out} 751 fi 752 fi 753 782 elif [ X${Tared} = Xtrue ] ; then 783 IGCM_sys_Mv ${comp}_${file_in_Name} ${file_out} 784 fi 785 fi 754 786 (( i=i+3 )) 755 787 done … … 919 951 until [ $j -ge $nb_restart_file ]; do 920 952 j4=${j} 921 953 if [ X${Pack} = Xtrue ] ; then 922 954 eval IGCM_sys_PutBuffer_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_BUF_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 923 924 eval IGCM_sys_Put_Rest 925 955 else 956 eval IGCM_sys_Put_Rest ${generic_restart_file_name_in}_${j4}.nc \${R_OUT_${comp}_R}/${generic_restart_file_name_out}_${j4}.nc 957 fi 926 958 if [ ! ${file_in} = ${file_outin} ] ; then 927 959 if ( ${ExitFlag} ) ; then … … 934 966 done 935 967 else 936 968 if [ X${Pack} = Xtrue ] ; then 937 969 eval IGCM_sys_PutBuffer_Rest ${file_in} \${R_BUF_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 938 939 eval IGCM_sys_Put_Rest${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out}940 970 else 971 eval IGCM_sys_Put_Rest ${file_in} \${R_OUT_${comp}_R}/${config_UserChoices_JobName}_${PeriodDateEnd}_${file_out} 972 fi 941 973 if [ ! ${file_in} = ${file_outin} ] ; then 942 974 if ( ${ExitFlag} ) ; then … … 976 1008 eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 977 1009 eval file_out=${file_out_} 1010 # 1011 # Override file_out path remplacing R_SAVE by R_BUFR 1012 # 1013 if [ X${Pack} = Xtrue ] ; then 1014 file_out=$( echo $file_out | sed "s:^$R_SAVE:$R_BUFR:" ) 1015 fi 1016 # 1017 # Not necessarily the best option. /!\ Potential side effects /!\ 1018 # 978 1019 (( i_ = i+2 )) 979 1020 eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1 … … 1006 1047 echo "echo " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1007 1048 echo "export R_SAVE=${R_SAVE} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1049 echo "export R_BUFR=${R_BUFR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1008 1050 echo "export config_UserChoices_JobName=${config_UserChoices_JobName} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1009 1051 fi … … 1027 1069 # 1028 1070 if [ $DRYRUN -le 1 ]; then 1029 echo "IGCM_sys_Put_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1071 if [ X${Pack} = Xtrue ] ; then 1072 echo "IGCM_sys_PutBuffer_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1073 else 1074 echo "IGCM_sys_Put_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1075 fi 1030 1076 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1031 1077 echo "IGCM_sys_Rm ${generic_file_name}_*.nc " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh … … 1066 1112 done 1067 1113 # 1068 echo "IGCM_sys_Put_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1114 if [ X${Pack} = Xtrue ] ; then 1115 echo "IGCM_sys_PutBuffer_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1116 else 1117 echo "IGCM_sys_Put_Out ${file_in} ${file_out} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1118 fi 1069 1119 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 1070 1120 # … … 1074 1124 # No Patch, No Asynchronous rebuild, online rebuild has been done or was not needed 1075 1125 # 1076 IGCM_sys_Put_Out ${file_in} ${file_out} 1126 if [ X${Pack} = Xtrue ] ; then 1127 IGCM_sys_PutBuffer_Out ${file_in} ${file_out} 1128 else 1129 IGCM_sys_Put_Out ${file_in} ${file_out} 1130 fi 1077 1131 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 1078 1132 if [ ${nb_rebuild_file} -gt 1 ] ; then … … 1130 1184 done 1131 1185 if [ X${Pack} = Xtrue ] ; then 1132 1133 1134 eval IGCM_sys_Put_Out${file_out} \${R_OUT_${comp}_D}/${file_out}1135 1186 eval IGCM_sys_PutBuffer_Out ${file_out} \${R_BUF_${comp}_D}/${file_out} 1187 else 1188 eval IGCM_sys_Put_Out ${file_out} \${R_OUT_${comp}_D}/${file_out} 1189 fi 1136 1190 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_out}" > /dev/null 2>&1 1137 1191 … … 1144 1198 if [ X${Pack} = Xtrue ] ; then 1145 1199 eval IGCM_sys_PutBuffer_Out ${file} \${R_BUF_${comp}_D}/${PREFIX}_${file} 1146 1147 eval IGCM_sys_Put_Out 1148 1200 else 1201 eval IGCM_sys_Put_Out ${file} \${R_OUT_${comp}_D}/${PREFIX}_${file} 1202 fi 1149 1203 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file}" > /dev/null 2>&1 1150 1204 … … 1160 1214 if [ X${Pack} = Xtrue ] ; then 1161 1215 eval IGCM_sys_PutBuffer_Out ${file_in} \${R_BUF_${comp}_D}/${file_out} 1162 1163 eval IGCM_sys_Put_Out 1164 1216 else 1217 eval IGCM_sys_Put_Out ${file_in} \${R_OUT_${comp}_D}/${file_out} 1218 fi 1165 1219 eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 1166 1220 -
branches/libIGCM_MPI_OpenMP/libIGCM_config/libIGCM_config.ksh
r571 r592 61 61 62 62 #================================== 63 # Read UserChoices section: 63 64 IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card UserChoices 64 65 … … 88 89 89 90 #================================== 90 91 # Read Post section: 92 IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Post 93 echo 94 IGCM_debug_Print 1 "DefineArrayFromOption : config_Post" 95 96 for option in ${config_Post[*]} ; do 97 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Post ${option} 98 eval auxprint=\${config_Post_${option}} 99 IGCM_debug_Print 3 "${option} : ${auxprint}" 100 done 101 102 #================================== 103 # Define default value to keep compatibility with previous card: means before changes due to TGCC 104 [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency} 105 106 #================================== 107 # Read ListOfComponents section: 91 108 IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card ListOfComponents 92 109 for comp in ${config_ListOfComponents[*]} ; do … … 189 206 FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' ) 190 207 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 208 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 191 209 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 192 210 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName} 193 211 else 194 212 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 213 R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 195 214 R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 196 215 R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName} … … 218 237 fi 219 238 fi 220 221 #==================================222 # Read Post section:223 IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Post224 225 echo226 IGCM_debug_Print 1 "DefineArrayFromOption : config_Post"227 228 for option in ${config_Post[*]} ; do229 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Post ${option}230 eval auxprint=\${config_Post_${option}}231 IGCM_debug_Print 3 "${option} : ${auxprint}"232 done233 234 #==================================235 # Define default value to keep compatibility with previous card: means before changes due to TGCC236 [ X${config_Post_PackFrequency} = X ] && config_Post_PackFrequency=${config_Post_RebuildFrequency}237 239 238 240 #==================================================== -
branches/libIGCM_MPI_OpenMP/libIGCM_date/libIGCM_date.ksh
r571 r592 944 944 } 945 945 946 #D-#================================================================== 947 #D-function IGCM_date_DaysInCurrentPeriod () 948 #D-* Purpose: Give the numbers of days during the Current prd1 period from grg1 date 949 #D-* Usage: IGCM_date_DaysInCurrentPeriod grg1 prd1 950 #D- where grg1 gregorian date is in the form yyyymmdd 951 #D- where prd1 period is in the form N[Yy], N[Mm], N[Dd]. N integer 952 #D- 953 function IGCM_date_DaysInCurrentPeriod { 954 IGCM_debug_PushStack "IGCM_date_DaysInCurrentPeriod" $@ 955 typeset Length Period 956 Period=${2} 957 case ${Period} in 958 *Y|*y) 959 PeriodLengthInYears=$( echo ${Period} | awk -F '[yY]' '{print $1}' ) 960 IGCM_date_GetYearMonth ${1} year month 961 year=$( IGCM_date_SupressZeros ${year} ) 962 (( Length=0 )) 963 (( i=0 )) 964 until [ $i -ge $PeriodLengthInYears ] ; do 965 (( Length = Length + $( IGCM_date_DaysInYear $(( year + i )) ) )) 966 (( i=i+1 )) 967 done 968 ;; 969 *M|*m) 970 PeriodLengthInMonths=$( echo ${Period} | awk -F '[mM]' '{print $1}' ) 971 IGCM_date_GetYearMonth ${1} year month 972 year=$( IGCM_date_SupressZeros ${year} ) 973 (( year0 = year )) 974 (( Length=0 )) 975 (( i=0 )) 976 until [ $i -ge $PeriodLengthInMonths ] ; do 977 if [ $(( month + i )) -lt 13 ] ; then 978 (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i )) ) )) 979 else 980 (( year = year0 + 1 )) 981 (( Length = Length + $( IGCM_date_DaysInMonth $year $(( month + i - 12 )) ) )) 982 fi 983 (( i=i+1 )) 984 done 985 ;; 986 *D|*d) 987 Length=$( echo ${Period} | sed -e "s/[dD]//" ) ;; 988 *) 989 IGCM_debug_Exit "IGCM_date_DaysInCurrentPeriod " ${Period} " invalid PeriodLength : choose in *Y, *M, *D." 990 IGCM_debug_Verif_Exit_Post ;; 991 esac 992 echo ${Length} 993 994 IGCM_debug_PopStack "IGCM_date_DaysInCurrentPeriod" 995 } 946 996 947 997 #D-#================================================================== -
branches/libIGCM_MPI_OpenMP/libIGCM_post/IGCM_Patch_20091118_mask.ksh
r373 r592 20 20 IGCM_debug_PushStack "IGCM_Patch_mask" $@ 21 21 22 [ -f ${config_UserChoices_JobName}_mesh_mask.nc ] || IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 22 if [ ! -f ${config_UserChoices_JobName}_mesh_mask.nc ] ; then 23 if [ -f ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then 24 IGCM_sys_GetBuffer ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 25 elif [ -f ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc ] ; then 26 IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc . 27 else 28 IGCM_debug_Exit "mesh_mask can not be found. Stop." 29 IGCM_debug_Exit "neither here ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc" 30 IGCM_debug_Exit "nor here ${R_BUFR}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc" 31 IGCM_debug_Verif_Exit_Post 32 fi 33 fi 23 34 24 35 filename=${1} -
branches/libIGCM_MPI_OpenMP/libIGCM_post/libIGCM_post.ksh
r571 r592 248 248 [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 )) 249 249 # Starting Year of the current chunck 250 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * 250 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} )) 251 251 # Starting date of the current chunck 252 252 ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01 … … 415 415 fi 416 416 417 #============== PACK PROCESSING FOR RESTART AND DEBUG FILES =============# 418 if [ ${PackFrequency} = true ] ; then 419 IGCM_debug_Print 1 "PACK POST-PROCESSING" 420 echo 421 ## Need to Remember This One 422 SavedDateBegin=${DateBegin} 423 ## Need to Remember This One 424 SavedDateEnd=${DateEnd} 425 # 426 DaysTemp=$(( $( IGCM_date_DaysInPreviousPeriod ${PeriodDateEnd} ${config_Post_PackFrequency} end ) - 1 )) 427 # 428 PackDateBegin=$( IGCM_date_AddDaysToGregorianDate ${PeriodDateEnd} -${DaysTemp} ) 429 # 430 script=pack_debug 431 # 432 Script_Post_Output=${script}.${PeriodDateEnd} 433 # 434 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,DateBegin,DateEnd,PeriodPack,StandAlone" 435 IGCM_sys_RshPost <<-EOF 436 export DEBUG_debug=${DEBUG_debug} 437 export MODIPSL=${MODIPSL} 438 export libIGCM_SX=${libIGCM} 439 export libIGCM=${libIGCM_POST} 440 export SUBMIT_DIR=${SUBMIT_DIR} 441 export POST_DIR=${POST_DIR} 442 export MASTER=${MASTER} 443 export DateBegin=${PackDateBegin} 444 export DateEnd=${PeriodDateEnd} 445 export PeriodPack=${config_Post_PackFrequency} 446 export StandAlone=false 447 export listVarEnv=${listVarEnv} 448 export Script_Post_Output=${Script_Post_Output} 449 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 450 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 451 IGCM_sys_MkdirWork ${POST_DIR} 452 IGCM_debug_Verif_Exit_Post 453 IGCM_sys_QsubPost ${script} 454 EOF 455 # 456 script=pack_restart 457 # 458 Script_Post_Output=${script}.${PeriodDateEnd} 459 # 460 IGCM_sys_RshPost <<-EOF 461 export DEBUG_debug=${DEBUG_debug} 462 export MODIPSL=${MODIPSL} 463 export libIGCM_SX=${libIGCM} 464 export libIGCM=${libIGCM_POST} 465 export SUBMIT_DIR=${SUBMIT_DIR} 466 export POST_DIR=${POST_DIR} 467 export MASTER=${MASTER} 468 export DateBegin=${PackDateBegin} 469 export DateEnd=${PeriodDateEnd} 470 export PeriodPack=${config_Post_PackFrequency} 471 export StandAlone=false 472 export listVarEnv=${listVarEnv} 473 export Script_Post_Output=${Script_Post_Output} 474 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 475 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 476 IGCM_sys_MkdirWork ${POST_DIR} 477 IGCM_debug_Verif_Exit_Post 478 IGCM_sys_QsubPost ${script} 479 EOF 480 # 481 script=pack_output 482 # 483 Script_Post_Output=${script}.${PeriodDateEnd} 484 # 485 if [ ${RebuildFrequency} = true ] ; then 486 # 487 if [ -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 488 # 489 # if [ X${MASTER} = Xtitane ] ; then 490 # echo "IGCM_sys_RshPost <<-EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 491 # fi 492 echo "export DEBUG_debug=${DEBUG_debug} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 493 echo "export MODIPSL=${MODIPSL} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 494 echo "export libIGCM_SX=${libIGCM} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 495 echo "export libIGCM=${libIGCM_POST} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 496 echo "export SUBMIT_DIR=${SUBMIT_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 497 echo "export POST_DIR=${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 498 echo "export MASTER=${MASTER} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 499 echo "export DateBegin=${PackDateBegin} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 500 echo "export DateEnd=${PeriodDateEnd} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 501 echo "export PeriodPack=${config_Post_PackFrequency} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 502 echo "export StandAlone=false " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 503 echo "export listVarEnv=${listVarEnv} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 504 echo "export Script_Post_Output=${Script_Post_Output}" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 505 echo "export script=${script} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 506 # if [ X${MASTER} = Xtitane ] ; then 507 # echo ". ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 508 # echo ". ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 509 # fi 510 echo "IGCM_sys_MkdirWork ${POST_DIR} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 511 echo "IGCM_debug_Verif_Exit_Post " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 512 echo "IGCM_sys_QsubPost ${script} " >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 513 # if [ X${MASTER} = Xtitane ] ; then 514 # echo "EOF" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 515 # fi 516 fi 517 else 518 IGCM_sys_RshPost <<-EOF 519 export DEBUG_debug=${DEBUG_debug} 520 export MODIPSL=${MODIPSL} 521 export libIGCM_SX=${libIGCM} 522 export libIGCM=${libIGCM_POST} 523 export SUBMIT_DIR=${SUBMIT_DIR} 524 export POST_DIR=${POST_DIR} 525 export MASTER=${MASTER} 526 export DateBegin=${PackDateBegin} 527 export DateEnd=${PeriodDateEnd} 528 export PeriodPack=${config_Post_PackFrequency} 529 export StandAlone=false 530 export listVarEnv=${listVarEnv} 531 export Script_Post_Output=${Script_Post_Output} 532 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 533 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 534 IGCM_sys_MkdirWork ${POST_DIR} 535 IGCM_debug_Verif_Exit_Post 536 IGCM_sys_QsubPost ${script} 537 EOF 538 export DateBegin=${SavedDateBegin} 539 export DateEnd=${SavedDateEnd} 540 fi 541 fi 542 417 543 #============== REBUILD POST-PROCESSING =============# 418 544 if [ X${AsynchronousRebuild} = Xtrue ] ; then … … 476 602 IGCM_sys_QsubPost ${script} 477 603 EOF 478 fi479 480 #============== PACK PROCESSING FOR RESTART AND DEBUG FILES =============#481 if [ ${PackFrequency} = true ] ; then482 IGCM_debug_Print 1 "PACK POST-PROCESSING"483 echo484 ## Need to Remember This One485 SavedDateBegin=${DateBegin}486 ## Need to Remember This One487 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_debug494 #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 <<-EOF499 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=false510 export listVarEnv=${listVarEnv}511 export Script_Post_Output=${Script_Post_Output}512 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh513 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh514 IGCM_sys_MkdirWork ${POST_DIR}515 IGCM_debug_Verif_Exit_Post516 IGCM_sys_QsubPost ${script}517 EOF518 #519 script=pack_restart520 #521 Script_Post_Output=${script}.${PeriodDateEnd}522 #523 IGCM_sys_RshPost <<-EOF524 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=false535 export listVarEnv=${listVarEnv}536 export Script_Post_Output=${Script_Post_Output}537 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh538 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh539 IGCM_sys_MkdirWork ${POST_DIR}540 IGCM_debug_Verif_Exit_Post541 IGCM_sys_QsubPost ${script}542 EOF543 544 export DateBegin=${SavedDateBegin}545 export DateEnd=${SavedDateEnd}546 604 fi 547 605 IGCM_debug_PopStack "IGCM_post_Submit" … … 610 668 *M|*m) 611 669 PeriodMasterMonth=$( echo ${MasterFrequency} | sed -e "s/[mM]//" ) 612 case ${SlaveFrequency} in 670 case ${SlaveFrequency} in 613 671 *Y|*y) 614 672 PeriodSlaveYear=$( echo ${SlaveFrequency} | sed -e "s/[yY]//" ) -
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_cesium.ksh
r571 r592 112 112 113 113 #==================================================== 114 #- ARCHIVE 115 typeset -r ARCHIVE=${DMFDIR} 114 #- ARCHIVE (dedicated to large files) 115 typeset -r ARCHIVE=${CCCSTOREDIR} 116 117 #- ARCHIVE (dedicated to small/medium files) 118 typeset -r STORAGE=${CCCWORKDIR} 119 120 #==================================================== 116 121 117 122 #==================================================== … … 123 128 #- R_OUT 124 129 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 130 131 #==================================================== 132 #- R_FIG (hosting figures : monitoring and atlas, and/or small files) 133 typeset -r R_FIG=${STORAGE}/IGCM_OUT 125 134 126 135 #==================================================== … … 895 904 # USUAL WAY 896 905 # add dmfind/dmget (to demigrate all offline files) : 897 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget906 #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 898 907 \cp -r $1 $2 > out_rsync 2>&1 899 908 RET=$? … … 1066 1075 if [ -f $2 ] ; then 1067 1076 IGCM_debug_Print 1 "$2 already exist" 1068 dmget $2 1077 #dmget $2 1078 ccc_hsm get $2 1069 1079 exist=true 1070 1080 if [ "X$( diff $1 $2 )" = X ] ; then … … 1161 1171 fi 1162 1172 1163 dmget ${dm_liste[*]} > out_rsync 2>&1 1173 #dmget ${dm_liste[*]} > out_rsync 2>&1 1174 ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1164 1175 RET=$? 1165 1176 if [ ${RET} -gt 0 ] ; then … … 1174 1185 # sleep 30 1175 1186 # echo "We try another time" 1176 # dmget ${dm_liste[*]} > out_rsync 2>&1 1187 ## dmget ${dm_liste[*]} > out_rsync 2>&1 1188 # ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1177 1189 # RET=$? 1178 1190 # if [ ${RET} -gt 0 ] ; then … … 1315 1327 RET=0 1316 1328 if [ $DRYRUN = 0 ]; then 1317 if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1318 echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1319 echo "Nothing has been done." 1320 return 1321 fi 1322 dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1329 1330 # if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1331 # echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1332 # echo "Nothing has been done." 1333 # return 1334 # fi 1335 1336 /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1323 1337 RET=$? 1324 1338 … … 1348 1362 typeset RET 1349 1363 RET=0 1350 if [ $DRYRUN = 0 ]; then 1351 if [ ! -d ${R_SAVE}/${1} ] ; then 1352 echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1353 echo "Nothing has been done." 1354 return 1355 fi 1356 # 1357 dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1364 1365 # if [ $DRYRUN = 0 ]; then 1366 # if [ ! -d ${R_SAVE}/${1} ] ; then 1367 # echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1368 # echo "Nothing has been done." 1369 # return 1370 # fi 1371 1372 /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1358 1373 RET=$? 1359 1374 … … 1382 1397 echo "IGCM_sys_Put_Dods :" $@ 1383 1398 fi 1399 typeset RET 1384 1400 if [ $DRYRUN = 0 ]; then 1385 if [ ! -d ${R_SAVE}/${1} ] ; then 1386 echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 1401 1402 if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 1403 echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 1404 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 1405 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 1387 1406 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1388 1407 return 1389 1408 fi 1390 1409 1391 typeset RET 1392 # 1393 cd ${R_SAVE} 1410 if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 1411 echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 1412 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 1413 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 1414 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1415 return 1416 fi 1417 # 1418 if [ -d ${R_SAVE}/${1} ] ; then 1419 cd ${R_SAVE} 1420 elif [ -d ${R_FIGR}/${1} ] ; then 1421 cd ${R_FIGR} 1422 fi 1423 1394 1424 IGCM_sys_Dods_Rm ${1} 1395 1425 IGCM_sys_Dods_Cp ${1} -
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercure.ksh
r571 r592 102 102 103 103 #==================================================== 104 #- ARCHIVE 105 typeset -r ARCHIVE=${DMFDIR} 104 #- ARCHIVE (dedicated to large files) 105 typeset -r ARCHIVE=${CCCSTOREDIR} 106 107 #- ARCHIVE (dedicated to small/medium files) 108 typeset -r STORAGE=${CCCWORKDIR} 106 109 107 110 #==================================================== … … 113 116 #- R_OUT 114 117 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 118 119 #==================================================== 120 #- R_FIG (hosting figures : monitoring and atlas, and/or small files) 121 typeset -r R_FIG=${STORAGE}/IGCM_OUT 115 122 116 123 #==================================================== … … 532 539 echo "IGCM_sys_QsubPost :" $@ 533 540 fi 534 /usr/bin/nqsII/qsub - o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv}541 /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 535 542 if [ $? -gt 0 ] ; then 536 543 echo "IGCM_sys_QsubPost : erreur " $@ … … 833 840 #USUAL WAY 834 841 # add dmget (to demigrate all offline files) to reduce time of this command : 835 dmget $1/* 842 #dmget $1/* 843 ccc_hsm get $1/* 836 844 \cp -r $1 $2 > out_rsync 2>&1 837 845 RET=$? … … 1027 1035 if [ -f $2 ] ; then 1028 1036 IGCM_debug_Print 1 "$2 already exist" 1029 dmget $2 1037 #dmget $2 1038 ccc_hsm get $2 1030 1039 exist=true 1031 1040 if [ "X$( diff $1 $2 )" = X ] ; then … … 1166 1175 fi 1167 1176 1168 dmget ${dm_liste[*]} > out_rsync 2>&1 1177 #dmget ${dm_liste[*]} > out_rsync 2>&1 1178 ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1169 1179 RET=$? 1170 1180 if [ ${RET} -gt 0 ] ; then … … 1180 1190 # sleep 30 1181 1191 # echo "We try another time" 1182 # dmget ${dm_liste[*]} > out_rsync 2>&1 1192 ## dmget ${dm_liste[*]} > out_rsync 2>&1 1193 # ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1183 1194 # RET=$? 1184 1195 # if [ ${RET} -gt 0 ] ; then … … 1321 1332 RET=0 1322 1333 if [ $DRYRUN = 0 ]; then 1323 if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1324 echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1325 echo "Nothing has been done." 1326 return 1327 fi 1328 dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1334 1335 # if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1336 # echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1337 # echo "Nothing has been done." 1338 # return 1339 # fi 1340 1341 /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1329 1342 RET=$? 1330 1343 … … 1355 1368 RET=0 1356 1369 if [ $DRYRUN = 0 ]; then 1357 if [ ! -d ${R_SAVE}/${1} ] ; then 1358 echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1359 echo "Nothing has been done." 1360 return 1361 fi 1362 # 1363 dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1370 1371 # if [ ! -d ${R_SAVE}/${1} ] ; then 1372 # echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1373 # echo "Nothing has been done." 1374 # return 1375 # fi 1376 1377 /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1364 1378 RET=$? 1365 1379 … … 1388 1402 echo "IGCM_sys_Put_Dods :" $@ 1389 1403 fi 1404 typeset RET 1390 1405 if [ $DRYRUN = 0 ]; then 1391 if [ ! -d ${R_SAVE}/${1} ] ; then 1392 echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 1406 if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 1407 echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 1408 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 1409 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 1393 1410 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1394 1411 return 1395 1412 fi 1396 1413 1397 typeset RET 1398 # 1399 cd ${R_SAVE} 1414 if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 1415 echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 1416 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 1417 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 1418 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1419 return 1420 fi 1421 # 1422 if [ -d ${R_SAVE}/${1} ] ; then 1423 cd ${R_SAVE} 1424 elif [ -d ${R_FIGR}/${1} ] ; then 1425 cd ${R_FIGR} 1426 fi 1427 1400 1428 IGCM_sys_Dods_Rm ${1} 1401 1429 IGCM_sys_Dods_Cp ${1} -
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex8.ksh
r571 r592 89 89 #==================================================== 90 90 91 # ============ CESIUM START ============ # 92 93 #==================================================== 94 #- Mirror libIGCM from mercure to cesium if needed 95 #ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 96 #if [ ! ${ROOTSYS} = "home" ] ; then 97 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 98 #else 99 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 100 #fi 101 102 #==================================================== 103 #- libIGCM_POST 104 #if ( ${MirrorlibIGCM} ) ; then 105 # PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 106 # typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 107 #else 108 # typeset -r libIGCM_POST=${libIGCM} 109 #fi 110 111 # ============ CESIUM END ============ # 112 113 #==================================================== 114 #- MirrorlibIGCM uncomment for frontend 115 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 116 117 #==================================================== 118 #- libIGCM_POST uncomment for frontend 119 typeset -r libIGCM_POST=${libIGCM} 120 91 121 #==================================================== 92 122 #- R_EXE (==> BIN_DIR = ${MODIPSL}/bin ) … … 98 128 99 129 #==================================================== 100 #- ARCHIVE 101 typeset -r ARCHIVE=${DMFDIR} 102 103 # ============ CESIUM START ============ # 104 105 #==================================================== 106 #- Mirror libIGCM from mercure to cesium if needed 107 #ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $2}' ) 108 #if [ ! ${ROOTSYS} = "home" ] ; then 109 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 110 #else 111 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 112 #fi 113 114 #==================================================== 115 #- libIGCM_POST 116 #if ( ${MirrorlibIGCM} ) ; then 117 # PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 118 # typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 119 #else 120 # typeset -r libIGCM_POST=${libIGCM} 121 #fi 122 123 # ============ CESIUM END ============ # 124 125 #==================================================== 126 #- Mirror libIGCM from mercure to cesium if needed 127 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 128 129 #==================================================== 130 #- libIGCM_POST 131 typeset -r libIGCM_POST=${libIGCM} 130 #- ARCHIVE (dedicated to large files) 131 typeset -r ARCHIVE=${CCCSTOREDIR} 132 133 #- ARCHIVE (dedicated to small/medium files) 134 typeset -r STORAGE=${CCCWORKDIR} 132 135 133 136 #==================================================== … … 139 142 #- R_OUT 140 143 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 144 145 #==================================================== 146 #- R_FIG (hosting figures : monitoring and atlas, and/or small files) 147 typeset -r R_FIG=${STORAGE}/IGCM_OUT 141 148 142 149 #==================================================== … … 271 278 status=completed 272 279 fi 273 274 ssh ${MASTER} /bin/ksh <<-EOF275 export LOGIN=${LOGIN}276 export config_UserChoices_JobName=${config_UserChoices_JobName}277 export config_UserChoices_MailName=${config_UserChoices_MailName}278 export DateBegin=${DateBegin}279 export DateEnd=${DateEnd}280 export R_SAVE=${R_SAVE}281 export SUBMIT_DIR=${SUBMIT_DIR}282 export status=${status}283 284 280 cat << END_MAIL > job_end.mail 285 281 Dear ${LOGIN}, … … 296 292 elif [ -f ~/.forward ] ; then 297 293 mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 298 fi 299 300 sleep 10 301 rm -f job_end.mail 302 EOF 294 else 295 mailx -s "${config_UserChoices_JobName} ${status}" ${LOGIN} < job_end.mail 296 fi 303 297 304 298 if [ $? -gt 0 ] ; then … … 627 621 # ============ FRONTEND START ============ # 628 622 629 /usr/bin/nqsII/qsub - o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv}623 /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 630 624 631 625 # ============ FRONTEND END ============ # 632 626 633 627 # ============ CESIUM START ============ # 634 635 628 # typeset NB_ESSAI DELAI status i 636 629 # # number of tentative … … 649 642 # (( i = i + 1 )) 650 643 # done 651 652 644 # ============ CESIUM END ============ # 653 645 … … 956 948 # USUAL WAY 957 949 # add dmfind/dmget (to demigrate all offline files) : 958 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget950 #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 959 951 \cp -r $1 $2 > out_rsync 2>&1 960 952 RET=$? … … 1233 1225 fi 1234 1226 1235 dmget ${dm_liste[*]} > out_rsync 2>&1 1227 #dmget ${dm_liste[*]} > out_rsync 2>&1 1228 ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1236 1229 RET=$? 1237 1230 if [ ${RET} -gt 0 ] ; then … … 1247 1240 # sleep 30 1248 1241 # echo "We try another time" 1249 # dmget ${dm_liste[*]} > out_rsync 2>&1 1242 ## dmget ${dm_liste[*]} > out_rsync 2>&1 1243 # ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1250 1244 # RET=$? 1251 1245 # if [ ${RET} -gt 0 ] ; then -
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex9.ksh
r571 r592 89 89 #==================================================== 90 90 91 # ============ CESIUM START ============ # 92 93 #==================================================== 94 #- Mirror libIGCM from mercure to cesium if needed 95 #ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 96 #if [ ! ${ROOTSYS} = "home" ] ; then 97 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 98 #else 99 # typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 100 #fi 101 102 #==================================================== 103 #- libIGCM_POST 104 #if ( ${MirrorlibIGCM} ) ; then 105 # PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 106 # typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 107 #else 108 # typeset -r libIGCM_POST=${libIGCM} 109 #fi 110 111 # ============ CESIUM END ============ # 112 113 #==================================================== 114 #- MirrorlibIGCM uncomment for frontend 115 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 116 117 #==================================================== 118 #- libIGCM_POST uncomment for frontend 119 typeset -r libIGCM_POST=${libIGCM} 120 91 121 #==================================================== 92 122 #- R_EXE (==> BIN_DIR = ${MODIPSL}/bin ) … … 98 128 99 129 #==================================================== 100 #- ARCHIVE 101 typeset -r ARCHIVE=${DMFDIR} 102 103 # ============ CESIUM START ============ # 104 105 #==================================================== 106 #- Mirror libIGCM from mercure to cesium if needed 107 ROOTSYS=$( echo ${libIGCM} | gawk -F"/" '{print $3}' ) 108 if [ ! ${ROOTSYS} = "home" ] ; then 109 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=true} 110 else 111 typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 112 fi 113 114 #==================================================== 115 #- libIGCM_POST 116 if ( ${MirrorlibIGCM} ) ; then 117 PATHlibIGCM=$( echo ${libIGCM} | gawk -F"${LOGIN}/" '{print $2}' | sed -e "s&/libIGCM&&" ) 118 typeset -r libIGCM_POST=${HOME}/MIRROR/${PATHlibIGCM}/libIGCM 119 else 120 typeset -r libIGCM_POST=${libIGCM} 121 fi 122 123 # ============ CESIUM END ============ # 124 125 #==================================================== 126 #- MirrorlibIGCM uncomment for frontend 127 #typeset -r MirrorlibIGCM=${MirrorlibIGCM:=false} 128 129 #==================================================== 130 #- libIGCM_POST uncomment for frontend 131 #typeset -r libIGCM_POST=${libIGCM} 130 #- ARCHIVE (dedicated to large files) 131 typeset -r ARCHIVE=${CCCSTOREDIR} 132 133 #- ARCHIVE (dedicated to small/medium files) 134 typeset -r STORAGE=${CCCWORKDIR} 132 135 133 136 #==================================================== … … 139 142 #- R_OUT 140 143 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 144 145 #==================================================== 146 #- R_FIG (hosting figures : monitoring and atlas, and/or small files) 147 typeset -r R_FIG=${STORAGE}/IGCM_OUT 141 148 142 149 #==================================================== … … 229 236 # ============ FRONTEND START ============ # 230 237 231 #/bin/ksh <tmp_IGCM_sys_RshPost_$$232 #if [ $? -gt 0 ] ; then233 #echo "IGCM_sys_RshPost : erreur."234 #IGCM_debug_Exit "IGCM_sys_RshPost"235 #fi236 #\rm tmp_IGCM_sys_RshPost_$$238 /bin/ksh <tmp_IGCM_sys_RshPost_$$ 239 if [ $? -gt 0 ] ; then 240 echo "IGCM_sys_RshPost : erreur." 241 IGCM_debug_Exit "IGCM_sys_RshPost" 242 fi 243 \rm tmp_IGCM_sys_RshPost_$$ 237 244 238 245 # ============ FRONTEND END ============ # 239 246 240 247 # ============ CESIUM START ============ # 241 typeset NB_ESSAI DELAI status i242 # number of tentative243 NB_ESSAI=10244 # time delay between tentative245 DELAI=10246 (( i = 0 ))247 while [ $i -lt $NB_ESSAI ] ; do248 ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$249 status=$?250 if [ ${status} -gt 0 ]; then251 IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}"252 IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again."253 sleep $DELAI254 else255 break256 fi257 (( i = i + 1 ))258 done259 # delete temporary file260 /bin/rm tmp_IGCM_sys_RshPost_$$248 # typeset NB_ESSAI DELAI status i 249 # # number of tentative 250 # NB_ESSAI=10 251 # # time delay between tentative 252 # DELAI=10 253 # (( i = 0 )) 254 # while [ $i -lt $NB_ESSAI ] ; do 255 # ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$ 256 # status=$? 257 # if [ ${status} -gt 0 ]; then 258 # IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}" 259 # IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again." 260 # sleep $DELAI 261 # else 262 # break 263 # fi 264 # (( i = i + 1 )) 265 # done 266 # # delete temporary file 267 # /bin/rm tmp_IGCM_sys_RshPost_$$ 261 268 # ============ CESIUM END ============ # 262 269 … … 623 630 # ============ FRONTEND START ============ # 624 631 625 # /usr/bin/nqsII/qsub-o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv}632 /usr/bin/nqsII/qsub -q scalaire -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 626 633 627 634 # ============ FRONTEND END ============ # 628 635 629 636 # ============ CESIUM START ============ # 630 typeset NB_ESSAI DELAI status i631 # number of tentative632 NB_ESSAI=10633 # time delay between tentative634 DELAI=10635 (( i = 0 ))636 while [ $i -lt $NB_ESSAI ] ; do637 /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job638 status=$?639 if [ ${status} -gt 0 ]; then640 sleep $DELAI641 else642 break643 fi644 (( i = i + 1 ))645 done637 # typeset NB_ESSAI DELAI status i 638 # # number of tentative 639 # NB_ESSAI=10 640 # # time delay between tentative 641 # DELAI=10 642 # (( i = 0 )) 643 # while [ $i -lt $NB_ESSAI ] ; do 644 # /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job 645 # status=$? 646 # if [ ${status} -gt 0 ]; then 647 # sleep $DELAI 648 # else 649 # break 650 # fi 651 # (( i = i + 1 )) 652 # done 646 653 # ============ CESIUM END ============ # 647 654 … … 950 957 # USUAL WAY 951 958 # add dmfind/dmget (to demigrate all offline files) : 952 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget959 #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 953 960 \cp -r $1 $2 > out_rsync 2>&1 954 961 RET=$? … … 1227 1234 fi 1228 1235 1229 dmget ${dm_liste[*]} > out_rsync 2>&1 1236 #dmget ${dm_liste[*]} > out_rsync 2>&1 1237 ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1230 1238 RET=$? 1231 1239 if [ ${RET} -gt 0 ] ; then … … 1241 1249 # sleep 30 1242 1250 # echo "We try another time" 1243 # dmget ${dm_liste[*]} > out_rsync 2>&1 1251 ## dmget ${dm_liste[*]} > out_rsync 2>&1 1252 # ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1244 1253 # RET=$? 1245 1254 # if [ ${RET} -gt 0 ] ; then -
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_titane.ksh
r577 r592 92 92 . /home/cont003/p86ipsl/.atlas_env_titane_ksh 93 93 94 module switch nco/ 4.0.8nco/3.9.4_netcdf494 module switch nco/3.9.4 nco/3.9.4_netcdf4 95 95 96 96 #==================================================== … … 102 102 # Host specific DIRECTORIES 103 103 #==================================================== 104 105 #====================================================106 #- R_EXE (==> BIN_DIR = ${MODIPSL}/bin )107 typeset -r R_EXE="${MODIPSL}/bin"108 109 #====================================================110 #- SUBMIT_DIR : submission dir111 typeset SUBMIT_DIR=${SUBMIT_DIR:=${LS_SUBCWD}}112 113 #====================================================114 #- ARCHIVE115 typeset -r ARCHIVE=${DMFDIR}116 104 117 105 # ============ CESIUM START ============ # … … 146 134 147 135 #==================================================== 136 #- R_EXE (==> BIN_DIR = ${MODIPSL}/bin ) 137 typeset -r R_EXE="${MODIPSL}/bin" 138 139 #==================================================== 140 #- SUBMIT_DIR : submission dir 141 typeset SUBMIT_DIR=${SUBMIT_DIR:=${LS_SUBCWD}} 142 143 #==================================================== 144 #- ARCHIVE (dedicated to large files) 145 typeset -r ARCHIVE=${CCCSTOREDIR} 146 147 #- ARCHIVE (dedicated to small/medium files) 148 typeset -r STORAGE=${CCCWORKDIR} 149 150 #==================================================== 148 151 #- IN 149 152 typeset -r R_IN=${R_IN:=/ccc/work/cont003/dsm/p86ipsl/IGCM} … … 153 156 #- R_OUT 154 157 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 158 159 #==================================================== 160 #- R_FIG (hosting figures : monitoring and atlas, and/or small files) 161 typeset -r R_FIG=${STORAGE}/IGCM_OUT 155 162 156 163 #==================================================== … … 1038 1045 # USUAL WAY 1039 1046 # add dmfind/dmget (to demigrate all offline files) : 1040 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget1047 #dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 1041 1048 \cp -r $1 $2 > out_rsync 2>&1 1042 1049 RET=$? … … 1351 1358 fi 1352 1359 1353 dmget ${dm_liste[*]} > out_rsync 2>&1 1360 #dmget ${dm_liste[*]} > out_rsync 2>&1 1361 ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1354 1362 RET=$? 1355 1363 if [ ${RET} -gt 0 ] ; then … … 1365 1373 # sleep 30 1366 1374 # echo "We try another time" 1367 # dmget ${dm_liste[*]} > out_rsync 2>&1 1375 ## dmget ${dm_liste[*]} > out_rsync 2>&1 1376 # ccc_hsm get ${dm_liste[*]} > out_rsync 2>&1 1368 1377 # RET=$? 1369 1378 # if [ ${RET} -gt 0 ] ; then … … 1514 1523 RET=0 1515 1524 if [ $DRYRUN = 0 ]; then 1516 if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1517 echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1518 echo "Nothing has been done." 1519 return 1520 fi 1521 dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1525 1526 # if [ ! -d /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} ] ; then 1527 # echo "WARNING : IGCM_sys_Dods_Rm /dmnfs/cont003/dods/public/${LOGIN}/${R_DODS}/${1} DOES NOT EXIST ." 1528 # echo "Nothing has been done." 1529 # return 1530 # fi 1531 1532 /ccc/cont003/home/dsm/p86maf/bin/dods_rm public/${LOGIN}/${R_DODS}/${1} # > out_dods_rm 2>&1 1522 1533 RET=$? 1523 1534 … … 1548 1559 RET=0 1549 1560 if [ $DRYRUN = 0 ]; then 1550 if [ ! -d ${R_SAVE}/${1} ] ; then 1551 echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1552 echo "Nothing has been done." 1553 return 1554 fi 1555 # 1556 dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1561 1562 # if [ ! -d ${R_SAVE}/${1} ] ; then 1563 # echo "WARNING : IGCM_sys_Dods_Cp ${R_SAVE}/${1} DOES NOT EXIST ." 1564 # echo "Nothing has been done." 1565 # return 1566 # fi 1567 1568 /ccc/cont003/home/dsm/p86maf/bin/dods_cp ${1} public/${LOGIN}/${R_DODS} # > out_dods_cp 2>&1 1557 1569 RET=$? 1558 1570 … … 1581 1593 echo "IGCM_sys_Put_Dods :" $@ 1582 1594 fi 1595 set -vx 1596 typeset RET 1583 1597 if [ $DRYRUN = 0 ]; then 1584 if [ ! -d ${R_SAVE}/${1} ] ; then 1585 echo "WARNING : IGCM_sys_Put_Dods ${R_SAVE}/${1} DOES NOT EXIST ." 1598 if ( [ ! -d ${R_SAVE}/${1} ] && [ ! -d ${R_FIGR}/${1} ] ) ; then 1599 echo "WARNING IGCM_sys_Put_Dods : None of the following directories exist. Exactly one should." 1600 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} DOES NOT EXIST." 1601 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} DOES NOT EXIST." 1586 1602 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1587 1603 return 1588 1604 fi 1589 1605 1590 typeset RET 1591 # 1592 cd ${R_SAVE} 1606 if ( [ -d ${R_SAVE}/${1} ] && [ -d ${R_FIGR}/${1} ] ) ; then 1607 echo "WARNING IGCM_sys_Put_Dods : Both of the following directories exist. Exactly one should." 1608 echo "WARNING IGCM_sys_Put_Dods : ${R_SAVE}/${1} EXISTS." 1609 echo "WARNING IGCM_sys_Put_Dods : ${R_FIGR}/${1} EXISTS." 1610 IGCM_debug_PopStack "IGCM_sys_Put_Dods" 1611 return 1612 fi 1613 # 1614 if [ -d ${R_SAVE}/${1} ] ; then 1615 cd ${R_SAVE} 1616 elif [ -d ${R_FIGR}/${1} ] ; then 1617 cd ${R_FIGR} 1618 fi 1619 1593 1620 IGCM_sys_Dods_Rm ${1} 1594 1621 IGCM_sys_Dods_Cp ${1} … … 2086 2113 echo "IGCM_sys_ncrcat :" $@ 2087 2114 fi 2088 ncrcat $@2115 ncrcat --omp_num_threads 2 $@ 2089 2116 if [ $? -gt 0 ] ; then 2090 2117 echo "IGCM_sys_ncrcat : erreur ${@}."
Note: See TracChangeset
for help on using the changeset viewer.