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/nemo_v3_3_beta/NEMOGCM/NVTK/INSTALL/JOBS – NEMO

source: branches/nemo_v3_3_beta/NEMOGCM/NVTK/INSTALL/JOBS/job_ORCA2_OFF_PISCES.ksh @ 2281

Last change on this file since 2281 was 2281, checked in by smasson, 14 years ago

set proper svn properties to all files...

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