/[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.1 - (show annotations) (download)
Tue Oct 30 22:41:33 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
add a version of "tst1+1" to check coupled set-up.

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

  ViewVC Help
Powered by ViewVC 1.1.22