/[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.7 by jmc, Mon Aug 6 22:57:57 2007 UTC revision 1.12 by jmc, Wed Nov 7 01:40:47 2007 UTC
# Line 3  Line 3 
3  # $Header$  # $Header$
4  # $Name$  # $Name$
5    
6    rnp_loc()
7    {
8    #   rnp_loc arg_1 arg_2
9    #   rename files with prefix = 'arg_1' to files with prefix = 'arg_2'
10        echo 'rnp_loc:' $1 $2
11    #   rnp -s $1 $2
12        listY=`ls -1 $1*`
13        for yy in $listY
14        do
15          zz=`echo $yy | sed "s/^$1/$2/"`
16          mv $yy $zz
17        done
18    }
19    
20    #---------------------------
21    #- input :
22    # 1) data.tst = parameter file "data" for 2.Nit iter run
23    # 2) here or in dir temp : pickup(_cd).0..0{num0}.001.001.data
24    
25    NbArg=$#
26    if test -r data.tst ; then
27  # Nit = Nb of iter of 2nd & 3rd run (1rst one is 2 x Nit iter long)  # Nit = Nb of iter of 2nd & 3rd run (1rst one is 2 x Nit iter long)
28  Dbl=`sed -n 's/nTimeSteps=//p' data.tst | sed 's/,//g'`   Dbl=`sed -n 's/nTimeSteps=//p' data.tst | sed 's/,//g'`
29  Nit=`expr $Dbl / 2`   Nit=`expr $Dbl / 2`
30  #Nit=2  else
31     echo '=> Need a readable "data.tst" file for the 2 x Nit iterations run'
32     Nit=2 ; NbArg=0;
33    fi
34    
35  case $# in  case $NbArg in
36    1) ;;    1) ;;
37     *) echo "Usage: `basename $0` flag"     *) echo "Usage: `basename $0` flag"
38        echo " Check restart: compare 1 run of 2 x $Nit it long"        echo " Check restart: compare 1 run of 2 x $Nit it long"
39        echo "     with 2 consecutive runs of $Nit it long each"        echo "     with 2 consecutive runs of $Nit it long each"
40        echo " where: flag = 1 -> do the 3 run"        echo " where: flag = 1 -> do the 3 runs"
41        echo "        flag = 2 -> compare std_outp"        echo "        flag = 2 -> compare std_outp"
42        echo "        flag = 3 -> compare pickup files"        echo "        flag = 3 -> compare pickup files"
43        exit ;;        exit ;;
44  esac  esac
45  flag=$1  flag=$1
46    
 #- input :  
 # 1) data.tst = parameter file "data" for 2.Nit iter run  
 # 2) in dir temp : pickup(_cd).0..0{num0}.001.001.data  
   
47  num0=`sed -n 's/nIter0=//p' data.tst | sed 's/,//g' | sed 's/ //g'`  num0=`sed -n 's/nIter0=//p' data.tst | sed 's/,//g' | sed 's/ //g'`
48  #num0="72000"  #num0="72000"
49    
50  # list of pickup(s) that are needed for a restart :  # list of pickup(s) that are needed for a restart :
51  #listP='pickup pickup_cd pickup_nh pickup_ic pickup_land pickup_seaice'  #listP='pickup pickup_cd pickup_nh pickup_ic pickup_land pickup_seaice'
 listP='pickup'  
52    
53    #- executable:
54  mpi=0  mpi=0
55  if [ $mpi -ge 1 ]  if [ $mpi -ge 1 ]
56  then gcmExc=run_ifc_mpi  then gcmExc=run_ifc_mpi
# Line 42  dir1=res_2it Line 62  dir1=res_2it
62  dir2=res_1iA  dir2=res_1iA
63  dir3=res_1iB  dir3=res_1iB
64    
 #make sure that local dir is in the path:  
 export PATH=${PATH}:.  
   
