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

Annotation of /MITgcm_contrib/jmc_script/tst1+1

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


Revision 1.10 - (hide annotations) (download)
Mon Oct 29 23:18:18 2007 UTC (17 years, 8 months ago) by jmc
Branch: MAIN
Changes since 1.9: +4 -4 lines
minor changes

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

  ViewVC Help
Powered by ViewVC 1.1.22