/[MITgcm]/MITgcm_contrib/jmc_script/tst_2+2_cpl
ViewVC logotype

Contents of /MITgcm_contrib/jmc_script/tst_2+2_cpl

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


Revision 1.2 - (show annotations) (download)
Tue Oct 30 22:55:04 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
Changes since 1.1: +28 -9 lines
forgot cvs $Header:$ & $Name:$

1 #!/bin/sh
2
3 # $Header: $
4 # $Name: $
5
6 if test -f input_ocn/data.tst
7 then
8 noc0=`sed -n 's/nIter0=//p' input_ocn/data.tst | sed 's/,//g' | sed 's/ //g'`
9 Dbl=`sed -n 's/nTimeSteps=//p' input_ocn/data.tst | sed 's/,//g'`
10 NiOc=`expr $Dbl / 2`
11 Nit=$NiOc
12 else
13 echo " file: 'input_ocn/data.tst' not found"
14 NiOc=0 ; Nit=2
15 fi
16 if test -f input_atm/data.tst
17 then
18 nat0=`sed -n 's/nIter0=//p' input_atm/data.tst | sed 's/,//g' | sed 's/ //g'`
19 Dbl=`sed -n 's/nTimeSteps=//p' input_atm/data.tst | sed 's/,//g'`
20 NiAt=`expr $Dbl / 2`
21 else
22 echo " file: 'input_atm/data.tst' not found"
23 NiAt=0
24 fi
25
26 case $# in
27 1) ;;
28 *) echo "Usage: `basename $0` flag"
29 echo " Check restart of coupled set-up: compare 1 run of 2 x $Nit it long"
30 echo " with 2 consecutive runs of $Nit it long each"
31 echo " where: flag = 0 -> prepare for 1rst run"
32 echo " flag = 1 -> move res. after 1rst run & prepare for 2nd"
33 echo " flag = 2 -> move res. after 2nd run & prepare for 3rd"
34 echo " flag = 3 -> move res. after 3rd run"
35 echo " flag = 4 -> compare Ocean results"
36 echo " flag = 5 -> compare Atmos results"
37 echo " flag = 6 -> diff pickup files"
38 exit ;;
39 esac
40 if test $NiAt = 0 -o $NiOc = 0
41 then
42 echo " needs 2 data files: 'input_ocn/data.tst' & 'input_atm/data.tst'"
43 echo " (corresponding to 1rst run) to continue"
44 exit
45 fi
46 ksel=$1
47
48 #make sure that local dir & ~jmc/bin is in the path:
49 #export PATH=${PATH}:.
50 RNPref=`ls ~jmc/bin/rnp`" -s"
51 Prt10c=`ls ~jmc/bin/add0upto10c`
52 difex=`ls ~jmc/bin/dif_data`
53 echo -n " use script: "
54 echo " Prt10c='$Prt10c' ,"
55 echo -n " RNPref='$RNPref'"
56 echo " and difex='$difex'"
57
58 Nit=$NiOc
59 Dbl=`expr $Nit + $Nit`
60 noc1=`expr $noc0 + $Nit`
61 noc2=`expr $noc0 + $Dbl`
62 noc0c=`$Prt10c $noc0`
63 noc1c=`$Prt10c $noc1`
64 noc2c=`$Prt10c $noc2`
65 echo 'Oce (rank_1):' $noc0 $noc1 $noc2
66 echo $noc0c $noc1c $noc2c
67
68 Nit=$NiAt
69 Dbl=`expr $Nit + $Nit`
70 nat1=`expr $nat0 + $Nit`
71 nat2=`expr $nat0 + $Dbl`
72 nat0c=`$Prt10c $nat0`
73 nat1c=`$Prt10c $nat1`
74 nat2c=`$Prt10c $nat2`
75 echo 'Atm (rank_2):' $nat0 $nat1 $nat2
76 echo $nat0c $nat1c $nat2c
77
78 listOc="pickup pickup_cpl"
79 listAt="pickup pickup_cpl pickup_ic pickup_land"
80
81 #- dir where to put the results :
82 dir1=res_2it
83 dir2=res_1iA
84 dir3=res_1iB
85
86 #-- after a run, rename pickup file to restart
87 if test $ksel = 0
88 then
89 echo ' '
90 cd rank_1
91 for xx in $listOc
92 do
93 echo $RNPref $xx.ckptA $xx.$noc0c
94 $RNPref $xx.ckptA $xx.$noc0c
95 done
96 cd ../rank_2
97 for xx in $listAt
98 do
99 echo $RNPref $xx.ckptA $xx.$nat0c
100 $RNPref $xx.ckptA $xx.$nat0c
101 done
102 cd ..
103 #-- prepare for running Dbl
104 echo ' prepare for running Dbl:'
105 Dbl=`expr $NiOc + $NiOc`
106 sed "1 s/[0-9]*/$Dbl/" input_cpl/data > rank_0/data
107 cp -p input_ocn/data.tst rank_1/data
108 cp -p input_atm/data.tst rank_2/data
109 echo 'rank_0/data:' `head -1 rank_0/data`
110 egrep 'nIter0|nTimeSteps' rank_?/data
111 fi
112
113 #-- after running Dbl:
114 if test $ksel = 1
115 then
116 rm -rf $dir1
117 mkdir $dir1
118 echo ' ' ; echo 'move STDOUT to' $dir1
119 mv rank_1/STDOUT* $dir1/ocnSTDOUT.2it
120 mv rank_2/STDOUT* $dir1/atmSTDOUT.2it
121
122 mkdir $dir1/ocn
123 cd rank_1
124 for xx in $listOc
125 do
126 echo $RNPref $xx.ckptA $xx.$noc2c
127 $RNPref $xx.ckptA $xx.$noc2c
128 done
129 echo 'move pickups to' $dir1/ocn
130 mv pickup*.$noc2c.* ../$dir1/ocn
131 cd ..
132
133 mkdir $dir1/atm
134 cd rank_2
135 for xx in $listAt
136 do
137 echo $RNPref $xx.ckptA $xx.$nat2c
138 $RNPref $xx.ckptA $xx.$nat2c
139 done
140 echo 'move pickups to' $dir1/atm
141 mv pickup*.$nat2c.* ../$dir1/atm
142 cd ..
143
144 #-- prepare for running 1iA
145 echo ' prepare for running 1iA:'
146 Nit=$NiOc
147 Dbl=`expr $Nit + $Nit`
148 sed "1 s/[0-9]*/$Nit/" input_cpl/data > rank_0/data
149 sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" input_ocn/data.tst > rank_1/data
150 Nit=$NiAt
151 Dbl=`expr $Nit + $Nit`
152 sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" input_atm/data.tst > rank_2/data
153 echo 'rank_0/data:' `head -1 rank_0/data`
154 egrep 'nIter0|nTimeSteps' rank_?/data
155 fi
156
157 #-- after running 1iA
158 if test $ksel = 2
159 then
160 rm -rf $dir2
161 mkdir $dir2
162 echo ' ' ; echo 'move STDOUT to' $dir2
163 mv rank_1/STDOUT* $dir2/ocnSTDOUT.1iA
164 mv rank_2/STDOUT* $dir2/atmSTDOUT.1iA
165
166 mkdir $dir2/ocn
167 cd rank_1
168 for xx in $listOc
169 do
170 echo $RNPref $xx.ckptA $xx.$noc1c
171 $RNPref $xx.ckptA $xx.$noc1c
172 done
173 echo 'move pickups to' $dir2/ocn
174 mv pickup*.$noc1c.* ../$dir2/ocn
175 cd ..
176
177 mkdir $dir2/atm
178 cd rank_2
179 for xx in $listAt
180 do
181 echo $RNPref $xx.ckptA $xx.$nat1c
182 $RNPref $xx.ckptA $xx.$nat1c
183 done
184 echo 'move pickups to' $dir2/atm
185 mv pickup*.$nat1c.* ../$dir2/atm
186 cd ..
187
188 #-- prepare for running 1iB
189 echo ' prepare for running 1iB:'
190 cd rank_1
191 sed "s/^ nIter0=$noc0/ nIter0=$noc1/g" data > data.tmp
192 mv -f data.tmp data
193 ln -s ../$dir2/ocn/* .
194 cd ../rank_2
195 sed "s/^ nIter0=$nat0/ nIter0=$nat1/g" data > data.tmp
196 mv -f data.tmp data
197 ln -s ../$dir2/atm/* .
198 cd ..
199 echo 'rank_0/data:' `head -1 rank_0/data`
200 egrep 'nIter0|nTimeSteps' rank_?/data
201 fi
202
203 #-- after running 1iB
204 if test $ksel = 3
205 then
206 rm -rf $dir3
207 mkdir $dir3
208 echo ' ' ; echo 'move STDOUT to' $dir3
209 mv rank_1/STDOUT* $dir3/ocnSTDOUT.1iB
210 mv rank_2/STDOUT* $dir3/atmSTDOUT.1iB
211
212 mkdir $dir3/ocn
213 cd rank_1
214 for xx in $listOc
215 do
216 echo $RNPref $xx.ckptA $xx.$noc2c
217 $RNPref $xx.ckptA $xx.$noc2c
218 done
219 echo 'move pickups to' $dir3/ocn
220 mv pickup*.$noc2c.* ../$dir3/ocn
221 cd ..
222
223 mkdir $dir3/atm
224 cd rank_2
225 for xx in $listAt
226 do
227 echo $RNPref $xx.ckptA $xx.$nat2c
228 $RNPref $xx.ckptA $xx.$nat2c
229 done
230 echo 'move pickups to' $dir3/atm
231 mv pickup*.$nat2c.* ../$dir3/atm
232 cd ..
233 echo 'restore std data files'
234 cp -p input_cpl/data rank_0
235 cp -p input_ocn/data rank_1
236 cp -p input_atm/data rank_2
237 fi
238
239 #-- compare output:
240 if test $ksel = 4
241 then
242 rm -f ocn.txt
243 echo ' run 2it: ---------- ' > tmp1.txt
244 grep "cg2d_init_res" $dir1/ocnSTDOUT.2it \
245 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
246 Nit=`expr $NiOc + 2`
247 sed "$Nit i \ ... 2it continue ..." tmp1.txt > tmp2.txt
248 rm -f tmp1.txt
249 echo ' run 1iA: ---------- ' > tmp1.txt
250 grep "cg2d_init_res" $dir2/ocnSTDOUT.1iA \
251 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
252 echo ' run 1iB: ---------- ' >> tmp1.txt
253 grep "cg2d_init_res" $dir3/ocnSTDOUT.1iB \
254 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
255 nl tmp1.txt > tmp1.ttt
256 nl tmp2.txt > tmp2.ttt
257 join tmp1.ttt tmp2.ttt | sed 's/[0-9]*//' > ocn.txt
258 rm -f tmp1.ttt tmp2.ttt tmp1.txt tmp2.txt
259 echo ' ' ; echo '-- compare cg2d_init_res (Ocean):'
260 cat ocn.txt
261 exit
262 fi
263
264 if test $ksel = 5
265 then
266 rm -f atm.txt
267 echo ' run 2it: ---------- ' > tmp1.txt
268 grep "cg2d_init_res" $dir1/atmSTDOUT.2it \
269 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
270 Nit=`expr $NiAt + 2`
271 sed "$Nit i \ ... 2it continue ..." tmp1.txt > tmp2.txt
272 rm -f tmp1.txt
273 echo ' run 1iA: ---------- ' > tmp1.txt
274 grep "cg2d_init_res" $dir2/atmSTDOUT.1iA \
275 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
276 echo ' run 1iB: ---------- ' >> tmp1.txt
277 grep "cg2d_init_res" $dir3/atmSTDOUT.1iB \
278 | sed 's/.* cg2d_init_res =//' >> tmp1.txt
279 nl tmp1.txt > tmp1.ttt
280 nl tmp2.txt > tmp2.ttt
281 join tmp1.ttt tmp2.ttt | sed 's/[0-9]*//' > atm.txt
282 rm -f tmp1.ttt tmp2.ttt tmp1.txt tmp2.txt
283 echo ' ' ; echo '-- compare cg2d_init_res (Atmos):'
284 cat atm.txt
285 exit
286 fi
287
288 #- compare pickup file:
289 if test $ksel = 6
290 then
291 echo ' ' ; echo '=== compare Ocn pickups: =============='
292 for xx in $listOc
293 do
294 $difex $dir1/ocn $dir3/ocn $xx.$noc2c
295 done
296 echo ' ' ; echo '=== compare Atm pickups: =============='
297 for xx in $listAt
298 do
299 $difex $dir1/atm $dir3/atm $xx.$nat2c
300 done
301 exit
302 fi

  ViewVC Help
Powered by ViewVC 1.1.22