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

Diff of /MITgcm_contrib/jmc_script/tst1+1

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

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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22