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

Annotation 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 - (hide 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 jmc 1.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
284    

  ViewVC Help
Powered by ViewVC 1.1.22