/[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.5 by jmc, Sun Mar 26 17:16:48 2006 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2    
3  #- input :  # Nit = Nb of iter of 2nd & 3rd run (1rst one is 2 x Nit iter long)
4  # 1) data.tst = parameter file "data" for 2 iter run  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  # 2) in dir temp : pickup(_cd).0..0{num0}.001.001.data
23    
24  #- 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'`
25  num0="3600"  #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  exec=mitgcmuv  mpi=0
32  # list of pickup needed for a restart :  if [ $mpi -ge 1 ]
33  #listP='pickup pickup_cd'  then gcmExc=run_ifc_mpi
34  listP='pickup pickup_ic'  else gcmExc=mitgcmuv
35    fi
36    
37  #- dir where to put the results :  #- dir where to put the results :
38  dir1=res_2it  dir1=res_2it
39  dir2=res_1iA  dir2=res_1iA
40  dir3=res_1iB  dir3=res_1iB
41    
42    #make sure that local dir is in the path:
43    export PATH=${PATH}:.
44    
45  #---------------------------  #---------------------------
46  rm -r $dir1 $dir2 $dir3  Dbl=`expr $Nit + $Nit`
47  mkdir $dir1 $dir2 $dir3  num1=`expr $num0 + $Nit`
48  num1=`expr $num0 + 1`  num2=`expr $num0 + $Dbl`
 num2=`expr $num0 + 2`  
49  num0c=`add0upto10c $num0`  num0c=`add0upto10c $num0`
50  num1c=`add0upto10c $num1`  num1c=`add0upto10c $num1`
51  num2c=`add0upto10c $num2`  num2c=`add0upto10c $num2`
52  echo $num0 $num1 $num2  echo $num0 $num1 $num2
53  echo $num0c $num1c $num2c  echo $num0c $num1c $num2c
54  echo 'exec='$exec  echo 'gcmExc='$gcmExc
55  # exit  # 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  cp -p data.tst data
64  ln -s temp/pickup*.${num0c}* .  ln -s temp/pickup*.${num0c}* .
65  echo '==> START RUN 2it'  echo '==> START RUN 2 x' $Nit 'it'
66  ./$exec > std_outp.2it 2>&1  if [ $mpi -ge 1 ]
67  out=`egrep -c 'STOP ABNORMAL END' std_outp.2it`  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  if test $out != 0 ; then echo 'RUN 2it STOP before END => exit' ; exit ; fi
74  echo '==>  END  RUN 2it'  echo '==>  END  RUN 2 x' $Nit 'it'
75  for xx in $listP  for xx in $listP
76  do  do
77   rnp $xx.ckptA $xx.$num2c   rnp -s $xx.ckptA $xx.$num2c
78  done  done
79  mv *.00?.00?.* $dir1  mv *.0??.0??.* $dir1
80  mv $dir1/pickup*.${num0c}* .  mv $dir1/pickup*.${num0c}* .
81  #--  #--
82  sed 's/^ nTimeSteps=2/ nTimeSteps=1/g' data.tst > data  sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data
83  echo '==> START RUN 1iA'  echo '==> START RUN 1iA'
84  ./$exec > std_outp.1iA 2>&1  if [ $mpi -ge 1 ]
85  out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA`  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  if test $out != 0 ; then echo 'RUN 1iA STOP before END => exit' ; exit ; fi
92  echo '==>  END  RUN 1iA'  echo '==>  END  RUN 1iA'
93  for xx in $listP  for xx in $listP
94  do  do
95   rnp $xx.ckptA $xx.$num1c   rnp -s $xx.ckptA $xx.$num1c
96  done  done
97  mv *.00?.00?.* $dir2  mv *.0??.0??.* $dir2
98  rm $dir2/pickup*.${num0c}*  rm $dir2/pickup*.${num0c}*
99  #--  #--
100  ln -s $dir2/pickup*.$num1c.* .  ln -s $dir2/pickup*.$num1c.* .
101  mv data data.tmp  mv data data.tmp
102  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data.tmp > data  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data.tmp > data
103  echo '==> START RUN 1iB'  echo '==> START RUN 1iB'
104  ./$exec > std_outp.1iB 2>&1  if [ $mpi -ge 1 ]
105  out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB`  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  if test $out != 0 ; then echo 'RUN 1iB STOP before END => exit' ; exit ; fi
112  echo '==>  END  RUN 1iB'  echo '==>  END  RUN 1iB'
113  for xx in $listP  for xx in $listP
114  do  do
115   rnp $xx.ckptA $xx.$num2c   rnp -s $xx.ckptA $xx.$num2c
116  done  done
117  mv *.00?.00?.* $dir3  mv *.0??.0??.* $dir3
118  rm $dir3/pickup*.$num1c.*  rm $dir3/pickup*.$num1c.*
119  #--  exit
120    #------------
121    fi
122    
123    if test $flag = 2 ; then
124    #------------
125  echo ' ' ; echo '-- compare cg2d_init_res :'  echo ' ' ; echo '-- compare cg2d_init_res :'
126  echo ' run 1iA:'  echo ' run 1iA:'
127   grep "cg2d_init_res" std_outp.1iA \   grep "cg2d_init_res" std_outp.1iA \
# Line 80  echo ' run 1iB:' Line 131  echo ' run 1iB:'
131        | sed 's/.* cg2d_init_res =//'        | sed 's/.* cg2d_init_res =//'
132  echo ' run 2it:'  echo ' run 2it:'
133   grep "cg2d_init_res" std_outp.2it \   grep "cg2d_init_res" std_outp.2it \
134        | sed 's/.* cg2d_init_res =//'        | 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  exit
147    #------------
148    fi

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

  ViewVC Help
Powered by ViewVC 1.1.22