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

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

add svn Id

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