Changeset 149


Ignore:
Timestamp:
08/12/09 17:31:05 (15 years ago)
Author:
sdipsl
Message:
  • New post-processing functionnality for cmip5 like post-processing
    • You can ask for fixed lenght time series (10 years chunck or 50 years chunck or ...) and specify it for each files.
    • Separation of concern between 2D and 3D fields.
    • Backward compatible with previous style comp.card
    • example : TimeSeriesVars2D = (cldt, psol, q2m, slp, SWnetOR, SWdownOR, LWdownOR, precip) ChunckJob2D = NONE TimeSeriesVars3D = (temp, theta, ovap, ovapinit, geop, vitu, vitv, vitw, pres) ChunckJob3D = 10Y
  • In case of asynchronous rebuild save patched files on archive filesystem. (so that they have good time axis)
Location:
trunk/libIGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/AA_create_se

    r135 r149  
    2222#-Q- sx8brodie # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 
    2323#-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 ; $MASTER 
     24#-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 
    2525#-Q- sx8brodie # @ queue 
    2626#-Q- aix6 #!/bin/ksh 
     
    3838#-Q- aix6 # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 
    3939#-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 ; $MASTER 
     40#-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 
    4141#-Q- aix6 # @ queue 
    4242#-Q- sx8mercure #!/bin/ksh 
     
    171171freq=$( echo ${config_Post_SeasonalFrequency} |  sed -e "s/[yY]//" ) 
    172172# 
    173 an_fin=$( expr $( IGCM_date_ConvertGregorianDateToJulian $PeriodDateEnd ) / 1000 ) 
     173an_fin=$(( $( IGCM_date_ConvertGregorianDateToJulian ${PeriodDateEnd} ) / 1000 )) 
    174174an_deb=$( IGCM_date_YearDigit $(( an_fin - freq + 1 )) ) 
    175175an_fin=$( IGCM_date_YearDigit ${an_fin} ) 
     
    448448YEARS=${an_deb}_${an_fin} 
    449449 
    450 # clean environment variables and export usefull one : 
    451 if [ X$( hostname -s ) = Xrhodes ] ; then 
    452     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} ; do 
    457         unset ${variables} 
    458     done 
    459 fi 
    460  
    461450export POST_DIR; export SUBMIT_DIR; export libIGCM; export R_INIT; export R_BC; export StandAlone 
    462451export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_SRF 
  • trunk/libIGCM/AA_create_ts

    r135 r149  
    77#-Q- platine #BSUB -n 1                      # reservation des processeurs pour le job 
    88#-Q- platine #BSUB -W 1:00                   # Limite temps 
    9 #-Q- platine #BSUB -q post              # Passage en queue post 
     9#-Q- platine #BSUB -q post                   # Passage en queue post 
    1010#-Q- sx8brodie #!/bin/ksh 
    1111#-Q- sx8brodie ####################### 
     
    2222#-Q- sx8brodie # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 
    2323#-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 ; $MASTER 
     24#-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 
    2525#-Q- aix6 #!/bin/ksh 
    2626#-Q- aix6 ####################### 
     
    3737#-Q- aix6 # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.) 
    3838#-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 ; $MASTER 
     39#-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 
    4040#-Q- aix6 # @ queue 
    4141#-Q- sx8brodie # @ queue 
     
    9797#D- TEMPORARY Flag to determine atmospheric resolution 
    9898#D- Default : value from atmospheric driver if any 
    99 RESOL_ATM=${RESOL_ATM:=ALL} 
     99RESOL_ATM=ALL 
    100100 
    101101#D- TEMPORARY Flag to determine ocean resolution 
     
    109109#D- Flag to determine surface resolution 
    110110#D- Default : value from surface driver if any 
    111 RESOL_SRF=${RESOL_SRF:=ALL} 
     111RESOL_SRF=ALL 
    112112 
    113113######################################################################## 
     
    133133 
    134134######################################################################## 
    135  
    136 #set -vx 
    137135 
    138136if [ ${DEBUG_debug} = true ] ; then 
     
    170168 
    171169#================================== 
    172  
    173170R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName} 
    174171# 
    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 
    178177# 
    179178DateBegin=${DateBegin:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )} 
    180179# 
    181180PeriodDateEnd=${PeriodDateEnd:=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )} 
     181# 
     182# Determine Dimension of the produced time series : 2D or 3D 
     183if (   [ X${TsTask} = XChunck2D ] || [ X${TsTask} = X2D ] ) ; then 
     184    Dimension=2D 
     185elif ( [ X${TsTask} = XChunck3D ] || [ X${TsTask} = X3D ] ) ; then 
     186    Dimension=3D 
     187else 
     188    Dimension="" 
     189fi 
     190 
    182191 
    183192######################################################################## 
     
    203212    # 
    204213    card=${CARD_DIR}/COMP/${compname}.card 
     214 
    205215    IGCM_card_DefineArrayFromOption ${card} OutputFiles List 
    206216    # 
     
    214224        # INITIALISATION 
    215225        # 
    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 
    220236            # 
    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 )) 
    224238            eval flag_post_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
    225239            eval flag_post=${flag_post_} 
     
    227241            if [ X${flag_post} != XNONE ] ; then 
    228242                # 
    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 
    232325            fi 
    233             let $(( i=i+3 )) 
     326            (( i=i+3 )) 
    234327        done 
    235328    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    # 
    309330    if [ ${ActiveComp} = true ] ; then 
    310331        set +A ActiveListOfComponents ${ActiveListOfComponents[*]} ${comp} 
    311332    fi 
    312  
    313333done 
    314334 
     
    440460       echo \${run_PostProcessing_TimeSeriesRunning}" ) 
    441461 
    442     if [ X${Running_Flag} = Xy ] ; then 
    443         # Time Series Job allready running 
    444         IGCM_debug_Print 1 "Time Series Job allready running exit" 
    445         exit 
    446     fi 
     462    #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 
    447467    # Now run.card know we are running 
     468 
     469 
     470 
     471 
    448472    IGCM_sys_RshMaster IGCM_card_WriteOption ${SUBMIT_DIR}/run.card PostProcessing TimeSeriesRunning "y" 
     473 
     474 
     475 
     476 
     477 
    449478    # 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}" ) 
    453482fi 
    454483 
    455484# Is it the first submission or not ? 
    456 if [ X${CompletedFlag} = X ] ; then 
     485 
     486if ( [ X${CompletedFlag} = X ] || [ X${CompletedFlag} = X$( IGCM_date_AddDaysToGregorianDate ${DateBegin} -1 ) ] ) ; then 
    457487    # First Time Series Submission 
    458488    FIRST_PASS=TRUE 
     
    600630    else 
    601631        # - 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 ) ) )) 
    603633        [ ${NBRE_FILE_LOOP} -eq 0 ] && NBRE_FILE_LOOP=${UNIX_MAX_LIMIT} 
    604634 
     
    674704 
    675705            # 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 
    680712                    done 
    681                 done 
     713                fi 
    682714            fi 
    683715 
     
    749781done 
    750782 
    751 # clean environment variables and export usefull one : 
    752 if [ X$( hostname -s ) = Xrhodes ] ; then 
    753     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} ; do 
    758         unset ${variables} 
    759     done 
    760 fi 
    761  
    762783export POST_DIR; export SUBMIT_DIR; export libIGCM; export R_INIT; export R_BC; export StandAlone 
    763784export RESOL_ATM; export RESOL_OCE ; export RESOL_ICE ; export RESOL_SRF 
     
    774795#D- Submit MONITORING 
    775796# -------------------------------------------------------------------- 
    776 IGCM_sys_QsubPost monitoring 
     797[ X${TsTask} = X2D ] && IGCM_sys_QsubPost monitoring 
    777798 
    778799#D- 
  • trunk/libIGCM/libIGCM_comp/libIGCM_comp.ksh

    r100 r149  
    8080        eval R_OUT_${comp}_O_Y=\${R_OUT_${comp}_O}/YE 
    8181 
    82  
    8382        # Read UserChoices section of component card 
    84         IGCM_debug_Print 1 "DefineArrayFromOption : ${compname}_UserChoices ${card}" 
     83        IGCM_debug_Print 1 "DefineArrayFromSection : ${compname}_UserChoices ${card}" 
    8584        IGCM_card_DefineArrayFromSection ${card} UserChoices 
    8685        eval first_option=\${${compname}_UserChoices[0]} > /dev/null 2>&1 
     
    9897        fi 
    9998 
     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 
    100167        # Debug Print 
    101168        IGCM_debug_Print 3 "Initialize ${compname} with driver." 
     
    105172    done 
    106173    echo "-----" 
    107  
    108174    echo 
    109175    IGCM_debug_Print 1 "DefineArrayFromOption  : ListOfComponents" 
     
    640706                eval file_out_=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
    641707                eval file_out=${file_out_} 
     708                (( i_ = i+2 )) 
     709                eval flag_post=\${${ListFilesName}[$i_]} > /dev/null 2>&1 
    642710                # 
    643711                generic_file_name=$( basename ${file_in} .nc ) 
     
    656724                        [ ! -d ${RUN_DIR}/REBUILD_${PeriodDateBegin} ] && IGCM_sys_Mkdir ${RUN_DIR}/REBUILD_${PeriodDateBegin} 
    657725                        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 
    658731                        # Prepare headers for the shell dedicated to offline rebuild 
    659732                        if [ ! -f ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh ] ; then 
    660                             echo \#!/bin/ksh                               > ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    661                             echo function IGCM_FlushRebuild               >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    662                             echo {                                        >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    663                             echo IGCM_debug_PushStack "IGCM_FlushRebuild" >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    664                             echo echo                                     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    665                             echo IGCM_debug_Print 1 "IGCM_FlushRebuild"   >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
    666                             echo echo                                     >> ${RUN_DIR}/REBUILD_${PeriodDateBegin}/rebuild.ksh 
     733                            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 
    667740                        fi 
    668741                        # 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 
    672754                        SaveOnArchive=false 
    673755                    fi 
     
    675757                # 
    676758                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 
    683783                    fi 
    684784                fi 
  • trunk/libIGCM/libIGCM_post/libIGCM_post.ksh

    r126 r149  
    384384    if [ ${TimeSeriesFrequency} = true ] ; then 
    385385 
    386         IGCM_debug_Print 2 "TIME SERIES POST-TREATMENT :" 
     386        set -vx 
     387        IGCM_debug_Print 2 "TIME SERIES POST-PROCESSING ACTIVATED :" 
    387388        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 
    389399        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 
     461EOF 
     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 
     549EOF 
     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" 
    391572 
    392573        if [ ${RebuildFrequency} = true ] ; then 
    393574            # 
    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 
    412594            # 
    413595        else 
     
    421603            export POST_DIR=${POST_DIR} 
    422604            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} 
    481606            export DateBegin=${DateBegin} 
    482607            export PeriodDateEnd=${PeriodDateEnd} 
     
    521646        export REBUILD_DIR=${REBUILD_DIR} 
    522647        export POST_DIR=${POST_DIR} 
    523         export MASTER=${MASTER} 
    524648        export DateBegin=${DateBegin} 
    525649        export PeriodDateBegin=${PeriodDateBegin} 
     
    552676 
    553677#        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" 
    555679#        export DEBUG_debug=${DEBUG_debug} 
    556680#        export MODIPSL=${MODIPSL} 
Note: See TracChangeset for help on using the changeset viewer.