Changeset 149
- Timestamp:
- 08/12/09 17:31:05 (15 years ago)
- Location:
- trunk/libIGCM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/AA_create_se
r135 r149 22 22 #-Q- sx8brodie # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 23 23 #-Q- sx8brodie # @ notification = error 24 #-Q- sx8brodie # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $ DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER24 #-Q- sx8brodie # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $MASTER ; $DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER 25 25 #-Q- sx8brodie # @ queue 26 26 #-Q- aix6 #!/bin/ksh … … 38 38 #-Q- aix6 # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 39 39 #-Q- aix6 # @ notification = error 40 #-Q- aix6 # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $ DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER40 #-Q- aix6 # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $MASTER ; $DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER 41 41 #-Q- aix6 # @ queue 42 42 #-Q- sx8mercure #!/bin/ksh … … 171 171 freq=$( echo ${config_Post_SeasonalFrequency} | sed -e "s/[yY]//" ) 172 172 # 173 an_fin=$( expr $( IGCM_date_ConvertGregorianDateToJulian $PeriodDateEnd ) / 1000)173 an_fin=$(( $( IGCM_date_ConvertGregorianDateToJulian ${PeriodDateEnd} ) / 1000 )) 174 174 an_deb=$( IGCM_date_YearDigit $(( an_fin - freq + 1 )) ) 175 175 an_fin=$( IGCM_date_YearDigit ${an_fin} ) … … 448 448 YEARS=${an_deb}_${an_fin} 449 449 450 # clean environment variables and export usefull one :451 if [ X$( hostname -s ) = Xrhodes ] ; then452 LISTE_ENV=$( env | grep -iv MYLANG | grep -iv HOST | grep -iv LOGIN | grep -iv config_ | grep -iv R_ | grep -iv libIGCM | grep -iv PERIOD \453 | grep -iv DMFDIR | grep -iv AN_| grep -iv YEARS | grep -iv ex | grep -iv RESOL_ | grep -iv PATH | grep -iv WORKDIR | grep -iv USER \454 | grep -iv LOGNAME | grep -iv PROFILE | grep -iv ENV | grep -iv TMPDIR | grep -iv POST_DIR | grep -iv DB |awk -F= '{print $1}' )455 456 for variables in ${LISTE_ENV} ; do457 unset ${variables}458 done459 fi460 461 450 export POST_DIR; export SUBMIT_DIR; export libIGCM; export R_INIT; export R_BC; export StandAlone 462 451 export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_SRF -
trunk/libIGCM/AA_create_ts
r135 r149 7 7 #-Q- platine #BSUB -n 1 # reservation des processeurs pour le job 8 8 #-Q- platine #BSUB -W 1:00 # Limite temps 9 #-Q- platine #BSUB -q post # Passage en queue post9 #-Q- platine #BSUB -q post # Passage en queue post 10 10 #-Q- sx8brodie #!/bin/ksh 11 11 #-Q- sx8brodie ####################### … … 22 22 #-Q- sx8brodie # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 23 23 #-Q- sx8brodie # @ notification = error 24 #-Q- sx8brodie # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $ DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER24 #-Q- sx8brodie # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $MASTER ; $RebuildFrequency ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $CompletedFlag ; $TsTask ; $CompToRead ; $FlagToRead ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER 25 25 #-Q- aix6 #!/bin/ksh 26 26 #-Q- aix6 ####################### … … 37 37 #-Q- aix6 # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 38 38 #-Q- aix6 # @ notification = error 39 #-Q- aix6 # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $ DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER39 #-Q- aix6 # @ environment = $DEBUG_debug ; $MODIPSL ; $libIGCM ; $libIGCM_SX ; $SUBMIT_DIR ; $REBUILD_DIR ; $RebuildFromArchive ; $POST_DIR ; $MASTER ; $RebuildFrequency ; $DateBegin ; $PeriodDateBegin ; $PeriodDateEnd ; $NbRebuildDir ; $StandAlone ; $CompletedFlag ; $TsTask ; $CompToRead ; $FlagToRead ; $RESOL_ATM ; $RESOL_OCE ; $RESOL_ICE ; $RESOL_SRF ; $MASTER 40 40 #-Q- aix6 # @ queue 41 41 #-Q- sx8brodie # @ queue … … 97 97 #D- TEMPORARY Flag to determine atmospheric resolution 98 98 #D- Default : value from atmospheric driver if any 99 RESOL_ATM= ${RESOL_ATM:=ALL}99 RESOL_ATM=ALL 100 100 101 101 #D- TEMPORARY Flag to determine ocean resolution … … 109 109 #D- Flag to determine surface resolution 110 110 #D- Default : value from surface driver if any 111 RESOL_SRF= ${RESOL_SRF:=ALL}111 RESOL_SRF=ALL 112 112 113 113 ######################################################################## … … 133 133 134 134 ######################################################################## 135 136 #set -vx137 135 138 136 if [ ${DEBUG_debug} = true ] ; then … … 170 168 171 169 #================================== 172 173 170 R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 174 171 # 175 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents 176 # 177 # Determine period for time series. Default : value from AA_job if any 172 # Determine component to take care of depending on kind of task create_ts will perform 173 # 174 ( [ X${TsTask} = XChunck2D ] || [ X${TsTask} = XChunck3D ] ) && set -A config_ListOfComponents ${CompToRead} || IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents 175 # 176 # Determine period for time series. Default : value from AA_job or from launch_TS if any 178 177 # 179 178 DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )} 180 179 # 181 180 PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )} 181 # 182 # Determine Dimension of the produced time series : 2D or 3D 183 if ( [ X${TsTask} = XChunck2D ] || [ X${TsTask} = X2D ] ) ; then 184 Dimension=2D 185 elif ( [ X${TsTask} = XChunck3D ] || [ X${TsTask} = X3D ] ) ; then 186 Dimension=3D 187 else 188 Dimension="" 189 fi 190 182 191 183 192 ######################################################################## … … 203 212 # 204 213 card=${CARD_DIR}/COMP/${compname}.card 214 205 215 IGCM_card_DefineArrayFromOption ${card} OutputFiles List 206 216 # … … 214 224 # INITIALISATION 215 225 # 216 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 217 typeset i=0 218 # 219 until [ $i -eq $NbFiles ]; do 226 typeset i 227 if ( [ X${TsTask} = XChunck2D ] || [ X${TsTask} = XChunck3D ] ) ; then 228 ((NbFiles=${FlagToRead})) 229 ((i=${NbFiles}-2)) 230 else 231 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 232 i=0 233 fi 234 # 235 until [ $i -ge $NbFiles ]; do 220 236 # 221 eval file_in_=\${${ListFilesName}[$i]} > /dev/null 2>&1 222 eval file_in=${file_in_} 223 let $(( i_ = i+2 )) 237 (( i_ = i+2 )) 224 238 eval flag_post_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 225 239 eval flag_post=${flag_post_} … … 227 241 if [ X${flag_post} != XNONE ] ; then 228 242 # 229 # Initialize ${flag_post}_${compname}_${post_freq} 230 # 231 eval export ${flag_post}_${compname}_TimeSeriesFrequency=true 243 # For each comp and each file who needs post-processing 244 # determine which variables need time series. 245 # 246 FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' ) 247 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} TimeSeriesVars${Dimension} 248 # 249 if [ $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 250 # 251 IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}" 252 (( i=i+3 )) 253 continue 254 # 255 fi 256 # 257 # If we are not a Chunck type task, skip files/variables handled by chunck task 258 # 259 if [ ! X${TsTask} = XChunck${Dimension} ] ; then 260 IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension} 261 if [ ! $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} ) = NONE ] ; then 262 IGCM_debug_Print 3 "Nothing to do for ${FILE} TimeSeriesVars${Dimension} according to ${card}" 263 IGCM_debug_Print 3 "Let another chunck task do the job $( eval echo \${${compname}_Post_${FILE}_ChunckJob${Dimension}} )" 264 (( i=i+3 )) 265 continue 266 fi 267 fi 268 # 269 # We need coordinates axis to properly fill produced time series 270 # 271 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} GatherWithInternal 272 # 273 if [ $( eval echo \${${compname}_Post_${FILE}_GatherWithInternal} ) = ${NULL_STR} ] ; then 274 # 275 IGCM_debug_Print 1 "ERROR !! We miss coordinate axis for ${FILE} according to ${card}" 276 IGCM_debug_Print 1 "So no time series will be produced for ${FILE} !!" 277 (( i=i+3 )) 278 continue 279 # 280 fi 281 # 282 # We need LIST of variables not allready produced (useful for standalone mode) 283 # 284 FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 285 case ${FlagDir} in 286 *Y) TS_Dir=TS_YE ;; 287 *M) TS_Dir=TS_MO ;; 288 *D) TS_Dir=TS_DA ;; 289 HF) TS_Dir=TS_HF ;; 290 INS) TS_Dir=TS_INS ;; 291 esac 292 # 293 count=0 294 for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do 295 # 296 DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 297 TestedFile=${config_UserChoices_JobName}_${DateBegin}_${PeriodDateEnd}_${FlagDir}_${var}.nc 298 # 299 IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile} 300 if [ ! $? = 0 ] ; then 301 eval set +A LISTE_VARS_${FILE} \${LISTE_VARS_${FILE}[*]} ${var} 302 ActiveComp=true 303 (( count = count + 1 )) 304 fi 305 done 306 # 307 if [ ${count} -gt 0 ] ; then 308 # 309 eval set +A LISTE_FILE_${comp} \${LISTE_FILE_${comp}[*]} ${FILE} 310 eval set +A LISTE_AXIS_${FILE} \${${compname}_Post_${FILE}_GatherWithInternal[*]} 311 # 312 if [ ! ${RebuildFrequency} = true ] ; then 313 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} Patches 314 eval set +A LISTE_PATCHES_${FILE} \${${compname}_Post_${FILE}_Patches[*]} 315 if [ X$( eval echo \${LISTE_PATCHES_${FILE}[0]} ) != X${NULL_STR} ]; then 316 for Patch in $( eval echo \${LISTE_PATCHES_${FILE}[*]} ); do 317 if [ Xload${Patch} != X ] ; then 318 . ${libIGCM}/libIGCM_post/IGCM_${Patch}.ksh 319 eval load${Patch}=loaded 320 fi 321 done 322 fi 323 fi 324 fi 232 325 fi 233 let $(( i=i+3 ))326 (( i=i+3 )) 234 327 done 235 328 fi 236 237 for element in $( env | grep Post_ | grep ${compname}_TimeSeriesFrequency | grep -i "=true" ) ; do 238 # 239 FILE=$( echo ${element} | awk -F "_${compname}_TimeSeriesFrequency" '{print $1}' | awk "-FPost_" '{print $2}' ) 240 # 241 # For each comp and each file who needs post-processing 242 # determine which variables need time series. 243 # 244 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} TimeSeriesVars 245 # 246 if [ $( eval echo \$\{${compname}_Post_${FILE}_TimeSeriesVars} ) = ${NULL_STR} ] ; then 247 # 248 IGCM_debug_Print 3 "Nothing to do for ${FILE} according to ${card}" 249 continue 250 # 251 fi 252 # 253 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} Patches 254 # 255 # So we need coordinates axis to properly fill produced time series 256 # 257 IGCM_card_DefineArrayFromOption ${card} Post_${FILE} GatherWithInternal 258 # 259 if [ $( eval echo \$\{${compname}_Post_${FILE}_GatherWithInternal} ) = ${NULL_STR} ] ; then 260 # 261 IGCM_debug_Print 1 "ERROR !! We miss coordinate axis for ${FILE} according to ${card}" 262 IGCM_debug_Print 1 "So no time series will be produced for ${FILE} !!" 263 continue 264 # 265 fi 266 # 267 # CREATE LIST 268 # 269 FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' ) 270 case ${FlagDir} in 271 *Y) TS_Dir=TS_YE ;; 272 *M) TS_Dir=TS_MO ;; 273 *D) TS_Dir=TS_DA ;; 274 HF) TS_Dir=TS_HF ;; 275 INS) TS_Dir=TS_INS ;; 276 esac 277 278 count=0 279 for var in $( eval echo \$\{${compname}_Post_${FILE}_TimeSeriesVars[*]} ) ; do 280 # 281 DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir} 282 TestedFile=${config_UserChoices_JobName}_${DateBegin}_${PeriodDateEnd}_${FlagDir}_${var}.nc 283 # 284 IGCM_sys_TestFileArchive ${DIRECTORY}/${TestedFile} 285 if [ ! $? = 0 ] ; then 286 eval set +A LISTE_VARS_${FILE} \$\{LISTE_VARS_${FILE}[*]} ${var} 287 ActiveComp=true 288 (( count = count + 1 )) 289 fi 290 done 291 292 if [ ${count} -gt 0 ] ; then 293 # 294 eval set +A LISTE_FILE_${comp} \$\{LISTE_FILE_${comp}[*]} ${FILE} 295 eval set +A LISTE_AXIS_${FILE} \$\{${compname}_Post_${FILE}_GatherWithInternal[*]} 296 eval set +A LISTE_PATCHES_${FILE} \$\{${compname}_Post_${FILE}_Patches[*]} 297 if [ X$( eval echo \${LISTE_PATCHES_${FILE}[0]} ) != X${NULL_STR} ]; then 298 for Patch in $( eval echo \${LISTE_PATCHES_${FILE}[*]} ); do 299 if [ Xload${Patch} != X ] ; then 300 . ${libIGCM}/libIGCM_post/IGCM_${Patch}.ksh 301 eval load${Patch}=loaded 302 fi 303 done 304 fi 305 # 306 fi 307 done 308 329 # 309 330 if [ ${ActiveComp} = true ] ; then 310 331 set +A ActiveListOfComponents ${ActiveListOfComponents[*]} ${comp} 311 332 fi 312 313 333 done 314 334 … … 440 460 echo \${run_PostProcessing_TimeSeriesRunning}" ) 441 461 442 if [ X${Running_Flag} = Xy ] ; then443 # Time Series Job allready running444 IGCM_debug_Print 1 "Time Series Job allready running exit"445 exit446 fi462 #if [ X${Running_Flag} = Xy ] ; then 463 # # Time Series Job allready running 464 # IGCM_debug_Print 1 "Time Series Job allready running exit" 465 # exit 466 #fi 447 467 # Now run.card know we are running 468 469 470 471 448 472 IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "y" 473 474 475 476 477 449 478 # Get information from last execution 450 CompletedFlag=$( IGCM_sys_RshMaster \451 "IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted ;\452 echo \${run_PostProcessing_TimeSeriesCompleted}" )479 #CompletedFlag=$( IGCM_sys_RshMaster \ 480 # "IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted ;\ 481 # echo \${run_PostProcessing_TimeSeriesCompleted}" ) 453 482 fi 454 483 455 484 # Is it the first submission or not ? 456 if [ X${CompletedFlag} = X ] ; then 485 486 if ( [ X${CompletedFlag} = X ] || [ X${CompletedFlag} = X$( IGCM_date_AddDaysToGregorianDate ${DateBegin} -1 ) ] ) ; then 457 487 # First Time Series Submission 458 488 FIRST_PASS=TRUE … … 600 630 else 601 631 # - LEVEL 3 : WE ARE IN THE LAST LOOP 602 NBRE_FILE_LOOP=$( expr ${NBRE_FILE_TOT} % $(( UNIX_MAX_LIMIT * $(( CURRENT_LOOP - 1 )) )))632 NBRE_FILE_LOOP=$(( ${NBRE_FILE_TOT} % ( ${UNIX_MAX_LIMIT} * ( ${CURRENT_LOOP} - 1 ) ) )) 603 633 [ ${NBRE_FILE_LOOP} -eq 0 ] && NBRE_FILE_LOOP=${UNIX_MAX_LIMIT} 604 634 … … 674 704 675 705 # Apply IGCM_Patch if needed 676 if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) != X${NULL_STR} ]; then 677 for file_t in $( eval echo ${liste_file_tmp[*]} ); do 678 for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do 679 IGCM_${Patch} ${file_t} 706 if [ ! ${RebuildFrequency} = true ] ; then 707 if [ X$( eval echo \${LISTE_PATCHES_${file}[0]} ) != X${NULL_STR} ]; then 708 for file_t in $( eval echo ${liste_file_tmp[*]} ); do 709 for Patch in $( eval echo \${LISTE_PATCHES_${file}[*]} ); do 710 IGCM_${Patch} ${file_t} 711 done 680 712 done 681 done713 fi 682 714 fi 683 715 … … 749 781 done 750 782 751 # clean environment variables and export usefull one :752 if [ X$( hostname -s ) = Xrhodes ] ; then753 LISTE_ENV=$( env | grep -iv MYLANG | grep -iv HOST | grep -iv LOGIN | grep -iv config_ | grep -iv R_ | grep -iv libIGCM | grep -iv PERIOD \754 | grep -iv DMFDIR | grep -iv AN_| grep -iv YEARS | grep -iv ex | grep -iv RESOL_ | grep -iv PATH | grep -iv WORKDIR | grep -iv USER \755 | grep -iv LOGNAME | grep -iv PROFILE | grep -iv ENV | grep -iv TMPDIR | grep -iv POST_DIR | grep -iv StandAlone | grep -iv DB | awk -F= '{print $1}' )756 757 for variables in ${LISTE_ENV} ; do758 unset ${variables}759 done760 fi761 762 783 export POST_DIR; export SUBMIT_DIR; export libIGCM; export R_INIT; export R_BC; export StandAlone 763 784 export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_SRF … … 774 795 #D- Submit MONITORING 775 796 # -------------------------------------------------------------------- 776 IGCM_sys_QsubPost monitoring797 [ X${TsTask} = X2D ] && IGCM_sys_QsubPost monitoring 777 798 778 799 #D- -
trunk/libIGCM/libIGCM_comp/libIGCM_comp.ksh
r100 r149 80 80 eval R_OUT_${comp}_O_Y=\${R_OUT_${comp}_O}/YE 81 81 82 83 82 # Read UserChoices section of component card 84 IGCM_debug_Print 1 "DefineArrayFrom Option: ${compname}_UserChoices ${card}"83 IGCM_debug_Print 1 "DefineArrayFromSection : ${compname}_UserChoices ${card}" 85 84 IGCM_card_DefineArrayFromSection ${card} UserChoices 86 85 eval first_option=\${${compname}_UserChoices[0]} > /dev/null 2>&1 … … 98 97 fi 99 98 99 # Read and Build Output File stuff 100 IGCM_debug_Print 1 "DefineArrayFromOption : ${compname}_OutputFiles ${card}" 101 IGCM_card_DefineArrayFromOption ${card} OutputFiles List 102 ListFilesName=${compname}_OutputFiles_List 103 eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1 104 # 105 if [ X${FileName0} != X${NULL_STR} ] ; then 106 # 107 #IGCM_debug_Print 1 "Component : ${compname}" 108 # 109 # INITIALISATION 110 # 111 eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1 112 typeset i=2 113 # 114 #set -vx 115 until [ $i -ge $NbFiles ]; do 116 # 117 eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1 118 # 119 if [ X${flag_post} != XNONE ] ; then 120 # A mettre demain (11/08/2009) : dépendance Dimension 2D:3D 121 # Dimension = vide si vieille card. 122 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars 123 IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches 124 if [ "$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = "Option not found ${flag_post}" ] ; then 125 # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob. 126 ListDimension="2D 3D" 127 TimeSeries=false 128 for Dimension in ${ListDimension} ; do 129 IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension} 130 IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension} 131 # 132 # Time series WITHOUT chunk 133 # 134 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 135 if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then 136 IGCM_debug_Print 3 "${Dimension} time series activated for ${flag_post} according to ${card}" 137 eval TimeSeries${Dimension}=true 138 fi 139 fi 140 # 141 # Time series WITH chunk 142 # 143 if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then 144 chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) 145 if [ ! ${chunck_size} = NONE ] ; then 146 IGCM_debug_Print 3 "${Dimension} time series activated with chunck for ${flag_post} according to ${card}" 147 eval TimeSeriesChunck${Dimension}=true 148 eval set +A CHUNCK${Dimension}_COMP \${CHUNCK${Dimension}_COMP[*]} ${comp} 149 eval set +A CHUNCK${Dimension}_FLAG \${CHUNCK${Dimension}_FLAG[*]} ${i} 150 eval set +A CHUNCK${Dimension}_SIZE \${CHUNCK${Dimension}_SIZE[*]} ${chunck_size} 151 fi 152 fi 153 done 154 else 155 ListDimension="" 156 TimeSeries=true 157 TimeSeries2D=false 158 TimeSeries3D=false 159 TimeSeriesChunck2D=false 160 TimeSeriesChunck3D=false 161 fi 162 fi 163 (( i=i+3 )) 164 done 165 #set +vx 166 fi 100 167 # Debug Print 101 168 IGCM_debug_Print 3 "Initialize ${compname} with driver." … … 105 172 done 106 173 echo "-----" 107 108 174 echo 109 175 IGCM_debug_Print 1 "DefineArrayFromOption : ListOfComponents" … … 640 706 eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 641 707 eval file_out=${file_out_} 708 (( i_ = i+2 )) 709 eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1 642 710 # 643 711 generic_file_name=$( basename ${file_in} .nc ) … … 656 724 [ ! -d ${RUN_DIR}/REBUILD_${PeriodDateBegin} ] && IGCM_sys_Mkdir ${RUN_DIR}/REBUILD_${PeriodDateBegin} 657 725 IGCM_sys_Mv ${generic_file_name}_????.nc ${RUN_DIR}/REBUILD_${PeriodDateBegin} 726 # Attention au quota si on tourne dans un RUN_DIR_PATH maison 727 for DelFile in $( ls REBUILD_${PeriodDateBegin}/* | grep "${generic_file_name}[_0-9]*.nc" ) ; do 728 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 729 done 730 658 731 # Prepare headers for the shell dedicated to offline rebuild 659 732 if [ ! -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 660 echo \#!/bin/ksh > ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh661 echo function IGCM_FlushRebuild >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh662 echo { >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh663 echo IGCM_debug_PushStack "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh664 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh665 echo IGCM_debug_Print 1 "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh666 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh733 echo \#!/bin/ksh > ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 734 echo function IGCM_FlushRebuild >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 735 echo { >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 736 echo IGCM_debug_PushStack "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 737 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 738 echo IGCM_debug_Print 1 "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 739 echo echo >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 667 740 fi 668 741 # Prepare the shell dedicated to offline rebuild 669 echo IGCM_sys_rebuild ${file_in} ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 670 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 671 echo IGCM_sys_Rm ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 742 echo IGCM_sys_rebuild ${file_in} ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 743 # 744 # Load Patch we need to apply and apply 745 if [ X$( eval echo \${${compname}_${flag_post}_Patches[0]} ) != X${NULL_STR} ]; then 746 for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ); do 747 echo . ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 748 echo IGCM_${Patch} ${file_in} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 749 done 750 fi 751 # 752 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 753 echo IGCM_sys_Rm ${generic_file_name}_*.nc >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 672 754 SaveOnArchive=false 673 755 fi … … 675 757 # 676 758 if [ ${SaveOnArchive} = true ] ; then 677 IGCM_sys_Put_Out ${file_in} ${file_out} 678 [ $? -eq 0 ] && eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 679 if [ ${nb_rebuild_file} -gt 1 ] ; then 680 for DelFile in $( ls | grep "${generic_file_name}[_0-9]*.nc" ) ; do 681 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 682 done 759 # 760 # If we need to apply a patch we use TMP DIRECTORY before ARCHIVING if asynchronous rebuild is on 761 # 762 if ( [ X$( eval echo \${${compname}_${flag_post}_Patches[0]} ) != X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = X${NULL_STR} ] && [ ! X${config_Post_RebuildFrequency} = XNONE ] ) ; then 763 if [ -f ${file_in} ] ; then 764 IGCM_sys_Mv ${file_in} ${RUN_DIR}/REBUILD_${PeriodDateBegin} 765 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=REBUILD_${PeriodDateBegin}/${file_in} > /dev/null 2>&1 766 # 767 for Patch in $( eval echo \${${compname}_${flag_post}_Patches[*]} ); do 768 echo . ${libIGCM_POST}/libIGCM_post/IGCM_${Patch}.ksh >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 769 echo IGCM_${Patch} ${file_in} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 770 done 771 # 772 echo IGCM_sys_Put_Out ${file_in} ${file_out} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 773 # 774 fi 775 else 776 IGCM_sys_Put_Out ${file_in} ${file_out} 777 [ $? -eq 0 ] && eval FileToBeDeleted[${#FileToBeDeleted[@]}]="${file_in}" > /dev/null 2>&1 778 if [ ${nb_rebuild_file} -gt 1 ] ; then 779 for DelFile in $( ls | grep "${generic_file_name}[_0-9]*.nc" ) ; do 780 eval FileToBeDeleted[${#FileToBeDeleted[@]}]=${DelFile} > /dev/null 2>&1 781 done 782 fi 683 783 fi 684 784 fi -
trunk/libIGCM/libIGCM_post/libIGCM_post.ksh
r126 r149 384 384 if [ ${TimeSeriesFrequency} = true ] ; then 385 385 386 IGCM_debug_Print 2 "TIME SERIES POST-TREATMENT :" 386 set -vx 387 IGCM_debug_Print 2 "TIME SERIES POST-PROCESSING ACTIVATED :" 387 388 echo 388 # 389 390 391 392 # Get information from last execution 393 IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesCompleted 394 CompletedFlag=${run_PostProcessing_TimeSeriesCompleted} 395 # 396 397 398 389 399 typeset listVarEnv 390 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF" 400 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,CompletedFlag,TsTask,CompToRead,FlagToRead,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF" 401 # 402 for Dimension in ${ListDimension} ; do 403 # 404 if [ X$( eval echo \${TimeSeries${Dimension}} ) = Xtrue ] ; then 405 # 406 IGCM_debug_Print 2 "TIME SERIES POST-PROCESSING ${Dimension} ACTIVATED :" 407 echo 408 # 409 TsTask=${Dimension} 410 # 411 if [ ${RebuildFrequency} = true ] ; then 412 # 413 echo export DEBUG_debug=${DEBUG_debug} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 414 echo export MODIPSL=${MODIPSL} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 415 echo export libIGCM_SX=${libIGCM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 416 echo export libIGCM=${libIGCM_POST} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 417 echo export SUBMIT_DIR=${SUBMIT_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 418 echo export POST_DIR=${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 419 echo export MASTER=${MASTER} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 420 echo export RebuildFrequency=${RebuildFrequency} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 421 echo export DateBegin=${DateBegin} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 422 echo export PeriodDateEnd=${PeriodDateEnd} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 423 echo export StandAlone=false >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 424 echo export CompletedFlag=${CompletedFlag} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 425 echo export TsTask=${TsTask} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 426 echo export RESOL_ATM=${RESOL_ATM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 427 echo export RESOL_OCE=${RESOL_OCE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 428 echo export RESOL_ICE=${RESOL_ICE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 429 echo export RESOL_SRF=${RESOL_SRF} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 430 echo export listVarEnv=${listVarEnv} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 431 echo IGCM_sys_MkdirWork ${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 432 echo IGCM_debug_Verif_Exit >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 433 echo IGCM_sys_QsubPost create_ts >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 434 # 435 else 436 # 437 IGCM_sys_RshPost <<-EOF 438 export DEBUG_debug=${DEBUG_debug} 439 export MODIPSL=${MODIPSL} 440 export libIGCM_SX=${libIGCM} 441 export libIGCM=${libIGCM_POST} 442 export SUBMIT_DIR=${SUBMIT_DIR} 443 export POST_DIR=${POST_DIR} 444 export MASTER=${MASTER} 445 export RebuildFrequency=${RebuildFrequency} 446 export DateBegin=${DateBegin} 447 export PeriodDateEnd=${PeriodDateEnd} 448 export StandAlone=false 449 export CompletedFlag=${CompletedFlag} 450 export TsTask=${TsTask} 451 export RESOL_ATM=${RESOL_ATM} 452 export RESOL_OCE=${RESOL_OCE} 453 export RESOL_ICE=${RESOL_ICE} 454 export RESOL_SRF=${RESOL_SRF} 455 export listVarEnv=${listVarEnv} 456 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 457 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 458 IGCM_sys_MkdirWork ${POST_DIR} 459 IGCM_debug_Verif_Exit 460 IGCM_sys_QsubPost create_ts 461 EOF 462 fi 463 fi 464 # 465 if [ X$( eval echo \${TimeSeriesChunck${Dimension}} ) = Xtrue ] ; then 466 # 467 IGCM_debug_Print 2 "TIME SERIES POST-PROCESSING ${Dimension} WITH CHUNCK ACTIVATED :" 468 echo 469 # Need to Remember This One 470 SavedDateBegin=${DateBegin} 471 # Kind of task create_ts will perform 472 TsTask=Chunck${Dimension} 473 # Number of chunck jobs to configure and submit 474 eval NbJob=\${#CHUNCK${Dimension}_COMP[@]} 475 i=0 476 until [ $i -ge $NbJob ]; do 477 CompToRead=$( eval echo \${CHUNCK${Dimension}_COMP[\${i}]} ) 478 FlagToRead=$( eval echo \${CHUNCK${Dimension}_FLAG[\${i}]} ) 479 ChunckSize=$( eval echo \${CHUNCK${Dimension}_SIZE[\${i}]} ) 480 # Chunck Length (mandatory in Year) 481 YearsChunckLength=$( echo ${ChunckSize} | sed -e "s/[yY]//" ) 482 # 483 IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin 484 # 485 IGCM_date_GetYearMonth ${PeriodDateEnd} YearEnd MonthEnd 486 # How many chunck in total since simulation began 487 NbYearsChunckLoop=$(( ( ${YearEnd} - ${YearBegin} + 1 ) / ${YearsChunckLength} )) 488 # Tweak special case 489 [ $(( ( ${YearEnd} - ${YearBegin} + 1 ) % ${YearsChunckLength} )) = 0 ] && NbYearsChunckLoop=$(( ${NbYearsChunckLoop} - 1 )) 490 # Starting Year of the current chunck 491 ChunckTsYearBegin=$(( ${NbYearsChunckLoop} * ${YearsChunckLength} + ${YearBegin} )) 492 # Starting date of the current chunck 493 ChunckTsDateBegin=${ChunckTsYearBegin}${MonthBegin}01 494 # 495 if [ ${RebuildFrequency} = true ] ; then 496 # 497 echo export DEBUG_debug=${DEBUG_debug} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 498 echo export MODIPSL=${MODIPSL} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 499 echo export libIGCM_SX=${libIGCM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 500 echo export libIGCM=${libIGCM_POST} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 501 echo export SUBMIT_DIR=${SUBMIT_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 502 echo export POST_DIR=${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 503 echo export MASTER=${MASTER} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 504 echo export RebuildFrequency=${RebuildFrequency} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 505 echo export DateBegin=${ChunckTsDateBegin} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 506 echo export PeriodDateEnd=${PeriodDateEnd} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 507 echo export StandAlone=false >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 508 echo export CompletedFlag=${CompletedFlag} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 509 echo export TsTask=${TsTask} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 510 echo export CompToRead=${CompToRead} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 511 echo export FlagToRead=${FlagToRead} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 512 echo export RESOL_ATM=${RESOL_ATM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 513 echo export RESOL_OCE=${RESOL_OCE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 514 echo export RESOL_ICE=${RESOL_ICE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 515 echo export RESOL_SRF=${RESOL_SRF} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 516 echo export listVarEnv=${listVarEnv} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 517 echo IGCM_sys_MkdirWork ${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 518 echo IGCM_debug_Verif_Exit >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 519 echo IGCM_sys_QsubPost create_ts >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 520 # 521 else 522 # 523 IGCM_sys_RshPost <<-EOF 524 export DEBUG_debug=${DEBUG_debug} 525 export MODIPSL=${MODIPSL} 526 export libIGCM_SX=${libIGCM} 527 export libIGCM=${libIGCM_POST} 528 export SUBMIT_DIR=${SUBMIT_DIR} 529 export POST_DIR=${POST_DIR} 530 export MASTER=${MASTER} 531 export RebuildFrequency=${RebuildFrequency} 532 export DateBegin=${ChunckTsDateBegin} 533 export PeriodDateEnd=${PeriodDateEnd} 534 export StandAlone=false 535 export CompletedFlag=${CompletedFlag} 536 export TsTask=${TsTask} 537 export CompToRead=${CompToRead} 538 export FlagToRead=${FlagToRead} 539 export RESOL_ATM=${RESOL_ATM} 540 export RESOL_OCE=${RESOL_OCE} 541 export RESOL_ICE=${RESOL_ICE} 542 export RESOL_SRF=${RESOL_SRF} 543 export listVarEnv=${listVarEnv} 544 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 545 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 546 IGCM_sys_MkdirWork ${POST_DIR} 547 IGCM_debug_Verif_Exit 548 IGCM_sys_QsubPost create_ts 549 EOF 550 # 551 fi 552 # 553 export DateBegin=${SavedDateBegin} 554 # 555 (( i=i+1 )) 556 # 557 done 558 fi 559 done 560 fi 561 562 set +vx 563 564 #============= SEASONAL POST-TREATMENT ============# 565 if [ ${SeasonalFrequency} = true ] ; then 566 # 567 IGCM_debug_Print 2 "SEASONNAL POST-TREATMENT :" 568 echo 569 # 570 typeset listVarEnv 571 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,MASTER,RebuildFrequency,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF" 391 572 392 573 if [ ${RebuildFrequency} = true ] ; then 393 574 # 394 echo export DEBUG_debug=${DEBUG_debug} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 395 echo export MODIPSL=${MODIPSL} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 396 echo export libIGCM_SX=${libIGCM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 397 echo export libIGCM=${libIGCM_POST} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 398 echo export SUBMIT_DIR=${SUBMIT_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 399 echo export POST_DIR=${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 400 echo export MASTER=${MASTER} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 401 echo export DateBegin=${DateBegin} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 402 echo export PeriodDateEnd=${PeriodDateEnd} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 403 echo export StandAlone=false >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 404 echo export RESOL_ATM=${RESOL_ATM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 405 echo export RESOL_OCE=${RESOL_OCE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 406 echo export RESOL_ICE=${RESOL_ICE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 407 echo export RESOL_SRF=${RESOL_SRF} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 408 echo export listVarEnv=${listVarEnv} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 409 echo IGCM_sys_MkdirWork ${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 410 echo IGCM_debug_Verif_Exit >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 411 echo IGCM_sys_QsubPost create_ts >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 575 echo export DEBUG_debug=${DEBUG_debug} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 576 echo export MODIPSL=${MODIPSL} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 577 echo export libIGCM_SX=${libIGCM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 578 echo export libIGCM=${libIGCM_POST} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 579 echo export SUBMIT_DIR=${SUBMIT_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 580 echo export POST_DIR=${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 581 echo export MASTER=${MASTER} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 582 echo export RebuildFrequency=${RebuildFrequency} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 583 echo export DateBegin=${DateBegin} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 584 echo export PeriodDateEnd=${PeriodDateEnd} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 585 echo export StandAlone=false >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 586 echo export RESOL_ATM=${RESOL_ATM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 587 echo export RESOL_OCE=${RESOL_OCE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 588 echo export RESOL_ICE=${RESOL_ICE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 589 echo export RESOL_SRF=${RESOL_SRF} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 590 echo export listVarEnv=${listVarEnv} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 591 echo IGCM_sys_MkdirWork ${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 592 echo IGCM_debug_Verif_Exit >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 593 echo IGCM_sys_QsubPost create_se >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 412 594 # 413 595 else … … 421 603 export POST_DIR=${POST_DIR} 422 604 export MASTER=${MASTER} 423 export DateBegin=${DateBegin} 424 export PeriodDateEnd=${PeriodDateEnd} 425 export StandAlone=false 426 export RESOL_ATM=${RESOL_ATM} 427 export RESOL_OCE=${RESOL_OCE} 428 export RESOL_ICE=${RESOL_ICE} 429 export RESOL_SRF=${RESOL_SRF} 430 export listVarEnv=${listVarEnv} 431 . ${libIGCM_POST}/libIGCM_debug/libIGCM_debug.ksh 432 . ${libIGCM_POST}/libIGCM_sys/libIGCM_sys.ksh 433 IGCM_sys_MkdirWork ${POST_DIR} 434 IGCM_debug_Verif_Exit 435 IGCM_sys_QsubPost create_ts 436 EOF 437 # 438 fi 439 fi 440 441 #============= SEASONAL POST-TREATMENT ============# 442 if [ ${SeasonalFrequency} = true ] ; then 443 # 444 IGCM_debug_Print 2 "SEASONNAL POST-TREATMENT :" 445 echo 446 # 447 typeset listVarEnv 448 listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF" 449 450 if [ ${RebuildFrequency} = true ] ; then 451 # 452 echo export DEBUG_debug=${DEBUG_debug} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 453 echo export MODIPSL=${MODIPSL} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 454 echo export libIGCM_SX=${libIGCM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 455 echo export libIGCM=${libIGCM_POST} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 456 echo export SUBMIT_DIR=${SUBMIT_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 457 echo export POST_DIR=${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 458 echo export MASTER=${MASTER} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 459 echo export DateBegin=${DateBegin} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 460 echo export PeriodDateEnd=${PeriodDateEnd} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 461 echo export StandAlone=false >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 462 echo export RESOL_ATM=${RESOL_ATM} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 463 echo export RESOL_OCE=${RESOL_OCE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 464 echo export RESOL_ICE=${RESOL_ICE} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 465 echo export RESOL_SRF=${RESOL_SRF} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 466 echo export listVarEnv=${listVarEnv} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 467 echo IGCM_sys_MkdirWork ${POST_DIR} >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 468 echo IGCM_debug_Verif_Exit >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 469 echo IGCM_sys_QsubPost create_se >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 470 # 471 else 472 # 473 IGCM_sys_RshPost <<-EOF 474 export DEBUG_debug=${DEBUG_debug} 475 export MODIPSL=${MODIPSL} 476 export libIGCM_SX=${libIGCM} 477 export libIGCM=${libIGCM_POST} 478 export SUBMIT_DIR=${SUBMIT_DIR} 479 export POST_DIR=${POST_DIR} 480 export MASTER=${MASTER} 605 export RebuildFrequency=${RebuildFrequency} 481 606 export DateBegin=${DateBegin} 482 607 export PeriodDateEnd=${PeriodDateEnd} … … 521 646 export REBUILD_DIR=${REBUILD_DIR} 522 647 export POST_DIR=${POST_DIR} 523 export MASTER=${MASTER}524 648 export DateBegin=${DateBegin} 525 649 export PeriodDateBegin=${PeriodDateBegin} … … 552 676 553 677 # typeset listVarEnv 554 # listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,REBUILD_DIR,RebuildFromArchive,POST_DIR, MASTER,DateBegin,PeriodDateBegin,PeriodDateEnd,NbRebuildDir,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF"678 # listVarEnv="DEBUG_debug,MODIPSL,libIGCM,libIGCM_SX,SUBMIT_DIR,REBUILD_DIR,RebuildFromArchive,POST_DIR,DateBegin,PeriodDateBegin,PeriodDateEnd,NbRebuildDir,StandAlone,RESOL_ATM,RESOL_OCE,RESOL_ICE,RESOL_SRF" 555 679 # export DEBUG_debug=${DEBUG_debug} 556 680 # export MODIPSL=${MODIPSL}
Note: See TracChangeset
for help on using the changeset viewer.