65  #---------------------------  #---------------------------
66  Dbl=`expr $Nit + $Nit`  Dbl=`expr $Nit + $Nit`
67  num1=`expr $num0 + $Nit`  num1=`expr $num0 + $Nit`
68  num2=`expr $num0 + $Dbl`  num2=`expr $num0 + $Dbl`
69  num0c=`add0upto10c $num0`  num0c=`printf "%10.10i\n" $num0`
70  num1c=`add0upto10c $num1`  num1c=`printf "%10.10i\n" $num1`
71  num2c=`add0upto10c $num2`  num2c=`printf "%10.10i\n" $num2`
72  echo $num0 $num1 $num2  echo $num0 $num1 $num2
73  echo $num0c $num1c $num2c  echo $num0c $num1c $num2c
74  echo 'gcmExc='$gcmExc  echo 'gcmExc='$gcmExc
75  # exit  #exit
76  #------------------------  #---------------------------
77    
78  if test $flag = 1 ; then  if test $flag = 1 ; then
79  #------------  #------------
80  rm -r $dir1 $dir2 $dir3  if test -d $dir1 -o -d $dir2 -o  -d $dir3
81    then echo -n 'remove dir: '
82     if test -d $dir1 ; then echo -n $dir1 ' , ' ; rm -r $dir1 ; fi
83     if test -d $dir2 ; then echo -n $dir2 ' , ' ; rm -r $dir2 ; fi
84     if test -d $dir3 ; then echo -n $dir3 ' , ' ; rm -r $dir3 ; fi
85     echo ' '
86    fi
87  mkdir $dir1 $dir2 $dir3  mkdir $dir1 $dir2 $dir3
88    rm -f STDERR.0000
89    
90  cp -p data.tst data  cp -p data.tst data
91  numF=`ls temp/pickup*.${num0c}* 2> /dev/null | grep -c pickup`  numF=`ls temp/pickup*.${num0c}* 2> /dev/null | grep -c pickup`
92  if test $numF != 0 ; then ln -s temp/pickup*.${num0c}* . ; fi  if test $numF != 0 ; then ln -s temp/pickup*.${num0c}* . 2> /dev/null ; fi
93  echo '==> START RUN 2 x' $Nit 'it'  echo '==> START RUN 2 x' $Nit 'it'
94  if [ $mpi -ge 1 ]  if [ $mpi -ge 1 ]
95  then ./$gcmExc std_outp.2it > TTT.out.2it 2>&1  then ./$gcmExc std_outp.2it > TTT.out.2it 2>&1
96  else ./$gcmExc > std_outp.2it 2>&1  else ./$gcmExc > std_outp.2it
97  fi  fi
98    mv STDERR.0000 std__err.2it
99  if test -f pickup.ckptA.001.001.data  if test -f pickup.ckptA.001.001.data
100  then out=`egrep -c 'STOP ABNORMAL END' std_outp.2it`  then out=`egrep -c 'STOP ABNORMAL END' std_outp.2it`
101  else out=9 ; fi  else out=9 ; fi
102  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
103  echo '==>  END  RUN 2 x' $Nit 'it'  echo '==>  END  RUN 2 x' $Nit 'it'
104    listP=`ls pickup*.ckptA* | sed 's/\..*//g' | uniq`
105    echo ' listP=' $listP
106  for xx in $listP  for xx in $listP
107  do  do
108   rnp -s $xx.ckptA $xx.$num2c    rnp_loc $xx.ckptA $xx.$num2c
109  done  done
110  mv *.0??.0??.* $dir1  mv *.0??.0??.* $dir1
111  mv R?.data R?.meta DR?.data DR?.meta *.txt $dir1  txtF=`ls -1 *.txt 2> /dev/null`
112  mv $dir1/pickup*.${num0c}* .  mv R?.data R?.meta DR?.data DR?.meta $txtF $dir1
113    listS=`ls $dir1/pickup*.${num0c}* 2> /dev/null | head -1`
114    if test "x$listS" != x ; then mv $dir1/pickup*.${num0c}* . ; fi
115  #--  #--
116  sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data  sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data
117  echo '==> START RUN 1iA'  echo '==> START RUN 1iA'
118  if [ $mpi -ge 1 ]  if [ $mpi -ge 1 ]
119  then ./$gcmExc std_outp.1iA > TTT.out.1iA 2>&1  then ./$gcmExc std_outp.1iA > TTT.out.1iA 2>&1
120  else ./$gcmExc > std_outp.1iA 2>&1  else ./$gcmExc > std_outp.1iA
121  fi  fi
122    mv STDERR.0000 std__err.1iA
123  if test -f pickup.ckptA.001.001.data  if test -f pickup.ckptA.001.001.data
124  then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA`  then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA`
125  else out=9 ; fi  else out=9 ; fi
# Line 97  if test $out != 0 ; then echo 'RUN 1iA S Line 127  if test $out != 0 ; then echo 'RUN 1iA S
127  echo '==>  END  RUN 1iA'  echo '==>  END  RUN 1iA'
128  for xx in $listP  for xx in $listP
129  do  do
130   rnp -s $xx.ckptA $xx.$num1c   rnp_loc $xx.ckptA $xx.$num1c
131  done  done
132  mv *.0??.0??.* $dir2  mv *.0??.0??.* $dir2
133  mv R?.data R?.meta DR?.data DR?.meta *.txt $dir2  txtF=`ls -1 *.txt 2> /dev/null`
134  rm $dir2/pickup*.${num0c}*  mv R?.data R?.meta DR?.data DR?.meta $txtF $dir2
135    listS=`ls $dir2/pickup*.${num0c}* 2> /dev/null | head -1`
136    if test "x$listS" != x ; then rm $dir2/pickup*.${num0c}* ; fi
137  #--  #--
138  ln -s $dir2/pickup*.$num1c.* .  ln -s $dir2/pickup*.$num1c.* .
139  mv data data.tmp  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data > data.tmp
140  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data.tmp > data  mv -f data.tmp data
141  echo '==> START RUN 1iB'  echo '==> START RUN 1iB'
142  if [ $mpi -ge 1 ]  if [ $mpi -ge 1 ]
143  then ./$gcmExc std_outp.1iB > TTT.out.1iB 2>&1  then ./$gcmExc std_outp.1iB > TTT.out.1iB 2>&1
144  else ./$gcmExc > std_outp.1iB 2>&1  else ./$gcmExc > std_outp.1iB
145  fi  fi
146    mv STDERR.0000 std__err.1iB
147  if test -f pickup.ckptA.001.001.data  if test -f pickup.ckptA.001.001.data
148  then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB`  then out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB`
149  else out=9 ; fi  else out=9 ; fi
# Line 118  if test $out != 0 ; then echo 'RUN 1iB S Line 151  if test $out != 0 ; then echo 'RUN 1iB S
151  echo '==>  END  RUN 1iB'  echo '==>  END  RUN 1iB'
152  for xx in $listP  for xx in $listP
153  do  do
154   rnp -s $xx.ckptA $xx.$num2c   rnp_loc $xx.ckptA $xx.$num2c
155  done  done
156  mv *.0??.0??.* $dir3  mv *.0??.0??.* $dir3
157  mv R?.data R?.meta DR?.data DR?.meta *.txt $dir3  txtF=`ls -1 *.txt 2> /dev/null`
158    mv R?.data R?.meta DR?.data DR?.meta $txtF $dir3
159  rm $dir3/pickup*.$num1c.*  rm $dir3/pickup*.$num1c.*
160  exit  exit
161  #------------  #------------
# Line 145  fi Line 179  fi
179    
180  if test $flag = 3 ; then  if test $flag = 3 ; then
181  #------------  #------------
182  difex=`ls ~jmc/bin/dif_data`  listP=`( cd $dir1 ; ls pickup*.$num2c* | sed 's/\..*//g' | uniq )`
183  for xx in $listP  chkmeta='Y'
184    for yy in $listP
185  do  do
186   $difex $dir1 $dir3 $xx.$num2c   listY=`(cd $dir1 ; ls $yy.$num2c.*.data | sed "s/$yy\.$num2c\.//" | sed "s/\.data//")`
187     zz=$yy.$num2c
188     echo '--> file='$zz', listY='$listY
189     for xx in $listY
190     do
191       echo diff $dir1/$zz.$xx.data $dir3
192       diff $dir1/$zz.$xx.data $dir3
193       out=$?
194       if test $out != 0
195       then echo 'Diff outp=' $out ' ==> stop'
196        exit ; fi
197       if test $chkmeta = 'Y'
198       then
199        echo diff $dir1/$zz.$xx.meta $dir3
200        diff $dir1/$zz.$xx.meta $dir3
201        out=$?
202        if test $out != 0
203        then echo 'Diff outp=' $out ' ==> stop'
204         exit ; fi
205       fi
206     done
207  done  done
208  exit  exit
209  #------------  #------------

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22