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

source: trunk/NVTK/INSTALL/JOBS/job_ORCA2_LIM.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]

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