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

source: trunk/NVTK/INSTALL/JOBS/job_GYRE_LOBSTER.ksh @ 1297

Last change on this file since 1297 was 1297, checked in by ctlod, 15 years ago

updates NVTK scripts for IBM SP6 named aix6 and to the new nemo_v3_1 release, see ticket: #325

  • Property svn:keywords set to Id
File size: 10.0 KB
Line 
1# $Id$
2set -xv
3
4CONF=GYRE_LOBSTER
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=360 ;;
29             
30        '1_short' ) 
31             DIROUT='1_SHORT'
32             ITERATIONS=180 ;;
33             
34        '2_short' ) 
35             DIROUT='2_SHORT'
36             ITERATIONS=180 ;;
37
38        'gtime' ) 
39             DIROUT='GTIME'
40             ITERATIONS=4320 ;;
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# Local function to find namelists parameters
60supergrep () {
61    grep "^ *$1 *=" $2 | sed -e "s% *\!.*%%"
62}
63
64# namelist modifications
65PAT_NIT000=$( supergrep nit000             namelist )
66PAT_NITEND=$( supergrep nitend             namelist )
67PAT_NSTOCK=$( supergrep nstock             namelist )
68PAT_NWRITE=$( supergrep nwrite             namelist )
69PAT_NRSTDT=$( supergrep nrstdt             namelist )
70PAT_NBITCM=$( supergrep nbit_cmp           namelist )
71PAT_NSOLVV=$( supergrep nsolv              namelist )
72PAT_RESTAR=$( supergrep ln_rstart          namelist )
73PAT_RESMLD=$( supergrep ln_trdmld_restart  namelist )
74
75sed -e "s%$PAT_RESTAR%   ln_rstart   =  .false.%"          \
76    -e "s%$PAT_NIT000%   nit000     =     1   %"           \
77    -e "s%$PAT_NITEND%   nitend     =     ${ITERATIONS} %" \
78    -e "s%$PAT_NSTOCK%   nstock     =     ${ITERATIONS} %" \
79    -e "s%$PAT_NWRITE%   nwrite     =     60  %"           \
80    -e "s%$PAT_NRSTDT%   nrstdt     =     0   %"           \
81    -e "s%$PAT_NBITCM%   nbit_cmp   =     1%"              \
82    -e "s%$PAT_NSOLVV%   nsolv     =      2%"              \
83    -e "s%$PAT_RESMLD%   ln_trdmld_restart =  .false.%" namelist > nam.tmp
84
85mv nam.tmp namelist
86
87# Biogeochemistry namelists
88cp ${MAINDIR}/modipsl/config/${CONF}/EXP00/namelist_top namelist_top_f90
89cp ${MAINDIR}/modipsl/config/${CONF}/EXP00/namelist_lobster namelist_lobster_f90
90
91# namelist modifications
92PAT_NWRITRC=$( supergrep nwritetrc               namelist_top_f90 )
93PAT_NWRITRD=$( supergrep ntrd_trc                namelist_top_f90 )
94PAT_RESTTRD=$( supergrep ln_trdmld_trc_restart   namelist_top_f90 )
95PAT_LTRCRAD=$( supergrep ln_trcrad               namelist_top_f90 )
96
97sed -e "s%$PAT_NWRITRC%   nwritetrc   = ${ITERATIONS}%" \
98    -e "s%$PAT_NWRITRD%   ntrd_trc    = ${ITERATIONS}%" \
99    -e "s%$PAT_LTRCRAD%   ln_trcrad   =  .false.%"      \
100    -e "s%$PAT_RESTTRD%   ln_trdmld_trc_restart =  .false.%" namelist_top_f90 > nam.tmp
101
102mv nam.tmp namelist_top
103
104PAT_ADD=$( supergrep nwritedia namelist_lobster_f90 )
105sed -e "s%$PAT_ADD%   nwritedia    = ${ITERATIONS}%" namelist_lobster_f90 > nam.tmp
106mv nam.tmp namelist_lobster
107
108# Analytical forcing
109
110# Get restarts files if needed
111if [ $type = '2_short' ]
112then
113    if [ ${RUN} = 'mon' -o ${RUN} = 'omp' ] ; then
114        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart.nc         restart.nc
115        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld.nc     restart_mld.nc
116        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_trc.nc     restart_trc.nc
117        cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld_trc.nc restart_mld_trc.nc
118    fi
119
120    if [ ${RUN} = 'mpi' ] ; then
121        typeset -Z4 i=0
122        while [ $i -lt $NB_PROCS ]
123        do
124           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_${i}.nc         restart_${i}.nc
125           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld_${i}.nc     restart_mld_${i}.nc
126           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_trc_${i}.nc     restart_trc_${i}.nc
127           cp ${WORK}/NEMO_VALID/W${CONF}/${RUN}/1_SHORT/*_restart_mld_trc_${i}.nc restart_mld_trc_${i}.nc
128           let i=$i+1
129        done
130    fi
131
132    # Ocean namelist modifications
133    PAT_NIT000=$( supergrep nit000             namelist )
134    PAT_NITEND=$( supergrep nitend             namelist )
135    PAT_NRSTDT=$( supergrep nrstdt             namelist )
136    PAT_RESTAR=$( supergrep ln_rstart          namelist )
137    PAT_RESMLD=$( supergrep ln_trdmld_restart  namelist )
138    ORCA_NIT000=$(( $ITERATIONS + 1 ))
139    ORCA_NITEND=$(( $ITERATIONS*2 ))
140   
141    sed  -e "s%$PAT_RESTAR%   ln_rstart   =  .true.%"          \
142         -e "s%$PAT_NIT000%   nit000     =     $ORCA_NIT000 %" \
143         -e "s%$PAT_NITEND%   nitend     =     $ORCA_NITEND %" \
144         -e "s%$PAT_NRSTDT%   nrstdt     =     2%"             \
145         -e "s%$PAT_RESMLD%   ln_trdmld_restart =  .true.%" namelist > nam.tmp
146   
147    mv nam.tmp namelist
148
149    # Biogeochemistry namelist modifications
150    PAT_RESTAR=$( supergrep lrsttr                  namelist_top )
151    PAT_RESTRD=$( supergrep ln_trdmld_trc_restart   namelist_top ) 
152   
153    sed -e "s%$PAT_RESTAR%   lrsttr      = .true. %"  \
154        -e "s%$PAT_RESTRD%   ln_trdmld_trc_restart =  .true.%" namelist_top > nam.tmp
155
156    mv nam.tmp namelist_top
157
158fi
159
160##############################################################
161##############################################################
162##############################################################
163###             Launch run
164##############################################################
165##############################################################
166##############################################################
167
168cp ${WORK}/NEMO_VALID/W${CONF}/opa_${CONF}_${RUN} opa_${CONF}_${RUN}
169cp ${WORK}/NEMO_VALID/W${CONF}/opa_${CONF}_memo opa_${CONF}_memo
170chmod 777 opa_${CONF}_${RUN}
171chmod 777 opa_${CONF}_memo
172
173#
174# Profiling & Executable memory size
175####################################
176touch memory_size.txt
177
178case ${RUN} in
179        'mon' ) 
180#-T- sx8brodie export F_PROGINF=detail
181#-T- sx8brodie echo "Stack memory: $( (size opa_${CONF}_${RUN}) )"    >> memory_size.txt
182#-T- sx8brodie echo "Static memory: $( (size opa_${CONF}_memo) )"   >> memory_size.txt  ;;
183#-T- aix6     ;;
184#-T- ax6_mono echo "Stack memory: $( (size opa_${CONF}_memo) )"    >> memory_size.txt
185#-T- ax6_mono echo "Static memory: $( (size opa_${CONF}_${RUN}) )"   >> memory_size.txt ;;
186#-T- osxxlf echo "Stack memory: $( (size opa_${CONF}_memo) )"    >> memory_size.txt
187#-T- osxxlf echo "Static memory: $( (size opa_${CONF}_${RUN}) )"   >> memory_size.txt ;;
188        'mpi' ) 
189#-T- sx8brodie export MPIPROGINF=detail ;;
190#-T- aix6     ;;
191#-T- ax6_mono ;;
192#-T- osxxlf   ;;
193        'omp' ) 
194#-T- sx8brodie export F_PROGINF=detail
195#-T- sx8brodie export OMP_NUM_THREADS=${NB_PROCS} ;;
196#-T- aix6     ;;
197#-T- ax6_mono ;;
198#-T- osxxlf   ;;
199esac
200#
201# >>>>>> EXECUTION < < < <
202##########################
203
204case ${RUN} in
205        'mon' | 'omp' ) 
206              ${CPERF} ./opa_${CONF}_${RUN} ;;
207        'mpi' ) 
208#-T- sx8brodie              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN} ;;
209#-T- aix6              ${CPERF} ${LEXE} ./opa_${CONF}_${RUN} ;;
210#-T- osxxlf   mpd&
211#-T- osxxlf   sleep 5
212#-T- osxxlf   ${CPERF} ${LEXE} ./opa_${CONF}_${RUN}
213#-T- osxxlf   mpdallexit ;;
214esac
215
216ls -l
217#
218
219##############################################################
220##############################################################
221##############################################################
222###             Save output files
223##############################################################
224##############################################################
225##############################################################
226case ${RUN} in
227   'mon' | 'omp' )
228               liste_files=' *abort* memory* namelist* perfs* solver.stat ocean.output layout* GYRE* restart* mono*' ;;
229   'mpi' )
230               liste_files=' *abort* namelist* solver.stat perfs* ocean.output* layout* GYRE* restart* mpp*' ;;
231esac
232
233# Ensure that all files saved are coming from the current run
234ind=1
235for k in $liste_files
236do
237   echo $k > temp
238   var=$( ( awk '{printf("%-.4s", varin ) } ' varin=$k temp ) )
239   if [ ${ind} = 1 -a ${var} = 'perf' ] ; then
240       kc='perf*'
241       rm -f ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/${kc}
242       ind=0
243   fi
244   cp $k ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/$k
245done
246
247##############################################################
248##############################################################
249##############################################################
250###             Retrieve some reference run files
251##############################################################
252##############################################################
253##############################################################
254if [ ${REF_TAG} ]
255then
256   STORE_DATA=${REF_OD}/${CONF}/${REF_TAG}/${RUN}/${DIROUT}
257   LFILES="solver.stat memory_size.txt ocean.output ${RUN}${CONF}_err"
258   for ref_file in ${LFILES}
259   do
260       ${D_GET} ${STORE_DATA}/${TSYMB}${ref_file} ${WORK}/NEMO_VALID/W${CONF}/${RUN}/${DIROUT}/REF/${ref_file}
261   done
262fi
263
264##############################################################
265##############################################################
266##############################################################
267###             Launch restart job
268##############################################################
269##############################################################
270##############################################################
271if [ $type = '1_short' ] ; then
272    cd ${WORK}/NEMO_VALID/W${CONF}/${RUN}/2_SHORT
273    ${LAUNCH}job_${RUN}_2_short.ksh
274fi
Note: See TracBrowser for help on using the repository browser.