/[MITgcm]/MITgcm_contrib/test_scripts/other/test_local
ViewVC logotype

Contents of /MITgcm_contrib/test_scripts/other/test_local

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download)
Wed Nov 7 23:10:02 2018 UTC (7 years, 9 months ago) by jmc
Branch: MAIN
Changes since 1.6: +6 -2 lines
safer way to checkout master branch

1 #! /usr/bin/env bash
2
3 # $Header: /u/gcmpack/MITgcm_contrib/test_scripts/other/test_local,v 1.6 2018/02/09 20:42:07 jmc Exp $
4 # $Name: $
5
6 if test $# = 0 ; then
7 echo 'need 1 argument'
8 exit
9 else
10 if test $1 = ifort ; then
11 # tst_list='iadm imp2 iur4'
12 tst_list='iad4 imp2 iur4'
13 dd1=`date +%d -d "1 day"`
14 # if test $dd1 != '01' ; then echo 'not last day of month'; exit ; fi
15 elif test $1 = gfort ; then
16 tst_list='gadm gads gad4 gmp4 gmp2 gfo gfo4 g77'
17 elif test $1 = gfor8 ; then
18 # tst_list='gadm gads gmp2 gmpi gfo g77'
19 tst_list='gadm gads gmp2 gfo'
20 elif test $1 = gfor4 ; then
21 tst_list='gad4 gmp4 gfo4 g77'
22 else
23 tst_list=$*
24 fi
25 fi
26 echo "run: \""`basename $0` $*"\" on:" `date`
27 echo " tst_list='$tst_list'"
28
29 #- to get ~/bin in the patch (for staf) when run on cron:
30 if [ -d ~/bin ]; then
31 echo 'add ~/bin to $PATH'
32 export PATH=$PATH:~/bin
33 fi
34 #- to get case insensitive "ls" (and order of tested experiments)
35 #export LC_ALL="en_US.UTF-8"
36 #- Turn off stack limit for FIZHI & AD-tests
37 ulimit -s unlimited
38 #- method to acces CVS:
39 cmdCVS='cvs -d :pserver:cvsanon@mitgcm.org:/u/gcmpack -q'
40 #- and which GitHub repository to use:
41 git_repo='MITgcm'; git_code='MITgcm'
42 #git_repo='altMITgcm'; #git_code='MITgcm66h'
43 #- other settings:
44 tmpFil="/tmp/"`basename $0`".$$"
45 mAddr='jm_c@mitgcm.org'
46
47 #-- for now, cannot mix ifort/gfortran tests:
48 gfort=1
49 for tt in $tst_list
50 do
51 echo $tt | grep '^g' > /dev/null 2>&1 ; retv=$?
52 if [ $retv -eq 0 -a $gfort -ge 1 ] ; then gfort=2
53 elif [ $retv -ne 0 -a $gfort -le 1 ] ; then gfort=0
54 else echo 'cannot mix ifort/gfortran' ; exit
55 fi
56 done
57 if [ $gfort -eq 0 ] ; then
58 #echo 'source ~jmc/bin/intel_v14.sh'
59 #source ~jmc/bin/intel_v14.sh
60 echo 'source ~jmc/bin/intel_v15.sh'
61 source ~jmc/bin/intel_v15.sh
62 fi
63 if [ $gfort -eq 2 ] ; then
64 echo 'source ~jmc/bin/openmpi.sh'
65 source ~jmc/bin/openmpi.sh
66 fi
67
68 #--------------------------------------------------------------------
69 for tt in $tst_list
70 do
71
72 gcmDIR="MITgcm_$tt"
73 echo "=========================================================================="
74 # set -x
75 rm -f tr_clean_$tt.log
76 echo $tt | grep '^.ad' > /dev/null 2>&1 ; fwd=$?
77 echo " testing tt= $tt , fwd= $fwd"
78 if test -e $gcmDIR/.git/config -a -d $gcmDIR/verification ; then
79 #- cleaning previous testreport run and updating the code:
80 if [ $fwd -eq 0 ] ; then
81 set -x
82 #- cleanup previous test:
83 ( cd $gcmDIR/verification ; ./testreport -adm -clean > ../../tr_clean_$tt.log 2>&1 )
84 set +x
85 else
86 set -x
87 #- cleanup previous restart:
88 ( cd $gcmDIR/verification ; ../tools/do_tst_2+2 -clean > ../../tr_clean_$tt.log 2>&1 )
89 #- cleanup previous test:
90 ( cd $gcmDIR/verification ; ./testreport -clean >> ../../tr_clean_$tt.log 2>&1 )
91 set +x
92 fi
93 if [ $gfort -eq 0 ] ; then
94 echo ' remove all Makefile_syntax' >> tr_clean_$tt.log
95 ( cd $gcmDIR/verification ; rm -f */build/Makefile_syntax )
96 fi
97 echo "" >> tr_clean_$tt.log
98
99 echo "==========================================================================" \
100 >> tr_clean_$tt.log
101 echo " Update MITgcm code in dir: $gcmDIR using 'git pull':" | tee -a tr_clean_$tt.log
102 set -x
103 #- update the code:
104 ( cd $gcmDIR ; git pull ) >> tr_clean_$tt.log 2>&1 ; retv=$?
105 set +x
106 if test $retv != 0 ; then
107 echo "'git pull' in $gcmDIR fail (return val=$retv) => skip" | tee -a tr_clean_$tt.log
108 continue
109 fi
110 echo " and checkout master:" | tee -a tr_clean_$tt.log
111 set -x
112 ( cd $gcmDIR ; git checkout master -- . ) >> tr_clean_$tt.log 2>&1
113 set +x
114 else
115 echo "Missing '$gcmDIR/.git/config' or dir '$gcmDIR/verification'" >> tr_clean_$tt.log
116 if test -e $gcmDIR ; then
117 echo -n " removing working copy: $gcmDIR ..." >> tr_clean_$tt.log
118 rm -rf $gcmDIR
119 echo " done" >> tr_clean_$tt.log
120 fi
121 #- download new code:
122 echo "==========================================================================" \
123 >> tr_clean_$tt.log
124 echo "Make a clone of $git_code from repo: $git_repo into: $gcmDIR ..." | tee -a tr_clean_$tt.log
125 set -x
126 git clone https://github.com/$git_repo/${git_code}.git $gcmDIR 2> $tmpFil
127 retv=$?
128 set +x
129 if test $retv = 0 ; then
130 echo ' done' >> tr_clean_$tt.log ; rm -f $tmpFil
131 else
132 echo "'git clone' into $gcmDIR failed (return: $retv) => skip" | tee -a tr_clean_$tt.log
133 cat $tmpFil >> tr_clean_$tt.log ; rm -f $tmpFil
134 continue
135 fi
136 fi
137 echo ""
138 echo "=========================================================================="
139
140 if test -d $gcmDIR/verification ; then
141 if test -e tr_run_$tt.log ; then mv -f tr_run_$tt.log tr_run_$tt.log_bak ; fi
142 cd $gcmDIR/verification
143
144 date
145 # verbose mode:
146 set -x
147 pwd
148 test -e tr_out.txt && mv -f tr_out.txt tr_out.sav
149
150 case $tt in
151 'iadm' )
152
153 ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_ifort11 \
154 -devel -nc -ncad -repl_mk do_make_syntax.sh -obj -dd > ../../tr_run_$tt.log 2>&1
155 echo '' >> ../../tr_run_$tt.log 2>&1
156
157 ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_ifort11 \
158 -devel -q -a $mAddr >> ../../tr_run_$tt.log 2>&1
159
160 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
161 ;;
162
163 'iad4' )
164
165 ./testreport -MPI 3 -ur4 -adm -of ../tools/build_options/linux_amd64_ifort11 \
166 -devel -nc -ncad -repl_mk do_make_syntax.sh -obj -dd > ../../tr_run_$tt.log 2>&1
167 echo '' >> ../../tr_run_$tt.log 2>&1
168
169 ./testreport -MPI 3 -ur4 -adm -of ../tools/build_options/linux_amd64_ifort11 \
170 -devel -q -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1
171
172 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
173 ;;
174
175 'imp2')
176
177 export OMP_NUM_THREADS=2
178 export KMP_STACKSIZE=400m
179
180 ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_ifort11 \
181 -devel -nc -repl_mk do_make_syntax.sh -obj -dd > ../../tr_run_$tt.log 2>&1
182 echo '' >> ../../tr_run_$tt.log 2>&1
183
184 ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_ifort11 \
185 -devel -q -a $mAddr >> ../../tr_run_$tt.log 2>&1
186
187 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
188
189 #- test restart:
190 echo '' >> ../../tr_run_$tt.log 2>&1
191 ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1
192 ;;
193
194 'iur4')
195
196 ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_ifort11 \
197 -devel -nc -repl_mk do_make_syntax.sh -obj -dd > ../../tr_run_$tt.log 2>&1
198 echo '' >> ../../tr_run_$tt.log 2>&1
199
200 ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_ifort11 \
201 -devel -q -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1
202
203 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
204
205 #- test restart:
206 echo '' >> ../../tr_run_$tt.log 2>&1
207 ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1
208 ;;
209
210 'gadm')
211
212 ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_gfortran \
213 -devel -ncad -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
214
215 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
216 ;;
217
218 'gads')
219
220 ./testreport -adm -of ../tools/build_options/linux_amd64_gfortran \
221 -devel -ncad -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
222
223 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
224 ;;
225
226 'gad4')
227
228 ./testreport -adm -ur4 -of ../tools/build_options/linux_amd64_gfortran \
229 -devel -ncad -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1
230
231 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
232 ;;
233
234 'gmp2')
235
236 export OMP_NUM_THREADS=2
237 export GOMP_STACKSIZE=400m
238
239 ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_gfortran \
240 -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
241
242 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
243
244 #- test restart:
245 echo '' >> ../../tr_run_$tt.log 2>&1
246 ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1
247 ;;
248
249 'gmpi')
250
251 ./testreport -MPI 3 -of ../tools/build_options/linux_amd64_gfortran \
252 -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
253
254 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
255
256 #- test restart:
257 echo '' >> ../../tr_run_$tt.log 2>&1
258 ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1
259 ;;
260
261 'gmp4')
262
263 ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_gfortran \
264 -devel -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1
265
266 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
267
268 #- test restart:
269 echo '' >> ../../tr_run_$tt.log 2>&1
270 ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1
271 ;;
272
273 'gfo')
274
275 ./testreport -of ../tools/build_options/linux_amd64_gfortran \
276 -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
277
278 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
279
280 #- test restart:
281 echo '' >> ../../tr_run_$tt.log 2>&1
282 ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1
283 ;;
284
285 'gfo4')
286
287 ./testreport -ur4 -of ../tools/build_options/linux_amd64_gfortran \
288 -devel -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1
289
290 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
291
292 #- test restart:
293 echo '' >> ../../tr_run_$tt.log 2>&1
294 ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1
295 ;;
296
297 'g77')
298
299 ./testreport -of ../tools/build_options/linux_amd64_g77 \
300 -skd 'fizhi-cs-32x32x40 fizhi-cs-aqualev20' \
301 -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1
302
303 sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
304
305 #- test restart:
306 echo '' >> ../../tr_run_$tt.log 2>&1
307 ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1
308 ;;
309
310 *) echo "unrecognized test suffix '$tt' <== skipped" ;;
311 esac
312
313 set +x
314 cd ../..
315
316 else
317 echo "error: missing dir $gcmDIR/verification"
318 fi
319
320 done

  ViewVC Help
Powered by ViewVC 1.1.22