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/VALID/2INSTALL/JOBS – NEMO

source: trunk/VALID/2INSTALL/JOBS/job_ORCA2_LIM.ksh @ 1054

Last change on this file since 1054 was 1054, checked in by ctlod, 16 years ago

trunk: correct syntax in an IF statement of jobs, see ticket: #186

File size: 8.7 KB
Line 
1set -xv
2
3CONF=ORCA2_LIM
4# Variables changed by lance_batch.ksh script
5RUN=xxx
6NB_PROCS=xxx
7LAUNCH=xxx
8LEXE=xxx
9CPERF=xxx
10D_INPUT=xxx
11D_GET=xxx
12REF_TAG=xxx
13TSYMB=xxx
14
15# Variables changed by ins_valid.ksh script
16MAINDIR=/Users/ctlod/WORK/AZE
17WORK=/Users/ctlod/WORK/AZE/modipsl/config
18REF_OD=/Volumes/FENUA/ORCA2_LIM_nemo_v2_IO
19
20# Arguments
21# type = 'long' or '1_short' or '2_short'
22type=$1
23
24case ${type} in
25        'long' ) 
26             DIROUT='LONG'
27             ITERATIONS=210 ;;
28             
29        '1_short' ) 
30             DIROUT='1_SHORT'
31             ITERATIONS=105 ;;
32             
33        '2_short' ) 
34             DIROUT='2_SHORT'
35             ITERATIONS=105 ;;
36
37        'gtime' ) 
38             DIROUT='GTIME'
39             ITERATIONS=5475 ;;
40esac
41
42# Working directory
43cd ${TMPDIR}
44#-T- osxxlf cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/RUN
45#-T- osxxlf zback=$?
46#-T- osxxlf if [ ${zback} = 0 ] ; then rm -rf namelist* *.nc memory* solver.stat ocean.output* mpp.output* mono.output* ; fi
47
48##############################################################
49##############################################################
50##############################################################
51###             Input files
52##############################################################
53##############################################################
54##############################################################
55# Ocean namelist
56cp ${MAINDIR}/modipsl/config/${CONF}/EXP00/namelist namelist_f90
57sed -e /!/d  namelist_f90 > namelist
58
59# Sea-Ice namelist
60cp ${MAINDIR}/modipsl/config/${CONF}/EXP00/namelist_ice namelist_ice_f90
61sed -e /!/d  namelist_ice_f90 > namelist_ice
62
63# namelist modifications
64PAT_NIT000=$( grep 'nit000     =' namelist )
65PAT_NITEND=$( grep 'nitend     =' namelist )
66PAT_NSTOCK=$( grep 'nstock     =' namelist )
67PAT_NWRITE=$( grep 'nwrite     =' namelist )
68PAT_NRSTDT=$( grep 'nrstdt     =' namelist )
69PAT_NBITCM=$( grep 'nbit_cmp ='   namelist )
70PAT_TRACEN=$( grep 'ln_traadv_cen2   =' namelist )
71PAT_TRATVD=$( grep 'ln_traadv_tvd    =' namelist )
72PAT_N_CLAA=$( grep 'n_cla   =' namelist )
73PAT_NSOLVV=$( grep 'nsolv     =' namelist )
74PAT_RESTAR=$( grep 'ln_rstart  =' namelist )
75PAT_RESMLD=$( grep 'ln_trdmld_restart =' namelist )
76
77sed    -e "s/$PAT_RESTAR/   ln_rstart  =  .false./" \
78-e "s/$PAT_NIT000/   nit000     =     1/" \
79-e "s/$PAT_NITEND/   nitend     =     ${ITERATIONS}/" \
80-e "s/$PAT_NSTOCK/   nstock     =     ${ITERATIONS}/" \
81-e "s/$PAT_NWRITE/   nwrite     =     75/" \
82-e "s/$PAT_NRSTDT/   nrstdt     =     0/" \
83-e "s/$PAT_NBITCM/   nbit_cmp =     1/" \
84-e "s/$PAT_TRACEN/   ln_traadv_cen2   =  .false./" \
85-e "s/$PAT_TRATVD/   ln_traadv_tvd    =  .true./" \
86-e "s/$PAT_N_CLAA/   n_cla   = 0/" \
87-e "s/$PAT_NSOLVV/   nsolv     =      2/" \
88-e "s/$PAT_RESMLD/   ln_trdmld_restart  =  .false./" \
89namelist > nam.tmp
90
91mv nam.tmp namelist
92
93# Get forcing files
94${D_GET} ${D_INPUT}/ORCA2_LIM_nemo_v3.tar ORCA2_LIM_nemo_v3.tar
95tar xvf ORCA2_LIM_nemo_v3.tar
96rm -rf ORCA2_LIM_nemo_v3.tar
97
98# Get restarts files if needed
99if [ $type = '2_short' ]
100then
101    if [ ${RUN} = 'mon' -o ${RUN} = 'omp' ] ; then
102        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart.nc restart.nc
103        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*restart_ice.nc restart_ice_in.nc
104        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld.nc restart_mld.nc
105    fi
106
107    if [ ${RUN} = 'mpi' ] ; then
108        typeset -Z4 i=0
109        while [ $i -lt $NB_PROCS ]
110        do
111           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_${i}.nc restart_${i}.nc
112           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*restart_ice_${i}.nc restart_ice_in_${i}.nc
113           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld_${i}.nc restart_mld_${i}.nc
114           let i=$i+1
115        done
116    fi
117
118    # namelist modifications
119    PAT_NIT000=$( grep 'nit000     =' namelist )
120    PAT_NITEND=$( grep 'nitend     =' namelist )
121    PAT_NRSTDT=$( grep 'nrstdt     =' namelist )
122    PAT_RESTAR=$( grep 'ln_rstart  =' namelist )
123    PAT_RESMLD=$( grep 'ln_trdmld_restart =' namelist )
124    ORCA_NIT000=$(( $ITERATIONS + 1 ))
125    ORCA_NITEND=$(( $ITERATIONS*2 ))
126   
127    sed    -e "s/$PAT_RESTAR/   ln_rstart  =  .true./" \
128    -e "s/$PAT_NIT000/   nit000     =     $ORCA_NIT000/" \
129    -e "s/$PAT_NITEND/   nitend     =     $ORCA_NITEND/" \
130    -e "s/$PAT_NRSTDT/   nrstdt     =     2/" \
131    -e "s/$PAT_RESMLD/   ln_trdmld_restart  =  .true./" \
132    namelist > nam.tmp
133   
134    mv nam.tmp namelist
135
136fi
137
138##############################################################
139##############################################################
140##############################################################
141###             Launch run
142##############################################################
143##############################################################
144##############################################################
145
146cp ${WORK}/NEMO_VALID/W${CONF}/opa_${CONF}_${RUN} opa_${CONF}_${RUN}
147cp ${WORK}/NEMO_VALID/W${CONF}/opa_${CONF}_memo opa_${CONF}_memo
148chmod 777 opa_${CONF}_${RUN}
149chmod 777 opa_${CONF}_memo
150
151#
152# Profiling & Executable memory size
153####################################
154touch memory_size.txt
155
156case ${RUN} in
157        'mon' ) 
158#-T- sx8brodie export F_PROGINF=detail
159#-T- sx8brodie echo "Stack memory: $( (size opa_${CONF}_${RUN}) )"    >> memory_size.txt
160#-T- sx8brodie echo "Static memory: $( (size opa_${CONF}_memo) )"   >> memory_size.txt  ;;
161#-T- aix     ;;
162#-T- ax_mono echo "Stack memory: $( (size opa_${CONF}_memo) )"    >> memory_size.txt
163#-T- ax_mono echo "Static memory: $( (size opa_${CONF}_${RUN}) )"   >> memory_size.txt ;;
164#-T- osxxlf echo "Stack memory: $( (size opa_${CONF}_memo) )"    >> memory_size.txt
165#-T- osxxlf echo "Static memory: $( (size opa_${CONF}_${RUN}) )"   >> memory_size.txt ;;
166        'mpi' ) 
167#-T- sx8brodie export MPIPROGINF=detail ;;
168#-T- aix     ;;
169#-T- ax_mono ;;
170#-T- osxxlf  ;;
171        'omp' ) 
172#-T- sx8brodie export F_PROGINF=detail
173#-T- sx8brodie export OMP_NUM_THREADS=${NB_PROCS} ;;
174#-T- aix     ;;
175#-T- ax_mono ;;
176#-T- osxxlf  ;;
177esac
178#
179# >>>>>> EXECUTION < < < <
180##########################
181
182case ${RUN} in
183        'mon' | 'omp' ) 
184              ${CPERF} ./opa_${CONF}_${RUN} ;;
185        'mpi' ) 
186#-T- sx8brodie              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN} ;;
187#-T- aix              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN} ;;
188#-T- osxxlf   mpd&
189#-T- osxxlf   sleep 5
190#-T- osxxlf   ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}
191#-T- osxxlf   mpdallexit ;;
192esac
193
194ls -l
195#
196
197##############################################################
198##############################################################
199##############################################################
200###             Save output files
201##############################################################
202##############################################################
203##############################################################
204case ${RUN} in
205   'mon' | 'omp' )
206               liste_files='*abort* memory* namelist* perfs* solver.stat ocean.output layout* ORCA2* restart* mono*' ;;
207   'mpi' )
208               liste_files='*abort* namelist* solver.stat perfs* ocean.output* layout* ORCA2* restart* mpp*' ;;
209esac
210
211# Ensure that all files saved are coming from the current run
212ind=1
213for k in $liste_files
214do
215   echo $k > temp
216   var=$( ( awk '{printf("%-.4s", varin ) } ' varin=$k temp ) )
217   if [ ${ind} = 1 -a ${var} = 'perf' ] ; then
218       kc='perf*'
219       rm -f ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${kc}
220       ind=0
221   fi
222   cp $k ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/$k
223done
224
225##############################################################
226##############################################################
227##############################################################
228###             Retrieve some reference run files
229##############################################################
230##############################################################
231##############################################################
232if [ ${REF_TAG} ]
233then
234   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT}
235   LFILES="solver.stat memory_size.txt ocean.output ${RUN}${CONF}_err"
236   for ref_file in ${LFILES}
237   do
238       ${D_GET} ${STORE_DATA}/${TSYMB}${ref_file} ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/REF/${ref_file}
239   done
240fi
241
242##############################################################
243##############################################################
244##############################################################
245###             Launch restart job
246##############################################################
247##############################################################
248##############################################################
249if [ $type = '1_short' ] ; then
250    cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/2_SHORT
251    ${LAUNCH}job_${RUN}_2_short.ksh
252fi
Note: See TracBrowser for help on using the repository browser.