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 @ 1544

Last change on this file since 1544 was 1544, checked in by cetlod, 15 years ago

Update NVTK jobs according to changeset:1542

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