/[MITgcm]/MITgcm_contrib/jmc_script/tst1+1
ViewVC logotype

Contents of /MITgcm_contrib/jmc_script/tst1+1

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


Revision 1.5 - (show annotations) (download)
Sun Mar 26 17:16:48 2006 UTC (19 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.4: +32 -15 lines
add option for mpi test of 2+2=4

1 #!/bin/sh
2
3 # Nit = Nb of iter of 2nd & 3rd run (1rst one is 2 x Nit iter long)
4 Dbl=`sed -n 's/nTimeSteps=//p' data.tst | sed 's/,//g'`
5 Nit=`expr $Dbl / 2`
6 #Nit=2
7
8 case $# in
9 1) ;;
10 *) echo "Usage: `basename $0` flag"
11 echo " Check restart: compare 1 run of 2 x $Nit it long"
12 echo " with 2 consecutive runs of $Nit it long each"
13 echo " where: flag = 1 -> do the 3 run"
14 echo " flag = 2 -> compare std_outp"
15 echo " flag = 3 -> compare pickup files"
16 exit ;;
17 esac
18 flag=$1
19
20 #- input :
21 # 1) data.tst = parameter file "data" for 2.Nit iter run
22 # 2) in dir temp : pickup(_cd).0..0{num0}.001.001.data
23
24 num0=`sed -n 's/nIter0=//p' data.tst | sed 's/,//g' | sed 's/ //g'`
25 #num0="72000"
26
27 # list of pickup(s) that are needed for a restart :
28 listP='pickup'
29 #listP='pickup pickup_cd pickup_nh'
30
31 mpi=0
32 if [ $mpi -ge 1 ]
33 then gcmExc=run_ifc_mpi
34 else gcmExc=mitgcmuv
35 fi
36
37 #- dir where to put the results :
38 dir1=res_2it
39 dir2=res_1iA
40 dir3=res_1iB
41
42 #make sure that local dir is in the path:
43 export PATH=${PATH}:.
44
45 #---------------------------
46 Dbl=`expr $Nit + $Nit`
47 num1=`expr $num0 + $Nit`
48 num2=`expr $num0 + $Dbl`
49 num0c=`add0upto10c $num0`
50 num1c=`add0upto10c $num1`
51 num2c=`add0upto10c $num2`
52 echo $num0 $num1 $num2
53 echo $num0c $num1c $num2c
54 echo 'gcmExc='$gcmExc
55 # exit
56 #------------------------
57
58 if test $flag = 1 ; then
59 #------------
60 rm -r $dir1 $dir2 $dir3
61 mkdir $dir1 $dir2 $dir3
62
63 cp -p data.tst data
64 ln -s temp/pickup*.${num0c}* .
65 echo '==> START RUN 2 x' $Nit 'it'
66 if [ $mpi -ge 1 ]
67 then ./$gcmExc std_outp.2it > TTT.out.2it 2>&1
68 else ./$gcmExc > std_outp.2it 2>&1
69 fi
70 if test -f pickup.ckptA.001.001.data
71 then out=`egrep -c 'STOP ABNORMAL END' std_outp.2it`
72 else out=9 ; fi
73 if test $out != 0 ; then echo 'RUN 2it STOP before END => exit' ; exit ; fi
74 echo '==> END RUN 2 x' $Nit 'it'
75 for xx in $listP
76 do
77 rnp -s $xx.ckptA $xx.$num2c
78 done
79 mv *.0??.0??.* $dir1
80 mv $dir1/pickup*.${num0c}* .
81 #--
82 sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data
83 echo '==> START RUN 1iA'
84 if [ $mpi -ge 1 ]
85 then ./$gcmExc std_outp.1iA > TTT.out.1iA 2>&1
86 else ./$gcmExc > std_outp.1iA 2>&1
87 fi
88 if test -f pickup.ckptA.001.001.data
89 then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA`
90 else out=9 ; fi
91 if test $out != 0 ; then echo 'RUN 1iA STOP before END => exit' ; exit ; fi
92 echo '==> END RUN 1iA'
93 for xx in $listP
94 do
95 rnp -s $xx.ckptA $xx.$num1c
96 done
97 mv *.0??.0??.* $dir2
98 rm $dir2/pickup*.${num0c}*
99 #--
100 ln -s $dir2/pickup*.$num1c.* .
101 mv data data.tmp
102 sed "s/^ nIter0=$num0/ nIter0=$num1/g" data.tmp > data
103 echo '==> START RUN 1iB'
104 if [ $mpi -ge 1 ]
105 then ./$gcmExc std_outp.1iB > TTT.out.1iB 2>&1
106 else ./$gcmExc > std_outp.1iB 2>&1
107 fi
108 if test -f pickup.ckptA.001.001.data
109 then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB`
110 else out=9 ; fi
111 if test $out != 0 ; then echo 'RUN 1iB STOP before END => exit' ; exit ; fi
112 echo '==> END RUN 1iB'
113 for xx in $listP
114 do
115 rnp -s $xx.ckptA $xx.$num2c
116 done
117 mv *.0??.0??.* $dir3
118 rm $dir3/pickup*.$num1c.*
119 exit
120 #------------
121 fi
122
123 if test $flag = 2 ; then
124 #------------
125 echo ' ' ; echo '-- compare cg2d_init_res :'
126 echo ' run 1iA:'
127 grep "cg2d_init_res" std_outp.1iA \
128 | sed 's/.* cg2d_init_res =//'
129 echo ' run 1iB:'
130 grep "cg2d_init_res" std_outp.1iB \
131 | sed 's/.* cg2d_init_res =//'
132 echo ' run 2it:'
133 grep "cg2d_init_res" std_outp.2it \
134 | sed 's/.* cg2d_init_res =//'
135 exit
136 #------------
137 fi
138
139 if test $flag = 3 ; then
140 #------------
141 difex=`ls ~jmc/bin/dif_data`
142 for xx in $listP
143 do
144 $difex $dir1 $dir3 $xx.$num2c
145 done
146 exit
147 #------------
148 fi

  ViewVC Help
Powered by ViewVC 1.1.22