source: CONFIG_DEVT/ORCHIDEE_OL_TP/ENSEMBLE/Job_ENSEMBLE @ 6327

Last change on this file since 6327 was 5570, checked in by aclsce, 3 years ago

Created ORCHIDEE_OL_TP configuration : temporary configuration to be used during prectical session.

  • Property svn:executable set to *
File size: 18.6 KB
Line 
1#!/bin/ksh
2
3# $Date: 2010/06/25 19:03:52 $
4# $Author: ssipsl $
5# $Revision: 1.13 $
6# IPSL (2006)
7#  This software is governed by the CeCILL licence see ORCHIDEE/ORCHIDEE_CeCILL.LIC
8
9#D--------------------------------------------------------------------==
10#D--------------------------------------------------------------------==
11#D-
12#D-                      Job to launch ENSEMBLE spinup simulations
13#D-
14#D--------------------------------------------------------------------==
15#D--------------------------------------------------------------------==
16#D-
17#                       Job inspired from Sonke Zaehle "site_new.def" job
18#                       #################################################
19
20export BRIDGE_MSUB_PROJECT=gen6328
21
22if [ $# -lt 1 ] ; then
23   echo ""
24   echo "ERROR: Bad usage. You must give the name of the card as argument."
25   echo ""
26   echo "Do as follow for fluxnet simulation with fluxnet.card:"
27   echo "   ./Job_ENSEMBLE fluxnet  > out_Job_ENSEMBLE"
28   echo "Do as follow for ensemble simulation with ensemble.card:"
29   echo "   ./Job_ENSEMBLE ensemble > out_Job_ENSMEBLE"
30   echo ""
31   exit
32fi
33
34SUBMIT_DIR=$( pwd )
35MODIPSL=$(cd ${SUBMIT_DIR}'/../../..';pwd;)
36libIGCM=${MODIPSL}/libIGCM
37
38
39# All SubJobs in SPINUP in ONE OR MORE YEARS run (must be used with libIGCM branches/AllPostFred).
40
41#D--------------------------------------------------------------------==
42#D-                   -1. User modification place
43#D--------------------------------------------------------------------==
44
45#D- Increased verbosity (1, 2, 3)
46#Verbosity=3
47
48#D-
49# --------------------------------------------------------------------
50#D- ! Optionnal features /!\ Use with care !
51# --------------------------------------------------------------------
52
53#D- Low level debug : to bypass lib test checks and stack construction
54#D- Default=true
55DEBUG_debug=false
56
57#D- Set DEBUG_sys to false to disable output calls of function
58#D- Default=true
59#DEBUG_sys=false
60
61#D- Turn in dry run mode ? (0,1,2,3)
62#D- Default=0
63#DRYRUN=3
64# YOemble.ksh MUST COMPILE YOUR EXE FILES FOR DRYRUN MODE !
65# -------------------------------------------------------------------------------------
66# | DRYRUN=  |  Date computations, | sys_Get    |  Exe    | sys_Put_Out; sys_Put_Rest |
67# |          |  Cp/Exe param files |            |  Chmod  |                           |
68# |          |      Qsub           |            |         |                           |
69# -------------------------------------------------------------------------------------
70# |    0     |       yes           |    yes     |  yes    |      yes                  |
71# -------------------------------------------------------------------------------------
72# |    1     |       yes           |    yes     |  yes    |      no                   |
73# -------------------------------------------------------------------------------------
74# |    2     |       yes           |    yes     |  no     |      no                   |
75# -------------------------------------------------------------------------------------
76# |    3     |       yes           |    no      |  no     |      no                   |
77# -------------------------------------------------------------------------------------
78
79
80#D-
81#D--------------------------------------------------------------------==
82#D-                   0. System Environment
83#D-                      - Define variables for Number of processors
84#D-                      - Define MPI variables
85#D-                      - Define batch scheduler variables
86#D-                      - Source IGCM Library
87#D-                      - Get RESOLution in .resol file (temporary)
88#D--------------------------------------------------------------------==
89
90#D--------------------------------------------------------------------==
91#TaskType=post-processing
92
93. ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh
94. ${libIGCM}/libIGCM_card/libIGCM_card.ksh
95. ${libIGCM}/libIGCM_date/libIGCM_date.ksh
96#-------
97. ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh
98. ${libIGCM}/libIGCM_config/libIGCM_config.ksh
99. ${libIGCM}/libIGCM_comp/libIGCM_comp.ksh
100. ${libIGCM}/libIGCM_post/libIGCM_post.ksh
101#-------
102( ${DEBUG_debug} ) && IGCM_debug_Check
103( ${DEBUG_debug} ) && IGCM_card_Check
104( ${DEBUG_debug} ) && IGCM_date_Check
105
106#D--------------------------------------------------------------------==
107#D- 0.1 COMMON ENVIRONMENT
108#D-     - Read libIGCM compatibility version in config.card
109#D-     - Read UserChoices section
110#D-     - Read Ensemble section
111#D-     - Read Post section
112#D-     - Define all netcdf output directories
113#D--------------------------------------------------------------------==
114IGCM_config_CommonConfiguration ${SUBMIT_DIR}/config.card
115
116
117
118#D--------------------------------------------------------------------==
119#D- 1. INITIALIZE CONFIGURATION
120#D-    - Simulation configuration
121#D-    - Simulation parameters
122#D-    - Execution parameter
123#D-    - Define input files directory
124#D-    - Read or initialize CumulPeriod
125#D-    - run.card
126#D---------------------------------------------------------------------==
127IGCM_config_Initialize
128
129
130
131IGCM_sys_Cp -p ensemble.card ref.card
132IGCM_sys_Cp -p $1.card ensemble.card
133
134
135#set -vx
136
137IGCM_sys_MkdirWork ${RUN_DIR_PATH}
138
139. ${SUBMIT_DIR}/ensemble.ksh
140
141ENSEMBLE_initialize
142
143
144IGCM_sys_MkdirWork ${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_UserChoices_JobName}
145
146
147function correct_duree
148{
149    # Ths function compute the nearest multiple of dyear near duree
150    typeset duree dyear
151    duree=$1
152    dyear=$2
153    if [ $(( duree % dyear )) -gt 0 ] ; then
154        echo $(( ( duree / dyear + 1 ) * dyear ))
155    else
156        echo ${duree}
157    fi
158}
159
160# Path for all skeleton SubJob scripts to SPINUP directory
161Skeleton_Path=$( cd ../SPINUP/SUBJOB/; pwd )
162
163
164for group in  ${ensemble_CONFIG_Groups[*]} ; do
165   isite=1
166   index=0
167
168   eval temp=\${ensemble_CONFIG_${group}[*]}
169   set -A group_site -- $temp
170
171   # Number of sites :
172   NumSites=$(( ${#group_site[*]} / NumInfosBySite ))
173   NumAllSites=$(( NumAllSites + NumSites ))
174
175   while [ ${isite} -le ${NumSites} ] ; do
176   
177    site=${group_site[$index]}
178
179    echo "   ------------------------"
180    echo "   SPINUP for Site : ${site}"
181
182    DATE0_YEAR=${group_site[ $(( index + ColumnYear )) ]}
183    TIME_YEAR=${group_site[ $(( index + ColumnLength )) ]}
184    Stand_Age=${group_site[ $(( index + ColumnAge )) ]}
185
186
187    if [ X${ensemble_UserChoices_CRUP} == 'Xy' ] ; then
188         west=$( echo ${group_site[ $(( index + ColumnLon )) ]}|cut -f1 -d"." )
189         east=$(( west + 1 ))
190         south=$( echo ${group_site[ $(( index + ColumnLat )) ]}|cut -f1 -d"." )
191         north=$(( south + 1 ))
192    fi
193
194    if [ ${Stand_Age} -gt 150 ] ; then
195        DATE_END_SECTOF=150
196    else
197        DATE_END_SECTOF=$((Stand_Age - TIME_YEAR))
198    fi
199
200#######################################################
201# Script internal settings
202# nothing to be modified below this line
203######################################################?
204
205# Copy the SPINUP directory
206    SubJobName=${site}${config_UserChoices_JobName}
207    New_SUBMIT_DIR=${SUBMIT_DIR}/${SubJobName}
208    IGCM_sys_Cp -Rp ../SPINUP ${New_SUBMIT_DIR}
209#     ls -la ${New_SUBMIT_DIR}
210#     cat ${New_SUBMIT_DIR}/config.card
211#     echo "---"
212
213    # Install this directory
214    # modifications on config.card
215    MyJobName=${config_UserChoices_JobName}
216    IGCM_card_DefineVariableFromOption ${New_SUBMIT_DIR}/config.card UserChoices JobName
217    OldJobName=${config_UserChoices_JobName}
218    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices JobName ${SubJobName}
219    config_UserChoices_JobName=${MyJobName}
220    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card UserChoices TagName
221    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices TagName ${config_UserChoices_TagName}
222    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices CalendarType ${config_UserChoices_CalendarType}
223
224    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices JobNumProcTot ${config_UserChoices_JobNumProcTot}
225
226    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices JobNumProcTot ${config_UserChoices_JobNumProcTot}
227
228    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices SpaceName ${config_UserChoices_SpaceName}
229
230    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices ExperimentName ${config_UserChoices_ExperimentName}
231
232    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices ARCHIVE ${config_UserChoices_ARCHIVE}
233
234    # Give path for all skeleton SubJob scripts to SPINUP directory
235    IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices SubJobPath ${Skeleton_Path}
236
237    # All SubJobs in SPINUP in one or more years (must be used with libIGCM branches/AllPostFred).
238    # It is the length of the forcing file.
239    if [ X"${config_UserChoices_CalendarType}" = X"360d" ] ; then
240        This_Job_DateEnd=$(( DATE0_YEAR + TIME_YEAR - 1 ))1230
241        This_Job_HumanDateEnd=$(( DATE0_YEAR + TIME_YEAR - 1 ))-12-30
242    else
243        This_Job_DateEnd=$(( DATE0_YEAR + TIME_YEAR - 1 ))1231
244        This_Job_HumanDateEnd=$(( DATE0_YEAR + TIME_YEAR - 1 ))-12-31
245    fi
246
247    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices DateBegin ${DATE0_YEAR}-01-01
248    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices PeriodLength ${TIME_YEAR}Y
249
250    # DateEnd is defined by SpinUp job itself (it will be modified in config.card).
251    # but to get all SpinUp Job loops, we have to add at least a number of years greater
252    # than those that will be modified in config.card. Default is 150.00.00 years more for SpinUp.
253    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices DateEnd $(( DATE0_YEAR + 150 ))-01-01
254
255    # Infinit SPINUP Job :
256    IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card UserChoices PeriodNb 99999
257
258    # SRF section : first restart and post-treatments
259    typeset option
260    for option in ${config_SRF[*]} ; do
261        eval value=\${config_SRF_${option}}
262        eval echo ${option} ${value}
263        if [ X${value} != X ] ; then
264            eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card SRF ${option} \${config_SRF_${option}}
265        fi
266    done
267    if [ X"${ensemble_UserChoices_ok_stomate}" = "Xy" ] ; then
268        for option in ${config_SBG[*]} ; do
269            eval value=\${config_SBG_${option}}
270            eval echo ${option} ${value}
271            if [ X${value} != X ] ; then
272                eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card SBG ${option} \${config_SBG_${option}}
273            fi
274        done
275    fi
276
277    # modifications on spinup.card
278    IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card SubJobForcingFile List "(${ensemble_CONFIG_ForcingPath}/${group_site[$(( index + ColumnFilename ))]}, forcing_file.nc)"
279
280    typeset option
281    for option in ${ensemble_UserChoices[*]} ; do
282        eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices ${option} \${ensemble_UserChoices_${option}}
283    done
284
285
286    IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices DRIVER_NORESTART y
287    IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices DRIVER_TIMELENGTH n
288
289    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_nostomate $( correct_duree ${ensemble_SPINUP_duree_nostomate} ${TIME_YEAR} )
290    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_inistomate $( correct_duree ${ensemble_SPINUP_duree_inistomate} ${TIME_YEAR} )
291    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_offlineini $( correct_duree ${ensemble_SPINUP_duree_offlineini} ${TIME_YEAR} )
292    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices n_iter ${ensemble_SPINUP_n_iter} 
293    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_sechiba $( correct_duree ${ensemble_SPINUP_duree_sechiba} ${TIME_YEAR} )
294    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_stomate $( correct_duree ${ensemble_SPINUP_duree_stomate} ${TIME_YEAR} )
295    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_carbonsol $( correct_duree ${ensemble_SPINUP_duree_carbonsol} ${TIME_YEAR} )
296    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices duree_final $(correct_duree ${DATE_END_SECTOF} ${TIME_YEAR})
297    eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices CLEARCUT ${ensemble_SPINUP_CLEARCUT}
298
299    if [ X${ensemble_UserChoices_CRUP} == 'Xy' ] ; then
300         eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices pix_west ${west}
301         eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices pix_east ${east}
302         eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices pix_south ${south}
303         eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices pix_north ${north}
304         eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices CRUP ${ensemble_UserChoices_CRUP}
305    fi
306
307    IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card UserChoices BoundaryFilesListNonDel y
308
309    # TimeSeries : ALMAOUTPUT for SECHIBA
310    typeset option
311    for option in ${config_SubJobPost[*]} ; do
312        eval value=\${config_SubJobPost_${option}}
313        eval echo ${option} ${value}
314        if [ X${value} != X ] ; then
315            eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/config.card SubJobPost ${option} \${config_SubJobPost_${option}}
316        fi
317    done
318
319    # modifications on Job script
320    rm ${New_SUBMIT_DIR}/Job_${OldJobName}
321    IGCM_sys_Cp ${SUBMIT_DIR}/Job_${MyJobName} ${New_SUBMIT_DIR}/Job_${SubJobName}
322
323    sed -e "s/ ${MyJobName}/ ${SubJobName}/" \
324        -e "s/Script_Output_${MyJobName}/Script_Output_${SubJobName}/" \
325        -e "s/\(IGCM_config_Finalize\)/\1\nif\ [\ \${config_UserChoices_JobName}\ =\ \"${SubJobName}\"\ ]\nthen\nIGCM_sys_Mv\ \${R_OUT}\/\${config_UserChoices_TagName}\/\${config_UserChoices_SpaceName}\/\${config_UserChoices_ExperimentName}\/\${config_UserChoices_JobName}\ \${R_OUT}\/\${config_UserChoices_TagName}\/\${config_UserChoices_SpaceName}\/\${config_UserChoices_ExperimentName}\/${config_UserChoices_JobName}\/\nIGCM_sys_Mv\ \${R_OUT}\/\${config_UserChoices_TagName}\/\${config_UserChoices_SpaceName}\/\${config_UserChoices_ExperimentName}\/\${config_UserChoices_JobName}HIST\ \${R_OUT}\/\${config_UserChoices_TagName}\/\${config_UserChoices_SpaceName}\/\${config_UserChoices_ExperimentName}\/${config_UserChoices_JobName}\/\nfi/" \
326        ${New_SUBMIT_DIR}/Job_${SubJobName} > ${New_SUBMIT_DIR}/Job_${SubJobName}_
327    IGCM_sys_Mv ${New_SUBMIT_DIR}/Job_${SubJobName}_ ${New_SUBMIT_DIR}/Job_${SubJobName}
328    chmod u+x ${New_SUBMIT_DIR}/Job_${SubJobName}
329
330
331    # modification on parameter files
332    if [ ! -f ${SUBMIT_DIR}/PARAM/run.def ] ; then
333        echo "#ENSEMBLE add :" > ${New_SUBMIT_DIR}/PARAM/run.def
334    else
335        IGCM_sys_Cp ${SUBMIT_DIR}/PARAM/run.def ${New_SUBMIT_DIR}/PARAM/run.def
336        echo "#ENSEMBLE add :" >> ${New_SUBMIT_DIR}/PARAM/run.def
337    fi
338    echo "" >> ${New_SUBMIT_DIR}/PARAM/run.def
339
340    eval first_option=${ensemble_SubJobParams[0]} > /dev/null 2>&1
341    if [ X${first_option} != X"Error:" ] ; then
342        IGCM_card_DefineArrayFromSection ${New_SUBMIT_DIR}/COMP/spinup.card SubJobParams
343        eval first_option=${spinup_SubJobParams[0]} > /dev/null 2>&1
344
345        typeset option option_
346        for option in ${ensemble_SubJobParams[*]} ; do
347            echo "For parameter file run.def"
348            eval echo "${option}="\${ensemble_SubJobParams_${option}}
349            eval ORCHIDEE_grep ${option}
350            if [ ${SearchParam} == "undefined" ] ; then
351                echo "ERROR : parameter ${option} doesn't exist in run parameter file !"
352                echo "You must correct subjobparam option in your card file or add new parameter in run.def file"
353                echo "We must STOP here."
354                exit 1
355            fi
356            eval param=\${ensemble_SubJobParams_${option}}
357            eval ORCHIDEE_def ${option} $param
358           
359            if [ X${first_option} != X"Error:" ] ; then
360                for option_ in ${spinup_SubJobParams[*]} ; do
361                    echo "option=" ${option} " option_=" ${option_}
362                    if [ X${option} == X${option_} ] ; then
363                        eval IGCM_card_WriteOption ${New_SUBMIT_DIR}/COMP/spinup.card SubJobParams ${option} $param
364                    fi
365                done
366            fi
367        done
368    fi
369
370    (( iphys = 0 ))
371    if [ X${ensemble_UserChoices_CRUP} == 'Xy' ] ; then
372        (( indext = index + 7 ))
373    else
374        (( indext = index + 5 ))
375    fi
376    while [ $iphys -lt ${ensemble_CONFIG_NbSitesParam} ] ; do
377       
378        # Detect if physical parameter has
379        #  array description or line per PFT description in the parameter file
380        SearchParam=""
381        ORCHIDEE_grep ${ensemble_CONFIG_NameSitesParam[${iphys}]}
382
383        case ${SearchParam} in
384            undefined)
385                echo "ERROR : parameter ${ensemble_CONFIG_NameSitesParam[${iphys}]} doesn't exist in run.def parameter file !"
386                echo "You must correct NameSiteParam option in your card file or add new parameter in run.def file"
387                echo "We must STOP here."
388                exit 1
389                ;;
390            value)
391                ORCHIDEE_def ${ensemble_CONFIG_NameSitesParam[${iphys}]} ${group_site[$(( indext )) ]}
392                (( indext = indext + 1 ))
393                ;;
394            line)
395                ipft=1
396                while [ $ipft -le ${NbPFTs} ] ; do
397                    if [ $ipft -lt 10 ] ; then
398                        numpft=0${ipft}
399                    else
400                        numpft=${ipft}
401                    fi
402           
403                    ORCHIDEE_def ${ensemble_CONFIG_NameSitesParam[${iphys}]}__${numpft} ${group_site[$(( indext )) ]}
404                    (( indext = indext + 1 ))
405                    (( ipft = ipft + 1 ))
406                done
407                ;;
408            vector)
409                unset ValueSiteParams
410                ipft=0
411                while [ $ipft -lt ${NbPFTs} ] ; do
412                    ValueSiteParams[${ipft}]=${group_site[$(( indext )) ]}
413                    (( indext = indext + 1 ))
414                    (( ipft = ipft + 1 ))
415                done
416                ORCHIDEE_def ${ensemble_CONFIG_NameSitesParam[${iphys}]} "${ValueSiteParams[*]}"
417                ;;
418        esac
419
420        (( iphys = iphys + 1 ))
421    done
422
423    IGCM_debug_Verif_Exit
424
425# Lauch the SPINUP Job :
426
427    echo "#!/bin/ksh" > ${RUN_DIR_PATH}/SubJob${site}.ksh
428    echo "MODIPSL=${MODIPSL}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
429    echo "libIGCM=${libIGCM}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
430    echo "cd ${New_SUBMIT_DIR}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
431    echo "export SUBMIT_DIR=${New_SUBMIT_DIR}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
432    echo ". ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
433    echo ". ${libIGCM}/libIGCM_sys/libIGCM_sys.ksh" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
434    echo "export Script_Output=out_qsub_${SubJobName}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
435    echo "export config_UserChoices_JobName=${SubJobName}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
436    echo "export CumulPeriod=1" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
437#    echo "nohup Job_${SubJobName}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
438    echo "IGCM_sys_Qsub Job_${SubJobName}" >> ${RUN_DIR_PATH}/SubJob${site}.ksh
439
440    if [ ${DRYRUN} -le 1 ] ; then
441        chmod u+x ${RUN_DIR_PATH}/SubJob${site}.ksh
442        nohup ${RUN_DIR_PATH}/SubJob${site}.ksh
443    fi
444
445    IGCM_debug_Verif_Exit
446
447    (( isite=isite+1 ))
448    (( index=index+NumInfosBySite ))
449done
450done
451
452IGCM_sys_Mv ref.card ensemble.card
453IGCM_sys_RmRunDir -Rf ${RUN_DIR_PATH}
Note: See TracBrowser for help on using the repository browser.