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_OFF_PISCES.ksh in branches/devmercator2010_1/NVTK/INSTALL/JOBS – NEMO

source: branches/devmercator2010_1/NVTK/INSTALL/JOBS/job_ORCA2_OFF_PISCES.ksh @ 2137

Last change on this file since 2137 was 2137, checked in by cbricaud, 14 years ago

merge with head of trunk ( rev 2136 )

File size: 11.9 KB
Line 
1# $Id: job_ORCA2_LIM.ksh 1301 2009-02-09 17:15:38Z ctlod $
2set -xv
3
4CONF=ORCA2_OFF_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=120 ;;
34             
35        '1_short' ) 
36             DIROUT='1_SHORT'
37             ITERATIONS=60 ;;
38             
39        '2_short' ) 
40             DIROUT='2_SHORT'
41             ITERATIONS=60 ;;
42
43        'gtime' ) 
44             DIROUT='GTIME'
45             ITERATIONS=1460 ;;
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# Passive transport namelist
92get_namelist ${LOC_NAM} namelist_top ${MYO_EXP} namelist_top
93
94# Pisces namelist
95get_namelist ${LOC_NAM} namelist_pisces ${MYO_EXP} namelist_pisces
96get_namelist ${LOC_NAM} kRGB61.txt      ${MYO_EXP} kRGB61.txt
97
98# Local function to find namelists parameters
99supergrep () {
100    grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%"
101}
102
103# namelist modifications
104PAT_NIT000=$( supergrep nit000             namelist )
105PAT_NITEND=$( supergrep nitend             namelist )
106PAT_NSTOCK=$( supergrep nstock             namelist )
107
108sed -e "s%$PAT_NIT000%   nit000     =     1   %"           \
109    -e "s%$PAT_NITEND%   nitend     =     ${ITERATIONS} %" \
110    -e "s%$PAT_NSTOCK%   nstock     =     ${ITERATIONS} %" namelist > nam.tmp
111
112mv nam.tmp namelist
113
114# namelist modifications
115PAT_NWRTRC=$( supergrep nwritetrc         namelist_top )
116PAT_LRSTTR=$( supergrep ln_rsttr            namelist_top )
117PAT_NRSTTR=$( supergrep nrsttr            namelist_top )
118PAT_TRCRAD=$( supergrep ln_trcrad         namelist_top )
119
120sed -e "s%$PAT_NWRTRC%   nwritetrc   = ${ITERATIONS}%" \
121    -e "s%$PAT_LRSTTR%   ln_rsttr      =  .false.%"      \
122    -e "s%$PAT_NRSTTR%   nrsttr      =     0   %"       \
123    -e "s%$PAT_TRCRAD%   ln_trcrad   =  .false.%" namelist_top > nam.tmp     
124
125mv nam.tmp namelist_top
126
127# namelist pisces modifications
128PAT_DUSTF=$( supergrep ln_dustfer        namelist_pisces )
129PAT_RIVER=$( supergrep ln_river          namelist_pisces )
130PAT_NDEPO=$( supergrep ln_ndepo          namelist_pisces )
131PAT_SEDIN=$( supergrep ln_sedinput       namelist_pisces )
132
133sed -e "s%$PAT_DUSTF%   ln_dustfer    =  .false.%"  \
134    -e "s%$PAT_RIVER%   ln_river      =  .false.%"  \
135    -e "s%$PAT_NDEPO%   ln_ndepo      =  .false.%"  \
136    -e "s%$PAT_SEDIN%   ln_sedinput   =  .false.%" namelist_pisces > nam.tmp
137
138mv nam.tmp namelist_pisces
139
140# iom_put xml file
141if [ "${USE_IOMPUT}" = "true" ]
142then
143    get_namelist ${LOC_NAM} xmlio_server.def ${MYO_EXP} xmlio_server.def
144    get_namelist ${LOC_NAM} iodef.xml ${MYO_EXP} iodef.xml
145    sed -e "s/^ *using_server *=.*$/  using_server = .${USE_IOSERVER}./" xmlio_server.def > tmp$$
146    mv tmp$$ xmlio_server.def
147fi
148
149# Get forcing files
150${D_GET} ${D_INPUT}/INPUTS_DYNA_v3.tar  INPUTS_DYNA_v3.tar
151tar xvf INPUTS_DYNA_v3.tar
152rm -f INPUTS_DYNA_v3.tar
153
154# Get meshmask file
155${D_GET} ${D_INPUT}/INPUTS_INIT_v3.tar INPUTS_INIT_v3.tar
156tar xvf INPUTS_INIT_v3.tar
157rm -f INPUTS_INIT_v3.tar
158rm -f restart_trc*.nc
159
160# Get forcing pisces files
161${D_GET} ${D_INPUT}/INPUTS_PISCES_v3.tar INPUTS_PISCES_v3.tar
162tar xvf INPUTS_PISCES_v3.tar
163rm -f INPUTS_PISCES_v3.tar
164
165# Get restarts files if needed
166if [ $type = '2_short' ]
167then
168    if [ ${RUN} = 'mon' -o ${RUN} = 'omp' ] ; then
169        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_trc.nc restart_trc.nc
170    fi
171
172    if [ ${RUN} = 'mpi' ] ; then
173        typeset -Z4 i=0
174        while [ $i -lt $NB_PROCS ]
175        do
176           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/${MYO_EXP}/*restart_trc_${i}.nc restart_trc_${i}.nc
177           let i=$i+1
178        done
179    fi
180
181    # Ocean namelist modifications
182    PAT_NIT000=$( supergrep nit000             namelist )
183    PAT_NITEND=$( supergrep nitend             namelist )
184    ORCA_NIT000=$(( $ITERATIONS + 1 ))
185    ORCA_NITEND=$(( $ITERATIONS*2 ))
186   
187    sed  -e "s%$PAT_NIT000%   nit000     =     $ORCA_NIT000 %" \
188         -e "s%$PAT_NITEND%   nitend     =     $ORCA_NITEND %" namelist > nam.tmp
189   
190    mv nam.tmp namelist
191
192   # Biogeochemistry namelist modifications
193    PAT_LRSTTR=$( supergrep ln_rsttr        namelist_top )
194    PAT_NRSTTR=$( supergrep nrsttr        namelist_top )
195
196    sed -e "s%$PAT_LRSTTR%   ln_rsttr     = .true. %"  \
197        -e "s%$PAT_NRSTTR%   nrsttr     = 2%" namelist_top > nam.tmp
198
199    mv nam.tmp namelist_top
200
201   PAT_PISDMP=$( supergrep ln_pisdmp     namelist_pisces )
202   sed -e "s%$PAT_PISDMP%  ln_pisdmp     = .false.%" namelist_pisces > nam.tmp
203   mv nam.tmp namelist_pisces
204fi
205
206##############################################################
207##############################################################
208##############################################################
209###             Launch run
210##############################################################
211##############################################################
212##############################################################
213
214cp ${MAINDIR}/modipsl/bin/opa_${CONF}_${RUN}_${MYO_EXP} opa_${CONF}_${RUN}_${MYO_EXP}
215cp ${MAINDIR}/modipsl/bin/opa_${CONF}_memo_${MYO_EXP} opa_${CONF}_memo_${MYO_EXP}
216chmod 777 opa_${CONF}_${RUN}_${MYO_EXP}
217chmod 777 opa_${CONF}_memo_${MYO_EXP}
218
219#
220# Profiling & Executable memory size
221####################################
222touch memory_size.txt
223
224case ${RUN} in
225        'mon' ) 
226#-T- sx8brodie export F_PROGINF=detail
227#-T- sx8brodie echo "Stack memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"    >> memory_size.txt
228#-T- sx8brodie echo "Static memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"   >> memory_size.txt  ;;
229#-T- sx8mercure export F_PROGINF=detail
230#-T- sx8mercure echo "Stack memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"    >> memory_size.txt
231#-T- sx8mercure echo "Static memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"   >> memory_size.txt  ;;
232#-T- aix6 echo "Stack memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"    >> memory_size.txt
233#-T- aix6 echo "Static memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"   >> memory_size.txt ;;
234#-T- osxxlf echo "Stack memory: $( (size opa_${CONF}_memo_${MYO_EXP}) )"    >> memory_size.txt
235#-T- osxxlf echo "Static memory: $( (size opa_${CONF}_${RUN}_${MYO_EXP}) )"   >> memory_size.txt ;;
236        'mpi' ) 
237#-T- sx8brodie export MPIPROGINF=detail ;;
238#-T- sx8mercure export MPIPROGINF=detail ;;
239#-T- aix6     ;;
240#-T- osxxlf   ;;
241        'omp' ) 
242#-T- sx8brodie export F_PROGINF=detail
243#-T- sx8brodie export OMP_NUM_THREADS=${NB_PROCS} ;;
244#-T- sx8mercure export F_PROGINF=detail
245#-T- sx8mercure export OMP_NUM_THREADS=${NB_PROCS} ;;
246#-T- aix6     ;;
247#-T- osxxlf   ;;
248esac
249#
250# >>>>>> EXECUTION < < < <
251##########################
252
253case ${RUN} in
254        'mon' | 'omp' ) 
255              ${CPERF} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
256        'mpi' ) 
257#-T- sx8brodie         ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
258#-T- sx8mercure         ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
259#-T- aix6              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP} ;;
260#-T- osxxlf   mpd&
261#-T- osxxlf   sleep 5
262#-T- osxxlf   ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}_${MYO_EXP}
263#-T- osxxlf   mpdallexit ;;
264esac
265
266ls -l
267#
268
269##############################################################
270##############################################################
271##############################################################
272###             Save output files
273##############################################################
274##############################################################
275##############################################################
276case ${RUN} in
277   'mon' | 'omp' )
278               liste_files='*abort* memory* namelist* *xml* perfs* ocean.output layout* PISCES* restart* mono*' ;;
279   'mpi' )
280               liste_files='*abort* namelist* *xml* perfs* ocean.output* layout* PISCES* restart* mpp*' ;;
281esac
282
283# Ensure that all files saved are coming from the current run
284ind=1
285for k in $liste_files
286do
287   echo $k > temp
288   var=$( ( awk '{printf("%-.4s", varin ) } ' varin=$k temp ) )
289   if [ ${ind} = 1 -a ${var} = 'perf' ] ; then
290       kc='perf*'
291       rm -f ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/${kc}
292       ind=0
293   fi
294   cp $k ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${MYO_EXP}/$k
295done
296
297##############################################################
298##############################################################
299##############################################################
300###             Retrieve some reference run files
301##############################################################
302##############################################################
303##############################################################
304if [ ${REF_TAG} = 'nemo_v2' -o ${REF_TAG} = 'nemo_v2_3' -o ${REF_TAG} = 'nemo_v3' -o ${REF_TAG} = 'nemo_v3_2' ]
305then
306   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT}
307   LFILES="solver.stat memory_size.txt ocean.output ${RUN}${CONF}_err"
308   SAV_DIR=${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${REF_TAG}
309   if [ ! -d ${SAV_DIR} ] ;  then
310      mkdir ${SAV_DIR}
311   fi
312   for ref_file in ${LFILES}
313   do
314       ${D_GET} ${STORE_DATA}/${TSYMB}${ref_file} ${SAV_DIR}/${ref_file}
315   done
316fi
317
318##############################################################
319##############################################################
320##############################################################
321###             Launch restart job
322##############################################################
323##############################################################
324##############################################################
325if [ $type = '1_short' ] ; then
326    cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/2_SHORT/${MYO_EXP}
327    ${LAUNCH}job_${RUN}_2_short_${MYO_EXP}.ksh
328fi
Note: See TracBrowser for help on using the repository browser.