source: trunk/libIGCM/AA_job @ 1292

Last change on this file since 1292 was 1292, checked in by jgipsl, 8 years ago

Set little bit higher default memory at ciclad. 30gb is suitable for LMDZOR on resolution 96x95x39 using 16MPI.

  • Property licence set to
    The following licence information concerns ONLY the libIGCM tools
    ==================================================================

    Copyright © Centre National de la Recherche Scientifique CNRS
    Commissariat à l'Énergie Atomique CEA

    libIGCM : Library for Portable Models Computation of IGCM Group.

    IGCM Group is the french IPSL Global Climate Model Group.

    This library is a set of shell scripts and functions whose purpose is
    the management of the initialization, the launch, the transfer of
    output files, the post-processing and the monitoring of datas produce
    by any numerical program on any plateforme.

    This software is governed by the CeCILL license under French law and
    abiding by the rules of distribution of free software. You can use,
    modify and/ or redistribute the software under the terms of the CeCILL
    license as circulated by CEA, CNRS and INRIA at the following URL
    "http://www.cecill.info".

    As a counterpart to the access to the source code and rights to copy,
    modify and redistribute granted by the license, users are provided only
    with a limited warranty and the software's author, the holder of the
    economic rights, and the successive licensors have only limited
    liability.

    In this respect, the user's attention is drawn to the risks associated
    with loading, using, modifying and/or developing or reproducing the
    software by the user in light of its specific status of free software,
    that may mean that it is complicated to manipulate, and that also
    therefore means that it is reserved for developers and experienced
    professionals having in-depth computer knowledge. Users are therefore
    encouraged to load and test the software's suitability as regards their
    requirements in conditions enabling the security of their systems and/or
    data to be ensured and, more generally, to use and operate it in the
    same conditions as regards security.

    The fact that you are presently reading this means that you have had
    knowledge of the CeCILL license and that you accept its terms.
  • Property svn:keywords set to Revision Author Date
