New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
job_ORCA2_LIM_PISCES.ksh in trunk/NVTK/INSTALL/JOBS – NEMO

source: trunk/NVTK/INSTALL/JOBS/job_ORCA2_LIM_PISCES.ksh @ 2040

Last change on this file since 2040 was 2040, checked in by clevy, 14 years ago

[NVTK scripts in INSTALL/JOBS update, see ticket:#697]

File size: 13.9 KB
Line 
1# $Id: job_ORCA2_LIM.ksh 1301 2009-02-09 17:15:38Z ctlod $
2set -xv
3
4CONF=ORCA2_LIM_PISCES
5# Variables changed by lance_batch.ksh script
6RUN=xxx
7NB_PROCS=xxx
8LAUNCH=xxx
9LEXE=xxx
10CPERF=xxx
11D_INPUT=xxx
12D_GET=xxx
13REF_TAG=xxx
14MYO_EXP=xxx
15TSYMB=xxx
16USE_IOMPUT=xxx
17USE_IOSERVER=xxx
18NB_PROCS_IOSERVER=xxx
19
20
21# Variables changed by ins_valid.ksh script
22MAINDIR=/workdir/rech/eee/reee534/AUTRE
23WORK=/workdir/rech/eee/reee534/AUTRE/modipsl/config/
24REF_OD=/u/rech/eee/reee831/NEMO_VALIDATION
25
26# Arguments
27# type = 'long' or '1_short' or '2_short'
28type=$1
29
30case ${type} in
31        'long' ) 
32             DIROUT='LONG'
33             ITERATIONS=300 ;;
34             
35        '1_short' ) 
36             DIROUT='1_SHORT'
37             ITERATIONS=150 ;;
38             
39        '2_short' ) 
40             DIROUT='2_SHORT'
41             ITERATIONS=150 ;;
42
43        'gtime' ) 
44             DIROUT='GTIME'
45             ITERATIONS=5475 ;;
46esac
47
48# Working directory
49cd ${TMPDIR}
50#-T- osxxlf mkdir -p ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/RUN
51#-T- osxxlf cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/RUN
52#-T- osxxlf zback=$?
53#-T- osxxlf if [ ${zback} = 0 ] ; then rm -rf namelist* *.nc memory* solver.stat ocean.output* mpp.output* mono.output* ; fi
54
55##############################################################
56##############################################################
57##############################################################
58###             Input files
59##############################################################
60##############################################################
61##############################################################
62# Local function to copy namelists files
63get_namelist () {
64    if [ -a $1/$2_$3 ] ; then
65        cp $1/$2_$3 $4
66    else
67        echo '                ###############################################################'
68        echo '                ######################## W A R N I N G ########################'
69        echo '                ######################## W A R N I N G ########################'
70        echo '                ######################## W A R N I N G ########################'
71        echo '                ###############################################################'
72        echo "              $2_$3 file doesn't exist, we use the standard $2"
73        echo '                ###############################################################'
74        echo '                ######################## W A R N I N G ########################'
75        echo '                ######################## W A R N I N G ########################'
76        echo '                ######################## W A R N I N G ########################'
77        echo '                ###############################################################'
78        cp $1/$2 $4
79    fi
80}
81
82# Local function to find namelists parameters
83supergrep () {
84    grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%"
85}
86
87# Ocean namelist
88LOC_NAM=${MAINDIR}/modipsl/config/${CONF}/EXP00
89get_namelist ${LOC_NAM} namelist ${MYO_EXP} namelist
90
91# Sea-Ice namelist
92get_namelist ${LOC_NAM} namelist_ice_lim2 ${MYO_EXP} namelist_ice
93
94# Passive transport namelist
95get_namelist ${LOC_NAM} namelist_top ${MYO_EXP} namelist_top
96
97# Pisces namelist
98get_namelist ${LOC_NAM} namelist_pisces ${MYO_EXP} namelist_pisces
99get_namelist ${LOC_NAM} kRGB61.txt      ${MYO_EXP} kRGB61.txt
100
101# Local function to find namelists parameters
102supergrep () {
103    grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%"
104}
105
106# namelist modifications
107PAT_NIT000=$( supergrep nn_it000           namelist )
108PAT_NITEND=$( supergrep nn_itend           namelist )
109PAT_NSTOCK=$( supergrep nn_stock           namelist )
110PAT_NWRITE=$( supergrep nn_write           namelist )
111PAT_NRSTDT=$( supergrep nn_rstctl          namelist )
112PAT_NBITCM=$( supergrep nn_bit_cmp         namelist )
113PAT_TRACEN=$( supergrep ln_traadv_cen2     namelist )
114PAT_TRATVD=$( supergrep ln_traadv_tvd      namelist )
115PAT_N_CLAA=$( supergrep nn_cla             namelist )
116PAT_NSOLVV=$( supergrep nn_solv            namelist )
117PAT_RESTAR=$( supergrep ln_rstart          namelist )
118PAT_RESMLD=$( supergrep ln_trdmld_restart  namelist )
119PAT_NN_FWB=$( supergrep nn_fwb             namelist )
120PAT_NNSSSR=$( supergrep nn_sssr            namelist )
121
122sed -e "s%$PAT_RESTAR%   ln_rstart   =  .false.%"          \
123    -e "s%$PAT_NIT000%   nn_it000     =     1   %"           \
124    -e "s%$PAT_NITEND%   nn_itend     =     ${ITERATIONS} %" \
125    -e "s%$PAT_NSTOCK%   nn_stock     =     ${ITERATIONS} %" \
126    -e "s%$PAT_NWRITE%   nn_write     =     75  %"           \
127    -e "s%$PAT_NRSTDT%   nn_rstctl    =     0   %"           \
128    -e "s%$PAT_NBITCM%   nn_bit_cmp   =     1%"              \
129    -e "s%$PAT_TRACEN%   ln_traadv_cen2   =  .false.%"     \
130    -e "s%$PAT_TRATVD%   ln_traadv_tvd    =  .true.%"      \
131    -e "s%$PAT_N_CLAA%   nn_cla   = 0%"                     \
132    -e "s%$PAT_NSOLVV%   nn_solv     =      2%"              \
133    -e "s%$PAT_RESMLD%   ln_trdmld_restart =  .false.%" \
134    -e "s%$PAT_NN_FWB%   nn_fwb      =      0%"              \
135    -e "s%$PAT_NNSSSR%   nn_sssr     =      1%"  namelist > nam.tmp
136
137mv nam.tmp namelist
138
139# namelist top modifications
140PAT_NWRTRC=$( supergrep nwritetrc         namelist_top )
141PAT_LRSTTR=$( supergrep ln_rsttr            namelist_top )
142PAT_NRSTTR=$( supergrep nrsttr            namelist_top )
143PAT_TRCRAD=$( supergrep ln_trcrad         namelist_top )
144
145sed -e "s%$PAT_NWRTRC%   nwritetrc   = ${ITERATIONS}%" \
146    -e "s%$PAT_LRSTTR%   ln_rsttr      =  .false.%"      \
147    -e "s%$PAT_NRSTTR%   nrsttr      =     0   %"       \
148    -e "s%$PAT_TRCRAD%   ln_trcrad   =  .false.%" namelist_top > nam.tmp     
149
150mv nam.tmp namelist_top
151
152# namelist pisces modifications
153PAT_DUSTF=$( supergrep ln_dustfer        namelist_pisces )
154PAT_RIVER=$( supergrep ln_river          namelist_pisces )
155PAT_NDEPO=$( supergrep ln_ndepo          namelist_pisces )
156PAT_SEDIN=$( supergrep ln_sedinput       namelist_pisces )
157
158sed -e "s%$PAT_DUSTF%   ln_dustfer    =  .false.%"  \
159    -e "s%$PAT_RIVER%   ln_river      =  .false.%"  \
160    -e "s%$PAT_NDEPO%   ln_ndepo      =  .false.%"  \
161    -e "s%$PAT_SEDIN%   ln_sedinput   =  .false.%" namelist_pisces > nam.tmp     
162
163mv nam.tmp namelist_pisces
164
165# iom_put xml file
166if [ "${USE_IOMPUT}" = "true" ]
167then
168    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def
169    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml
170    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$
171    mv tmp$$ xmlio_server.def
172fi
173
174# Get forcing files
175${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.2.tar ORCA2_LIM_nemo_v3.2.tar
176tar xvf ORCA2_LIM_nemo_v3.2.tar
177rm -f ORCA2_LIM_nemo_v3.2.tar
178
179# Get forcing pisces files
180${D_GET} ${D_INPUT}/INPUTS_PISCES_v3.tar INPUTS_PISCES_v3.tar
181tar xvf INPUTS_PISCES_v3.tar
182rm -f INPUTS_PISCES_v3.tar
183
184# Get restarts files if needed
185if [ $type = '2_short' ]
186then
187    if [ ${RUN} = 'mon' -o ${RUN} = 'omp' ] ; then
188        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*_restart.nc restart.nc
189        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_ice.nc restart_ice_in.nc
190        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_trc.nc restart_trc.nc
191    fi
192
193    if [ ${RUN} = 'mpi' ] ; then
194        typeset -Z4 i=0
195        while [ $i -lt $NB_PROCS ]
196        do
197           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*_restart_${i}.nc restart_${i}.nc
198           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_ice_${i}.nc restart_ice_in_${i}.nc
199           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_trc_${i}.nc restart_trc_${i}.nc
200           let i=$i+1
201        done
202    fi
203
204    # Ocean namelist modifications
205    PAT_NIT000=$( supergrep nn_it000             namelist )
206    PAT_NITEND=$( supergrep nn_itend             namelist )
207    PAT_NRSTDT=$( supergrep nn_rstctl             namelist )
208    PAT_RESTAR=$( supergrep ln_rstart          namelist )
209    PAT_RESMLD=$( supergrep ln_trdmld_restart  namelist )
210    ORCA_NIT000=$(( $ITERATIONS + 1 ))
211    ORCA_NITEND=$(( $ITERATIONS*2 ))
212   
213    sed  -e "s%$PAT_RESTAR%   ln_rstart   =  .true.%"          \
214         -e "s%$PAT_NIT000%   nn_it000     =     $ORCA_NIT000 %" \
215         -e "s%$PAT_NITEND%   nn_itend     =     $ORCA_NITEND %" \
216         -e "s%$PAT_NRSTDT%   nn_rstctl     =     2%"             \
217         -e "s%$PAT_RESMLD%   ln_trdmld_restart =  .true.%" namelist > nam.tmp
218   
219    mv nam.tmp namelist
220
221   # Biogeochemistry namelist modifications
222    PAT_LRSTTR=$( supergrep ln_rsttr        namelist_top )
223    PAT_NRSTTR=$( supergrep nrsttr        namelist_top )
224
225    sed -e "s%$PAT_LRSTTR%   ln_rsttr     = .true. %"  \
226        -e "s%$PAT_NRSTTR%   nrsttr     = 2%" namelist_top > nam.tmp
227
228    mv nam.tmp namelist_top
229
230   PAT_PISDMP=$( supergrep ln_pisdmp     namelist_pisces )
231   sed -e "s%$PAT_PISDMP%  ln_pisdmp     = .false.%" namelist_pisces > nam.tmp
232   mv nam.tmp namelist_pisces
233fi
234
235##############################################################
236##############################################################
237##############################################################
238###             Launch run
239##############################################################
240##############################################################
241##############################################################
242
243cp ${MAINDIR}/modipsl/bin/opa_${CONF}_${RUN}_${MYO_EXP} opa_${CONF}_${RUN}_${MYO_EXP}
244cp ${MAINDIR}/modipsl/bin/opa_${CONF}_memo_${MYO_EXP} opa_${CONF}_memo_${MYO_EXP}
245chmod 777 opa_${CONF}_${RUN}_${MYO_EXP}
246chmod 777 opa_${CONF}_memo_${MYO_EXP}
247
248#
249# Profiling & Executable memory size
250####################################
251touch memory_size.txt
252
253case ${RUN} in
254        'mon' ) 
255#-T- sx8brodie export F_PROGINF=detail
256#-T- sx8brodie echo "Stack memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"    >> memory_size.txt
257#-T- sx8brodie echo "Static memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"   >> memory_size.txt  ;;
258#-T- sx8mercure export F_PROGINF=detail
259#-T- sx8mercure echo "Stack memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"    >> memory_size.txt
260#-T- sx8mercure echo "Static memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"   >> memory_size.txt  ;;
261#-T- aix6 echo "Stack memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"    >> memory_size.txt
262#-T- aix6 echo "Static memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"   >> memory_size.txt ;;
263#-T- osxxlf echo "Stack memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"    >> memory_size.txt
264#-T- osxxlf echo "Static memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"   >> memory_size.txt ;;
265        'mpi' ) 
266#-T- sx8brodie export MPIPROGINF=detail ;;
267#-T- sx8mercure export MPIPROGINF=detail ;;
268#-T- aix6     ;;
269#-T- osxxlf   ;;
270        'omp' ) 
271#-T- sx8brodie export F_PROGINF=detail
272#-T- sx8brodie export OMP_NUM_THREADS=${NB_PROCS} ;;
273#-T- sx8mercure export F_PROGINF=detail
274#-T- sx8mercure export OMP_NUM_THREADS=${NB_PROCS} ;;
275#-T- aix6     ;;
276#-T- osxxlf   ;;
277esac
278#
279# >>>>>> EXECUTION < < < <
280##########################
281
282case ${RUN} in
283        'mon' | 'omp' ) 
284              ${CPERF} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
285        'mpi' ) 
286#-T- sx8brodie         ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
287#-T- sx8mercure        ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
288#-T- aix6              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
289#-T- osxxlf   mpd&
290#-T- osxxlf   sleep 5
291#-T- osxxlf   ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP}
292#-T- osxxlf   mpdallexit ;;
293esac
294
295ls -l
296#
297
298##############################################################
299##############################################################
300##############################################################
301###             Save output files
302##############################################################
303##############################################################
304##############################################################
305case ${RUN} in
306   'mon' | 'omp' )
307               liste_files='*abort* memory* namelist* *xml* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;;
308   'mpi' )
309               liste_files='*abort* namelist* *xml* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;;
310esac
311
312# Ensure that all files saved are coming from the current run
313ind=1
314for k in $liste_files
315do
316   echo $k > temp
317   var=$( ( awk '{printf("%-.4s", varin ) } ' varin=$k temp ) )
318   if [ ${ind} = 1 -a ${var} = 'perf' ] ; then
319       kc='perf*'
320       rm -f ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/${kc}
321       ind=0
322   fi
323   cp $k ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/$k
324done
325
326##############################################################
327##############################################################
328##############################################################
329###             Retrieve some reference run files
330##############################################################
331##############################################################
332##############################################################
333if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ]
334then
335   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT}
336   LFILES="solver.stat memory_size.txt ocean.output ${RUN}${CONF}_err"
337   SAV_DIR=${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${REF_TAG}
338   if [ ! -d ${SAV_DIR} ] ;  then
339      mkdir ${SAV_DIR}
340   fi
341   for ref_file in ${LFILES}
342   do
343       ${D_GET} ${STORE_DATA}/${TSYMB}${ref_file} ${SAV_DIR}/${ref_file}
344   done
345fi
346
347##############################################################
348##############################################################
349##############################################################
350###             Launch restart job
351##############################################################
352##############################################################
353##############################################################
354if [ $type = '1_short' ] ; then
355    cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/2_SHORT/${MYO_EXP}
356    ${LAUNCH}job_${RUN}_2_short_${MYO_EXP}.ksh
357fi
Note: See TracBrowser for help on using the repository browser.