source: trunk/libIGCM/AA_TimeSeries_Checker @ 344

Last change on this file since 344 was 344, checked in by mmaipsl, 14 years ago

Use SpaceName? and ExperimentName?.

File size: 18.3 KB
Line 
1#!/bin/ksh
2#-Q- cesium #!/bin/ksh
3#-Q- cesium ######################
4#-Q- cesium ## CESIUM   CEA ##
5#-Q- cesium ######################
6#-Q- cesium #MSUB -r TimeSeries             # Nom du job               
7#-Q- cesium #MSUB -N 1              # Reservation du noeud
8#-Q- cesium #MSUB -n 1              # Reservation du processus
9#-Q- cesium #MSUB -T 86400          # Limite de temps elapsed du job
10#-Q- cesium #MSUB -E "-j o"
11#-Q- cesium #MSUB -E "-S /bin/ksh"
12#-Q- platine #!/usr/bin/ksh
13#-Q- platine ###################
14#-Q- platine ## PLATINE   CEA ##
15#-Q- platine ###################
16#-Q- platine #BSUB -J TimeSeries                     # Nom du job
17#-Q- platine #BSUB -N                        # message a la fin du job
18#-Q- platine #BSUB -n 1                      # reservation des processeurs pour le job
19#-Q- platine #BSUB -W 1:00                   # Limite temps
20#-Q- platine #BSUB -q post                   # Passage en queue post
21#-Q- sx8brodie #!/bin/ksh
22#-Q- sx8brodie #######################
23#-Q- sx8brodie ## SX8BRODIE   IDRIS ##
24#-Q- sx8brodie #######################
25#-Q- sx8brodie # Temps Elapsed max. d'une requete hh:mm:ss
26#-Q- sx8brodie # @ wall_clock_limit = 20:00:00
27#-Q- sx8brodie # Nom du travail LoadLeveler
28#-Q- sx8brodie # @ job_name   = TimeSeries
29#-Q- sx8brodie # Fichier de sortie standard du travail       
30#-Q- sx8brodie # @ output     = $(job_name).$(jobid)
31#-Q- sx8brodie # Fichier de sortie d'erreur du travail
32#-Q- sx8brodie # @ error      =  $(job_name).$(jobid)
33#-Q- sx8brodie # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
34#-Q- sx8brodie # @ notification = error
35#-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_MBG ; $RESOL_SRF ; $RESOL_SBG ; $MASTER
36#-Q- aix6 #!/bin/ksh
37#-Q- aix6 #######################
38#-Q- aix6 ##   VARGAS   IDRIS  ##
39#-Q- aix6 #######################
40#-Q- aix6 # Temps Elapsed max. d'une requete hh:mm:ss
41#-Q- aix6 # @ wall_clock_limit = 20:00:00
42#-Q- aix6 # Nom du travail LoadLeveler
43#-Q- aix6 # @ job_name   = TimeSeries
44#-Q- aix6 # Fichier de sortie standard du travail
45#-Q- aix6 # @ output     = $(job_name).$(jobid)
46#-Q- aix6 # Fichier de sortie d'erreur du travail
47#-Q- aix6 # @ error      =  $(job_name).$(jobid)
48#-Q- aix6 # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
49#-Q- aix6 # @ notification = error
50#-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_MBG ; $RESOL_SRF ; $RESOL_SBG ; $MASTER
51#-Q- aix6 # @ queue
52#-Q- sx8brodie # @ queue
53#-Q- sx8mercure #!/bin/ksh
54#-Q- sx8mercure ######################
55#-Q- sx8mercure ## SX8MERCURE   CEA ##
56#-Q- sx8mercure ######################
57#-Q- sx8mercure #PBS -N TimeSeries                   # Nom du job
58#-Q- sx8mercure #PBS -j o                    # regroupement des stdout et stderr
59#-Q- sx8mercure #PBS -S /usr/bin/ksh         # shell de soumission
60#-Q- sx8mercure #PBS -l memsz_job=1gb        # Limite memoire a 1 Go
61#-Q- sx8mercure #PBS -l cputim_job=24:00:00   # Limite temps a 2 heures
62#-Q- sx8mercure #PBS -q scalaire
63#-Q- sx9mercure #!/bin/ksh
64#-Q- sx9mercure #########################
65#-Q- sx9mercure ## CESIUM FOR SX9  CEA ##
66#-Q- sx9mercure #########################
67#-Q- sx9mercure #MSUB -r TimeSeries             # Nom du job               
68#-Q- sx9mercure #MSUB -N 1              # Reservation du noeud
69#-Q- sx9mercure #MSUB -n 1              # Reservation du processus
70#-Q- sx9mercure #MSUB -T 86400          # Limite de temps elapsed du job
71#-Q- sx9mercure #MSUB -E "-j o"
72#-Q- sx9mercure #MSUB -E "-S /bin/ksh"
73#-Q- titane #!/bin/ksh
74#-Q- titane ######################
75#-Q- titane ## TITANE   CEA ##
76#-Q- titane ######################
77#-Q- titane #MSUB -r TimeSeries             # Nom du job               
78#-Q- titane #MSUB -N 1              # Reservation du noeud
79#-Q- titane #MSUB -n 1              # Reservation du processus
80#-Q- titane #MSUB -T 86400          # Limite de temps elapsed du job
81#-Q- titane #MSUB -E "-j o"
82#-Q- titane #MSUB -E "-S /bin/ksh"
83#-Q- titane ##MSUB -e nco.out        # Sortie standard
84#-Q- titane ##MSUB -o nco.out        # Sortie standard
85#-Q- lxiv8 ######################
86#-Q- lxiv8 ## OBELIX      LSCE ##
87#-Q- lxiv8 ######################
88#-Q- lxiv8 #PBS -N TimeSeries
89#-Q- lxiv8 #PBS -m a
90#-Q- lxiv8 #PBS -j oe
91#-Q- lxiv8 #PBS -q medium
92#-Q- lxiv8 #PBS -o TimeSeries.$$
93#-Q- lxiv8 #PBS -S /bin/ksh
94#-Q- default #!/bin/ksh
95#-Q- default ##################
96#-Q- default ## DEFAULT HOST ##
97#-Q- default ##################
98
99#**************************************************************
100# Author: Sebastien Denvil
101# Contact: Sebastien.Denvil@ipsl.jussieu.fr
102# $Date: $
103# $Author: $
104# $Revision: $
105# IPSL (2006)
106#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
107# History:
108# Modification:
109#
110#**************************************************************
111
112# Check that everything went well during time series production
113# Display a short report
114# Launch what's missing
115# For use during a run (not on the end : PeriodState=Completed), it will complete
116# all TS to last PeriodDateEnd value, give by run.card->Configuration->OldPrefix string.
117
118
119# Chemin vers libIGCM
120libIGCM=${libIGCM:=::modipsl::/libIGCM}
121# Attention : à changer si la machine de post-traitement n'est pas la frontale du serveur de calcul !
122#             voir précence de la variable MirrorlibIGCM dans votre couche systÚme.
123
124# Name Space of this experience
125SpaceName=${SpaceName:=PROD}
126
127# Expericence class of the run
128ExperimentName=${ExperimentName:=historical}
129
130# Name of this job
131JobName=${JobName:=HISTORC2}
132
133# répertoire courrant
134CURRENT_DIR=$( pwd )
135
136# Emplacement des cartes
137CARD_DIR=${CARD_DIR:=${CURRENT_DIR}/${ExperimentName}/${JobName}}
138
139# répertoire de stockage des sorties des create_ts
140POST_DIR=${POST_DIR:=${CARD_DIR}/OutScript}
141
142
143if [ ! -d ${CARD_DIR} ]; then
144    echo "No ${CARD_DIR}, we stop here"
145    exit
146fi
147
148########################################################################
149
150. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh ;
151. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh     #; IGCM_debug_Check
152. ${libIGCM}/libIGCM_card/libIGCM_card.ksh   #; IGCM_card_Check
153. ${libIGCM}/libIGCM_date/libIGCM_date.ksh   #; IGCM_date_Check
154
155########################################################################
156
157# First of all
158IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card UserChoices
159typeset option
160for option in ${config_UserChoices[*]} ; do
161    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
162done
163
164echo
165IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices"
166IGCM_debug_PrintVariables 3 config_UserChoices_JobName
167#IGCM_debug_PrintVariables 3 config_UserChoices_SpaceName
168#IGCM_debug_PrintVariables 3 config_UserChoices_ExperimentName
169IGCM_debug_PrintVariables 3 config_UserChoices_CalendarType
170IGCM_debug_PrintVariables 3 config_UserChoices_DateBegin
171IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
172
173if [ -f ${CARD_DIR}/run.card ] ; then
174    IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration OldPrefix
175    IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card Configuration PeriodState
176    IGCM_card_DefineVariableFromOption ${CARD_DIR}/run.card PostProcessing TimeSeriesCompleted
177    IGCM_debug_PrintVariables 3 run_Configuration_OldPrefix
178    IGCM_debug_PrintVariables 3 run_Configuration_PeriodState
179    IGCM_debug_PrintVariables 3 run_PostProcessing_TimeSeriesCompleted
180    if [ X${run_Configuration_PeriodState} != X"Completed" ] ; then
181        DateEnd=$( IGCM_date_ConvertFormatToGregorian $( echo ${run_Configuration_OldPrefix} | awk -F'_' '{print $2}' ) )
182    else
183        DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
184    fi
185    CompletedFlag=${run_PostProcessing_TimeSeriesCompleted}
186else
187    DateEnd=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateEnd} )
188    CompletedFlag=""
189fi
190SavedCompletedFlag=${CompletedFlag}
191
192echo
193echo "DateEnd for TimeSeries_Checker : " ${DateEnd}
194IGCM_date_GetYearMonth ${DateEnd}   YearEnd   MonthEnd
195echo "YearEnd MonthEnd for TimeSeries_Checker : " ${YearEnd} ${MonthEnd}
196echo "CompletedFlag = " ${CompletedFlag}
197echo
198
199
200#set -vx
201
202#====================================================
203#R_SAVE : Job output directory
204if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
205    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
206    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
207    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
208else
209    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
210    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
211fi
212
213IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card ListOfComponents
214
215for comp in ${config_ListOfComponents[*]} ; do
216    # Debug Print
217    IGCM_debug_Print 1 ${comp}
218    # Define component
219    IGCM_card_DefineArrayFromOption ${CARD_DIR}/config.card ListOfComponents ${comp}
220    eval compname=\${config_ListOfComponents_${comp}[0]} > /dev/null 2>&1
221    eval comptagname=\${config_ListOfComponents_${comp}[1]} > /dev/null 2>&1
222
223    # Read libIGCM compatibility version in ${compname}.card
224    card=${CARD_DIR}/COMP/${compname}.card
225
226    # Read and Build Output File stuff
227    #IGCM_debug_Print 1 "DefineArrayFromOption  : ${compname}_OutputFiles ${card}"
228    IGCM_card_DefineArrayFromOption ${card} OutputFiles List
229    ListFilesName=${compname}_OutputFiles_List
230    eval FileName0=\${${ListFilesName}[0]} > /dev/null 2>&1
231    #
232    if [ X${FileName0} != X${NULL_STR} ] ; then
233        #
234        #IGCM_debug_Print 1 "Component      : ${compname}"
235        #
236        # INITIALISATION
237        #
238        eval NbFiles=\${#${ListFilesName}[@]} > /dev/null 2>&1
239        i=2
240        #
241        until [ $i -ge $NbFiles ]; do
242            #
243            eval flag_post=\${${ListFilesName}[$i]} > /dev/null 2>&1
244            #
245            if [ X${flag_post} != XNONE ] ; then
246                #
247                # First of all
248                #
249                IGCM_card_DefineArrayFromSection ${card} ${flag_post}
250                #
251                IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars
252                IGCM_card_DefineArrayFromOption ${card} ${flag_post} Patches
253                if [ X"$( eval echo \${${compname}_${flag_post}_TimeSeriesVars[*]} )" = X"Option not found ${flag_post}" ] ; then
254                    # New TimeSeriesVar description, with 2D, 3D and associate ChunckJob.
255                    unset ListDimension
256                    ListDimension[0]=2D
257                    ListDimension[1]=3D
258                    TimeSeries=false
259                    TimeSeries2D=false
260                    TimeSeries3D=false
261                    iLoop=${#ListDimension[*]}
262                    j=0
263                    until [ $j -ge ${iLoop} ]; do
264                        Dimension=${ListDimension[${j}]}
265                        IGCM_card_DefineArrayFromOption ${card} ${flag_post} TimeSeriesVars${Dimension}
266                        IGCM_card_DefineVariableFromOption ${card} ${flag_post} ChunckJob${Dimension}
267                        #
268                        # Time series WITHOUT chunk
269                        #
270                        if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
271                            if [ $( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} ) = NONE ] ; then
272                                IGCM_debug_Print 2 "${Dimension} time series activated for ${flag_post}"
273                                eval TimeSeries${Dimension}=true
274                                chunck=false
275                            fi
276                        fi
277                        #
278                        # Time series WITH chunk
279                        #
280                        if [ ! $( eval echo \${${compname}_${flag_post}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
281                            chunck_size=$( eval echo \${${compname}_${flag_post}_ChunckJob${Dimension}} )
282                            if [ ! ${chunck_size} = NONE ] &&  [ ! ${chunck_size} = OFF ] ; then
283                                IGCM_debug_Print 2 "${Dimension} time series activated with ${chunck_size} chunck for ${flag_post}"
284                                eval TimeSeriesChunck${Dimension}=true
285                                chunck=true
286                            fi
287                        fi
288                        (( j=j+1 ))
289
290                        #
291                        #  ICI ON TESTE QUE LES FICHIERS TS SONT LA!
292                        #
293                        #
294                        FILE=$( echo ${flag_post} | awk "-FPost_" '{print $2}' )
295                        IGCM_card_DefineArrayFromOption ${card}    Post_${FILE} TimeSeriesVars${Dimension}
296                        IGCM_card_DefineVariableFromOption ${card} Post_${FILE} ChunckJob${Dimension}
297                        #
298                        FlagDir=$( echo ${FILE} | awk -F "_" '{print $1}' )
299                        case ${FlagDir} in
300                            *Y)  TS_Dir=TS_YE  ;;
301                            *M)  TS_Dir=TS_MO  ;;
302                            *D)  TS_Dir=TS_DA  ;;
303                         3H|HF)  TS_Dir=TS_HF  ;;
304                           INS) TS_Dir=TS_INS ;;
305                        esac
306
307                        #
308                        # If TimeSeriesVars list is empty we skip
309                        #
310                        if [ $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}} ) = ${NULL_STR} ] ; then
311                            IGCM_debug_Print 2 "Empty TS : ${compname}_Post_${FILE}_TimeSeriesVars${Dimension}"
312                            #(( i=i+3 ))
313                            continue
314                        fi
315                        #
316                        # We need LIST of variables not allready produced (useful for standalone mode)
317                        #
318                        DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
319                        IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin
320
321                        # Si on n'a pas de chunck, dans ce cas chunck_size=la durée de la simulation en années
322                        YearsChunckLength=$( echo ${chunck_size} | sed -e "s/[yY]//" )
323                        if ( [ ${chunck} = false ] || [ X${YearsChunckLength} = XOFF ] ) ; then
324                            YearsChunckLength=$(( YearEnd - YearBegin + 1 ))
325                        fi
326
327                        NbYearsChunckLoop=$(( ( YearEnd - YearBegin + 1 ) / YearsChunckLength ))
328                        Reste=$(( ( YearEnd - YearBegin + 1 ) % YearsChunckLength ))
329
330                        if [ ${Reste} -ne 0 ] ; then
331                            NbYearsChunckLoop=$(( NbYearsChunckLoop + 1 ))
332                        fi
333
334                        if [ ${NbYearsChunckLoop} -eq 1 ] ; then
335                            PeriodDateEnd=${DateEnd}
336                        else
337                            DaysInYear=$( IGCM_date_DaysInYear ${YearBegin} )
338                            PeriodDateEnd=$( IGCM_date_AddDaysToGregorianDate ${DateBegin} $(( YearsChunckLength * DaysInYear - 1 )) )
339                        fi
340                        #
341                        DIRECTORY=${R_SAVE}/${comp}/Analyse/${TS_Dir}
342                        YearsChunckLoop=1
343                        ChunckDebut=${DateBegin}
344                        ChunckFin=${PeriodDateEnd}
345                        while [ ${YearsChunckLoop} -le ${NbYearsChunckLoop} ] ; do
346                            countTotal=0
347                            countGood=0
348                            countBad=0
349                            for var in $( eval echo \${${compname}_Post_${FILE}_TimeSeriesVars${Dimension}[*]} ) ; do
350                                TestedFile=${config_UserChoices_JobName}_${ChunckDebut}_${ChunckFin}_${FlagDir}_${var}.nc
351                                #
352                                if [ ! -f ${DIRECTORY}/${TestedFile} ] ; then
353                                    (( countBad = countBad + 1 ))
354                                    [ ${countBad} = 1 ] && IGCM_debug_Print 3 "Missing time series from ${FILE} :"
355                                    IGCM_debug_Print 3 ${DIRECTORY}/${TestedFile}
356                                else
357                                    (( countGood = countGood + 1 ))
358                                fi
359                                (( countTotal = countTotal + 1 ))
360                            done
361
362                            SuccessRate=$(( countGood * 100 / countTotal ))
363                            if [ ${SuccessRate} -ne 100 ] ; then
364                                IGCM_debug_Print 2 -e "\033[1;31m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}"
365                            else
366                                IGCM_debug_Print 2 -e "\033[1;32m${SuccessRate}% files OK.\033[m for period ${ChunckDebut}-${ChunckFin}"
367                            fi
368
369                            echo
370                            if ( [ ${chunck} = true ] && [ ${SuccessRate} -ne 100 ] ) ; then
371                                ChunckCompletedFlag=""
372                                CompletedFlag=${SavedCompletedFlag}
373                                ( [ ${CompletedFlag} -gt ${ChunckDebut} ] && [ ${CompletedFlag} -le ${ChunckFin} ] ) && ChunckCompletedFlag=${CompletedFlag}
374                                IGCM_debug_Print 2 -e "\033[1;31mSubmit ${FILE} chunck ${Dimension}\033[m period ${ChunckDebut}-${ChunckFin}"
375                                listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask,CompToRead,FlagToRead"
376                                export libIGCM=${libIGCM}
377                                export SUBMIT_DIR=${CARD_DIR}
378                                export POST_DIR=${POST_DIR}
379                                export DateBegin=${ChunckDebut}
380                                export PeriodDateEnd=${ChunckFin}
381                                export CompletedFlag=${ChunckCompletedFlag}
382                                export TsTask=Chunck${Dimension}
383                                export CompToRead=${comp}
384                                export FlagToRead=${i}
385                                export listVarEnv=${listVarEnv}
386                                IGCM_sys_MkdirWork ${POST_DIR}
387                                IGCM_debug_Verif_Exit
388                                IGCM_sys_QsubPost create_ts
389                                echo
390                            fi
391
392                            if ( [ ${chunck} = false ] && [ ${SuccessRate} -ne 100 ] ) ; then
393                                eval Launch${Dimension}=true
394                            fi
395
396                            # Date update
397                            ChunckDebut=$( IGCM_date_AddDaysToGregorianDate ${ChunckFin} 1 )
398
399                            (( YearsChunckLoop = YearsChunckLoop + 1 ))
400
401                            if [ ${YearsChunckLoop} -eq ${NbYearsChunckLoop} ] ; then
402                                ChunckFin=${DateEnd}
403                            else
404                                #PeriodDateEnd=$(( YearBegin + YearsChunckLength - 1 ))
405                                ChunckFin=$( IGCM_date_AddDaysToGregorianDate ${ChunckDebut} $(( YearsChunckLength * DaysInYear - 1 )) )
406                            fi
407                        done
408                    done
409                else
410                    ListDimension[0]=""
411                    TimeSeries=true
412                    TimeSeries2D=false
413                    TimeSeries3D=false
414                    TimeSeriesChunck2D=false
415                    TimeSeriesChunck3D=false
416                fi
417            fi
418            (( i=i+3 ))
419        done
420    fi
421done # comp loop
422
423echo
424
425DateBegin=$( IGCM_date_ConvertFormatToGregorian ${config_UserChoices_DateBegin} )
426IGCM_date_GetYearMonth ${DateBegin} YearBegin MonthBegin
427CompletedFlag=${SavedCompletedFlag}
428
429if [ X${Launch2D} = Xtrue ] ; then
430    IGCM_debug_Print 2 -e "\033[1;31mSubmit 2D\033[m without chunck period ${DateBegin}-${DateEnd}"
431    listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask"
432    export libIGCM=${libIGCM}
433    export SUBMIT_DIR=${CARD_DIR}
434    export POST_DIR=${POST_DIR}
435    export DateBegin=${DateBegin}
436    export PeriodDateEnd=${DateEnd}
437    export CompletedFlag=${CompletedFlag}
438    export TsTask=2D
439    export listVarEnv=${listVarEnv}
440    IGCM_sys_MkdirWork ${POST_DIR}
441    IGCM_debug_Verif_Exit
442    IGCM_sys_QsubPost create_ts
443    echo
444fi
445
446if [ X${Launch3D} = Xtrue ] ; then
447    IGCM_debug_Print 2 -e "\033[1;31mSubmit 3D\033[m without chunck period ${DateBegin}-${DateEnd}"
448    listVarEnv="libIGCM,SUBMIT_DIR,POST_DIR,DateBegin,PeriodDateEnd,CompletedFlag,TsTask"
449    export libIGCM=${libIGCM}
450    export SUBMIT_DIR=${CARD_DIR}
451    export POST_DIR=${POST_DIR}
452    export DateBegin=${DateBegin}
453    export PeriodDateEnd=${DateEnd}
454    export CompletedFlag=${CompletedFlag}
455    export TsTask=3D
456    export listVarEnv=${listVarEnv}
457    IGCM_sys_MkdirWork ${POST_DIR}
458    IGCM_debug_Verif_Exit
459    IGCM_sys_QsubPost create_ts
460    echo
461fi
Note: See TracBrowser for help on using the repository browser.