File size: 21.4 KB
Line 
1#-Q- curie #!/bin/ksh
2#-Q- curie ######################
3#-Q- curie ## CURIE   TGCC/CEA ##
4#-Q- curie ######################
5#-Q- curie #MSUB -r ::Jobname::        # Job Name
6#-Q- curie #MSUB -o Script_Output_::Jobname::.000001    # standard output
7#-Q- curie #MSUB -e Script_Output_::Jobname::.000001    # error output
8#-Q- curie #MSUB -eo
9#-Q- curie #MSUB -n ::JobNumProcTot::  # Number of MPI tasks (SPMD case) or cores (MPMD case)
10#-Q- curie #MSUB -c ::openMPthreads::  # Number of openMP threads. To specify only for SMPD
11#-Q- curie #MSUB -x                    # exclusive node. To specify only for MPMD together with the one below
12#-Q- curie #MSUB -E '--cpu_bind=none'
13#-Q- curie #MSUB -T 86400              # Wall clock limit (seconds)
14#-Q- curie #MSUB -q standard           # thin nodes
15#-Q- curie #MSUB -A ::default_project::
16#-Q- curie # Below specific options that can be activated
17#-Q- curie ##MSUB -q ivybridge         # Option for Airain
18#-Q- curie
19#-Q- curie BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC
20#-Q- curie set +x
21#-Q- ada #!/bin/ksh
22#-Q- ada # ######################
23#-Q- ada # ##  ADA       IDRIS ##
24#-Q- ada # ######################
25#-Q- ada # Job name
26#-Q- ada # @ job_name = ::Jobname::
27#-Q- ada # Standard output file name
28#-Q- ada # @ output = Script_Output_::Jobname::.000001
29#-Q- ada # Error output file name
30#-Q- ada # @ error = Script_Output_::Jobname::.000001
31#-Q- ada # Job type
32#-Q- ada # @ job_type = parallel
33#-Q- ada # Total number of tasks
34#-Q- ada # @ total_tasks = ::JobNumProcTot::
35#-Q- ada # Specific option for OpenMP parallelization: Number of OpenMP threads per MPI task
36#-Q- ada # @ parallel_threads = ::openMPthreads::
37#-Q- ada # Memory : as_limit=3.5gb max per process per core. With 4 threads per process use max as_limit=14gb
38#-Q- ada # @ as_limit = 3.5gb
39#-Q- ada # Maximum CPU time per task hh:mm:ss
40#-Q- ada # @ wall_clock_limit = 1:00:00
41#-Q- ada # @ environment = "BATCH_NUM_PROC_TOT=::JobNumProcTot::" ; wall_clock_limit=$(wall_clock_limit)
42#-Q- ada # End of the header options
43#-Q- ada # @ queue
44#-Q- lxiv8 ######################
45#-Q- lxiv8 ## OBELIX      LSCE ##
46#-Q- lxiv8 ######################
47#-Q- lxiv8 #PBS -N ::Jobname::
48#-Q- lxiv8 #PBS -m a
49#-Q- lxiv8 #PBS -j oe
50#-Q- lxiv8 #PBS -q mediump
51#-Q- lxiv8 #PBS -o Script_Output_::Jobname::.000001
52#-Q- lxiv8 #PBS -S /bin/ksh
53#-Q- lxiv8 #PBS -v BATCH_NUM_PROC_TOT=::JobNumProcTot::
54#-Q- lxiv8 #PBS -l nodes=1:ppn=::JobNumProcTot::
55#-Q- ifort_CICLAD ######################
56#-Q- ifort_CICLAD ##   CICLAD    IPSL ##
57#-Q- ifort_CICLAD ######################
58#-Q- ifort_CICLAD #PBS -N ::Jobname::
59#-Q- ifort_CICLAD #PBS -m a
60#-Q- ifort_CICLAD #PBS -j oe
61#-Q- ifort_CICLAD #PBS -q h12
62#-Q- ifort_CICLAD #PBS -o Script_Output_::Jobname::.000001
63#-Q- ifort_CICLAD #PBS -S /bin/ksh
64#-Q- ifort_CICLAD #PBS -v BATCH_NUM_PROC_TOT=::JobNumProcTot::
65#-Q- ifort_CICLAD #PBS -l nodes=1:ppn=::JobNumProcTot::
66#-Q- ifort_CICLAD #PBS -l mem=6gb
67#-Q- ifort_CICLAD #PBS -l vmem=30gb
68#-Q- default #!/bin/ksh
69#-Q- default ##################
70#-Q- default ## DEFAULT HOST ##
71#-Q- default ##################
72#-Q- default #For MPI use, uncomment next line :
73#-Q- default #BATCH_NUM_PROC_TOT=::JobNumProcTot::
74
75#**************************************************************
76# Author: Sebastien Denvil
77# Contact: Sebastien.Denvil__at__ipsl.jussieu.fr
78# $Revision::                                          $ Revision of last commit
79# $Author::                                            $ Author of last commit
80# $Date::                                              $ Date of last commit
81# IPSL (2006)
82#  This software is governed by the CeCILL licence see libIGCM/libIGCM_CeCILL.LIC
83#
84#**************************************************************
85
86#set -eu
87#set -vx
88
89date
90echo
91echo "#######################################"
92echo "#       ANOTHER GREAT SIMULATION      #"
93echo "#######################################"
94echo
95
96#D--------------------------------------------------------------------==
97#D-
98#D-                      Job to launch IGCM models
99#D-
100#D--------------------------------------------------------------------==
101#D-
102
103MODIPSL=::modipsl::
104libIGCM=${MODIPSL}/libIGCM
105
106#D--------------------------------------------------------------------==
107#D- -1. PLACE FOR USER MODIFICATION
108#D-     - Job Verbosity
109#D-     - PeriodNb
110#D-     - Experience type : DEB(ug), DEV(elopment), RUN
111#D--------------------------------------------------------------------==
112
113#D- Task type (computing or post-processing)
114TaskType=computing
115#D- Increased verbosity (1, 2, 3)
116Verbosity=3
117#D- postProcessingStopLevel (0,1,2,3)
118#D- 3 stop if any post-processing went wrong
119#D- 2 dont stop if atlas, monitoring or metrics failed
120#D- 1 dont stop if atlas, monitoring, metrics, create_ts or create_se failed
121#D- 0 dont stop if atlas, monitoring, metrics, create_ts, create_se, rebuild or pack_* failed
122postProcessingStopLevel=0
123#D- Experience type : DEB(ug), DEV(elopment), RUN (default)
124#D- DEB : set -vx mode + output files are NOT read only
125#D- DEV : output files are NOT read only
126#D- RUN : output files ARE read only
127JobType=RUN
128#D- Number of execution in one job
129PeriodNb=1
130
131#D-
132#D- --------------------------------------------------------------------------------------------------#
133#D-                          ! OPTIONNAL FEATURES /!\ USE WITH CARE !                                 #
134#D- --------------------------------------------------------------------------------------------------#
135
136
137#D- Low level debug : to perform lib test checks, stack construction and IO functions instrumentation
138#D- Default=true
139#D-
140DEBUG_debug=true
141
142#D- Messaging : all activities and call stacks will be sent to ipsl servers
143#D- If true will imply DEBUG_debug=true
144#D- Default=false
145#D-
146BigBrother=true
147
148#D- Set DEBUG_sys to false to disable output calls of function
149#D- true when JobType=DEB # means DEB(ug)
150#D-
151#DEBUG_sys=false
152
153#D- Define running directory
154#D- Default=${TMPDIR} ie temporary batch directory
155#D-
156#RUN_DIR_PATH=/workdir/or/scratchdir/of/this/machine
157
158#D- Define submit directory
159#D- Default= where you launch qsub (variable from scheduler)
160#D-
161#SUBMIT_DIR=$( pwd )
162
163#D- Define input file root directory
164#D- Default=/IGCMG/common/account/of/this/machine
165#D-
166#R_IN=/u/rech/por/rpor111/DATA
167
168#D- Turn in dry run mode ? (0,1,2,3)
169#D- Default=0
170#D-
171#DRYRUN=3
172#D-# YOU HAVE TO COMPILE YOUR EXE FILES to USE DRYRUN MODE !
173#D-# -------------------------------------------------------------------------------------
174#D-# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
175#D-# |          |  Cp/Exe/param/files |            |         |                           |
176#D-# |          |  Chmod Qsub         |            |         |                           |
177#D-# -------------------------------------------------------------------------------------
178#D-# |    0     |       yes           |    yes     |  yes    |      yes                  |
179#D-# -------------------------------------------------------------------------------------
180#D-# |    1     |       yes           |    yes     |  yes    |      no                   |
181#D-# -------------------------------------------------------------------------------------
182#D-# |    2     |       yes           |    yes     |  no     |      no                   |
183#D-# -------------------------------------------------------------------------------------
184#D-# |    3     |       yes           |    no      |  no     |      no                   |
185#D-# -------------------------------------------------------------------------------------
186
187#D-
188# --------------------------------------------------------------------------------------------------#
189#D- ! END OF OPTIONNAL FEATURES /!\ DO NOT MODIFY ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING #
190# --------------------------------------------------------------------------------------------------#
191
192#D-
193#D--------------------------------------------------------------------==
194#D- 0.0 SYSTEM ENVIRONMENT
195#D-     - Define variables for Number of processors
196#D-     - Define MPI variables
197#D-     - Define batch scheduler variables
198#D-     - Source IGCM Library
199#D-     - Get RESOLution in .resol file (temporary)
200#D--------------------------------------------------------------------==
201
202#---------------------------------------------------------------------==
203
204. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
205. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
206. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
207#-------
208. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
209. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
210. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
211. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
212#-------
213( ${DEBUG_debug} ) && IGCM_debug_Check
214( ${DEBUG_debug} ) && IGCM_card_Check
215( ${DEBUG_debug} ) && IGCM_date_Check
216
217#--------------------------------------------------------------------==
218
219#-- Resolution FLAG for oasis input
220#RESOL="ORCA2xLMD9671"
221[ -f ${SUBMIT_DIR}/../.resol ] && RESOL=$(head -1 ${SUBMIT_DIR}/../.resol)
222#-- Chemistrie FLAG to ease chemistries configurations management
223#CHEM="AER"
224[ -f ${SUBMIT_DIR}/../.chimie ] && eval $(grep CHEM ${SUBMIT_DIR}/../.chimie)
225
226#D-
227#D--------------------------------------------------------------------==
228#D- 0.1 COMMON ENVIRONMENT
229#D-     - Read libIGCM compatibility version in config.card
230#D-     - Read UserChoices section
231#D-     - Read Ensemble section
232#D-     - Read Post section
233#D-     - Define all netcdf output directories
234#D--------------------------------------------------------------------==
235IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
236
237if [ ! -r ${SUBMIT_DIR}/run.card ] ; then
238  #================================================#
239  #         The file run.card doesn't exist        #
240  #================================================#
241  FirstInitialize=true
242  #copy initial run.card
243  IGCM_sys_Cp ${SUBMIT_DIR}/run.card.init ${SUBMIT_DIR}/run.card
244  IGCM_debug_Print 2 "run.card copied from run.card.init"
245else
246  FirstInitialize=false
247  IGCM_debug_Print 2 "run.card exists"
248fi
249
250# ------------------------------------------------------------------
251# Activate BigBrother so as to supervise this simulation
252# ------------------------------------------------------------------
253IGCM_debug_BigBro_Initialize
254
255#D-
256#D--------------------------------------------------------------------==
257#D- 1. INITIALIZE CONFIGURATION
258#D-    - Simulation configuration
259#D-    - Simulation parameters
260#D-    - Execution parameter
261#D-    - Define input files directory
262#D-    - Read or initialize CumulPeriod
263#D-    - run.card
264#D--------------------------------------------------------------------==
265IGCM_config_Initialize
266
267# --------------------------------------------------------------------==
268# Define, create and cd RUN_DIR
269# --------------------------------------------------------------------==
270RUN_DIR=${RUN_DIR_PATH}/${config_UserChoices_JobName}.${$}
271IGCM_sys_MkdirWork ${RUN_DIR}
272IGCM_sys_Cd ${RUN_DIR}
273
274# ------------------------------------------------------------------
275# Test if all was right before proceeding further
276# ------------------------------------------------------------------
277IGCM_debug_Verif_Exit
278
279#D-
280#D---------------------------------------------------------------------==
281#D- 2. INITIALIZE ALL COMPONENT OF THE CONFIGURATION
282#D-    - Define component executable
283#D-    - Define Write Frequency by component "1M" "1D" ...
284#D-    - Source ${comp}.driver
285#D-    - Define Storage Places by component
286#D-    - ${comp}_Initialize :
287#D-    - Patterns to sed
288#D-    - Variables from namelist
289#D---------------------------------------------------------------------==
290IGCM_comp_Initialize
291
292#D-
293#D---------------------------------------------------------------------==
294#D- 3. PERFORM GENERAL VERIFICATION
295#D-    - Verify compatibility of period length, write frequencies, ...
296#D-    - Verify compatibility of rebuild choices and post-process choices
297#D-    - Will stop here if something is wrong
298#D---------------------------------------------------------------------==
299IGCM_config_Check
300
301# ------------------------------------------------------------------
302# Test if all was right before entering the period loop
303# ------------------------------------------------------------------
304IGCM_debug_Verif_Exit
305
306#D-
307#D---------------------------------------------------------------------==
308#D- 4. ENTER THE DEEP EXECUTION LOOP
309#D-    ! FASTEN YOUR SEAT BELTS PLEASE. !
310#D-    !   WE WILL CROSS TURBULENCES.   !
311#D---------------------------------------------------------------------==
312
313Period=1
314
315PeriodContinue=false
316if [ ${Period} -le ${PeriodNb} ]; then
317  PeriodContinue=true
318fi
319while ( ${PeriodContinue} ) ; do
320
321  echo
322  echo "Starting iteration ${Period} / ${PeriodNb}"
323
324  #D-
325  # ------------------------------------------------------------------
326  #D-   4.1 COMPUTE AND DEFINE DATE INFORMATION.
327  #D-       - ${PeriodDateBegin}
328  #D-       - ${PeriodDateEnd}
329  #D-       - ${CumulPeriod}
330  #D-       - ${DatesPeriod}=${PeriodDateBegin}_${PeriodDateEnd}
331  #D-       - ${PeriodLength} => JOURS=31 , 28, 29, 30 ; MOIS=0 ; ANS=0
332  #D-       - update run.card value
333  # ------------------------------------------------------------------
334  IGCM_config_PeriodStart
335
336  #D-
337  # ------------------------------------------------------------------
338  #D-   4.2 BEGIN COMPUTATION ONLY IF NEEDED
339  # ------------------------------------------------------------------
340  if [ ${SimulationLengthInDays} -gt ${ExperienceLengthInDays} ] ; then
341    IGCM_debug_Print 1 "break because '${SimulationLengthInDays} -gt ${ExperienceLengthInDays}' : ${SimulationLengthInDays} -gt ${ExperienceLengthInDays}"
342    break ;
343  fi
344
345  #D-
346  # ------------------------------------------------------------------
347  #D-   4.3 CALL OPTIONNAL FUNCTION WITHIN DRIVER
348  #D-       - to set special variables used in lists (Param, Init or Bc).
349  # ------------------------------------------------------------------
350  IGCM_comp_PeriodStart
351
352  #D-
353  # ------------------------------------------------------------------
354  #D-   4.4 GET PARAMETERS TEXT FILES UPDATED BY JOB
355  #D-       - (.def, namelist ...)
356  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
357  # ------------------------------------------------------------------
358  IGCM_comp_GetInputParametersFiles
359
360  #D-
361  # ------------------------------------------------------------------
362  #D-   4.5 GET INITIAL STATE
363  #D-       - (Etat0, carteveg,relief...)
364  #D-       - NECESSARY ONLY IF CumulPeriod= (=> NUMERO) == 1
365  #D-       - AND ???_Restart=NO
366  #D-       - READ AND USE BY GCM FOR ONLY ONE EXECUTION.
367  # ------------------------------------------------------------------
368  IGCM_comp_GetInputInitialStateFiles
369
370  #D-
371  # ------------------------------------------------------------------
372  #D-   4.6 GET BOUNDARIES CONDITIONS
373  #D-       - (SST, WIND[X,Y,Z], LAI ...)
374  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
375  # ------------------------------------------------------------------
376  IGCM_comp_GetInputBoundaryFiles
377
378  #D-
379  # ------------------------------------------------------------------
380  #D-   4.7 GET SmoothFiles CONDITIONS
381  #D-       - (SST, WIND[X,Y,Z], LAI ...)
382  #D-       - READ AND USE BY GCM AT EACH EXECUTION
383  #D-       - Do not change at each ${Period}
384  # ------------------------------------------------------------------
385  IGCM_comp_GetInputSmoothFiles
386
387  #D-
388  # ------------------------------------------------------------------
389  #D-   4.8 GET RESTART FILES
390  #D-       - (restartphy.nc, orca_restart.nc ...)
391  #D-       - READ AND USE BY GCM AT EACH EXECUTION.
392  #D-
393  #D-       - IF A COMPONENT DO NOT RESTART FROM PREVIOULSY COMPUTED RESTART
394  #D-       - ONLY IF CumulPeriod= (=> NUMERO) == 1
395  #D-       - MUST EXECUTE CREATE ETAT0_LIMIT (TYPICALLY LMDZ AND ./create_etat0_limit.e)
396  #D-
397  #D-       - IF CumulPeriod == 1
398  #D-       - AND A COMPONENT RESTART FROM PREVIOULSY COMPUTED RESTART
399  #D-       - MUST BRING THIS RESTART IN ${RUN_DIR_PATH}
400  #D-
401  #D-       - ELSE BRING RESTART FROM ${JobName} IN ${RUN_DIR_PATH}
402  # ------------------------------------------------------------------
403  IGCM_comp_GetInputRestartFiles
404
405  # ------------------------------------------------------------------
406  # Test if all was right before Update
407  # ------------------------------------------------------------------
408  IGCM_debug_Verif_Exit
409
410  #D-
411  # ------------------------------------------------------------------
412  #D-   4.9 ACTIVATE RUNNING ENVIRONNEMENT VARIABLES
413  # ------------------------------------------------------------------
414  IGCM_sys_activ_variables
415
416  #D-
417  # ------------------------------------------------------------------
418  #D-   4.10 UPDATE ParametersFiles
419  #D-        - (.def, namelist ...)
420  #D-        - with current value of (ORCA_NIT00, ORCA_LRSTAR, RAZ_DATE, ...)
421  # ------------------------------------------------------------------
422  IGCM_comp_Update
423
424  # ------------------------------------------------------------------
425  # Test if all was right before execution
426  # ------------------------------------------------------------------
427  IGCM_debug_Verif_Exit
428
429  #D-
430  #D---------------------------------------------------------------------==
431  #D- 5. EXECUTION
432  #D---------------------------------------------------------------------==
433
434  echo
435  echo "#######################################"
436  echo "#      DIR BEFORE RUN EXECUTION       #"
437  echo "#######################################"
438  echo
439  ls -lrt
440
441  echo "========================================================================"
442  if [ ${DRYRUN} -le 1 ] ; then
443    REAL_DATE_INIT=$( date )
444    echo                                                                                   > ${Exe_Output}
445    echo "#######################################"                                        >> ${Exe_Output}
446    echo "EXECUTION of : ${EXECUTION}"
447    echo "EXECUTION of : ${EXECUTION}"                                                    >> ${Exe_Output}
448    echo                                                                                  >> ${Exe_Output}
449    typeset RET
450    RUN_DATE_BEGIN=$( date '+%Y-%m-%dT%H:%M:%S' )
451    ${EXECUTION}  >> ${Exe_Output} 2>&1
452    RET=$?
453    RUN_DATE_END=$( date '+%Y-%m-%dT%H:%M:%S' )
454    if [ ${RET} -gt 0 ] ; then
455      echo "Return code of executable :" ${RET}
456      IGCM_debug_Exit "EXECUTABLE"
457      IGCM_sys_Mkdir ${SUBMIT_DIR}/Debug
458      IGCM_sys_Cp ${Exe_Output} ${SUBMIT_DIR}/Debug/${PREFIX}_${Exe_Output}_error
459      ExecutionFail=true
460    fi
461    echo                                            >> ${Exe_Output}
462    echo "#######################################"  >> ${Exe_Output}
463    echo "libIGCM RunDateBegin=${RUN_DATE_BEGIN}"   >> ${Exe_Output}
464    echo "libIGCM RunDateEnd=${RUN_DATE_END}"       >> ${Exe_Output}
465    echo                                            >> ${Exe_Output}
466  else
467    echo "EXECUTION of : ${EXECUTION} simulated for DRYRUN = " $DRYRUN
468    echo "EXECUTION of : ${EXECUTION} simulated for DRYRUN = " $DRYRUN > ${Exe_Output}
469    if ( $DEBUG_debug ) ; then
470      echo "FOR EXECUTION DRYRUN mode = " $DRYRUN >> stack
471    fi
472  fi
473  echo "========================================================================"
474
475  echo
476  echo "#######################################"
477  echo "#       DIR AFTER RUN EXECUTION       #"
478  echo "#######################################"
479  echo
480  ls -lrt
481
482  #D-
483  #D---------------------------------------------------------------------==
484  #D- 6. POST EXECUTION OPERATIONS
485  #D---------------------------------------------------------------------==
486
487  #D-
488  # ------------------------------------------------------------------
489  #D-   6.1. DESACTIVATE RUNNING ENVIRONNEMENT VARIABLES
490  # ------------------------------------------------------------------
491  IGCM_sys_desactiv_variables
492
493  #D-
494  # ------------------------------------------------------------------
495  #D-   6.2. SAVE OUTPUTS
496  #D-        - On archive/storage machine
497  #D-        - netcdf outputs, restarts and text files of models
498  # ------------------------------------------------------------------
499  IGCM_comp_Finalize
500
501  # ------------------------------------------------------------------
502  # Test if all was right after Finalize
503  # ------------------------------------------------------------------
504  IGCM_debug_Verif_Exit
505
506  #D-
507  # ------------------------------------------------------------------
508  #D-   6.3. CONFIGURE POST-PROCESSING
509  #D-        - asynchronous post-treatment (Level 0) when necessary (rebuild/pack)
510  #D-        - classic post-treatment      (Level 1) when necessary (TimeSeries/Seasonal)
511  # ------------------------------------------------------------------
512  IGCM_post_Configure
513
514  #D-
515  # ------------------------------------------------------------------
516  #D-   6.4. SUBMIT POST-PROCESSING
517  #D-        - remote rebuild or/and post-treatment process if necessary
518  # ------------------------------------------------------------------
519  IGCM_post_Submit
520
521  #D-
522  # ------------------------------------------------------------------
523  #D-   6.5. FINALYZE CURRENT LOOP AND PREPARE NEXT ONE
524  #D-        - Manage executable size to save only different binary
525  #D-        - Write in run.card user, system and elapse time
526  #D-        - Check that everything went well ! No ? then we stop.
527  #D-        - Determine next computed period
528  # ------------------------------------------------------------------
529  IGCM_config_PeriodEnd
530
531  echo "Ending iteration ${Period}"
532  (( Period = Period + 1 ))
533
534  # End loop if date end is reached
535  if [ ${SimulationLengthInDays} -ge ${ExperienceLengthInDays} ] ; then
536    break ;
537  fi
538
539  PeriodContinue=false
540  if [ ${Period} -le ${PeriodNb} ]; then
541    PeriodContinue=true
542  fi
543done
544
545#D-
546#D---------------------------------------------------------------------==
547#D- 7. SUBMIT NEXT JOB OR SEND MAIL IF SIMULATION IS OVER.
548#D---------------------------------------------------------------------==
549IGCM_config_Finalize
550
551date
Note: See TracBrowser for help on using the repository browser.