/[MITgcm]/MITgcm/tools/tst_2+2
ViewVC logotype

Diff of /MITgcm/tools/tst_2+2

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

revision 1.7 by jmc, Mon Dec 14 20:36:30 2009 UTC revision 1.8 by jmc, Mon Jan 4 17:43:35 2010 UTC
# Line 7  rnp_loc() Line 7  rnp_loc()
7  {  {
8  #   rnp_loc arg_1 arg_2  #   rnp_loc arg_1 arg_2
9  #   rename files with prefix = 'arg_1' to files with prefix = 'arg_2'  #   rename files with prefix = 'arg_1' to files with prefix = 'arg_2'
10      echo ' rnp_loc:' $1 $2      if [ $prt -ge 1 ] ; then echo '  rnp_loc:' $1 $2 ; fi
11  #   rnp -s $1 $2  #   rnp -s $1 $2
12      listY=`ls -1 $1*`      listY=`ls -1 $1*`
13      for yy in $listY      for yy in $listY
14      do      do
15        zz=`echo $yy | sed "s/^$1/$2/"`        zz=`echo $yy | sed "s/^$1/$2/"`
16        mv $yy $zz        if [ $prt -ge 2 ] ; then echo '   '$cmdMV $yy $zz ; fi
17          if test $action = 1 ; then    $cmdMV $yy $zz ; fi
18      done      done
19  }  }
20    
21    #-----------
22    
23    move_outp()
24    {
25    #   move_outp arg_1
26    #   move mitgcm output files to directory 'arg_1'
27        if [ $prt -ge 1 ] ; then echo ' move_outp:' $1 ; fi
28        mv *.data *.meta $1
29        listF=`ls -1 *.txt STD???.00?? 2> /dev/null`
30        if test "x$listF" != x ; then mv $listF $1 ; fi
31        #- move back sym link:
32        listL=`find $1 -type l`
33        ttd=`echo $listL | wc -w`
34        #echo "ttd=$ttd"
35        if test $ttd != 0 ; then
36          #echo "listL='$listL'"
37          if [ $prt -ge 2 ] ; then echo "  mv back:" $listL | sed "s/$1\///g" ; fi
38          mv $listL .
39        fi
40    }
41    
42  #---------------------------  #---------------------------
43    
44  #- exit status:  #- exit status:
# Line 77  case $nArg in Line 99  case $nArg in
99        echo "        flag = 2 -> compare std_outp"        echo "        flag = 2 -> compare std_outp"
100        echo "        flag = 3 -> compare pickup files"        echo "        flag = 3 -> compare pickup files"
101        echo "        flag = 4 -> clean-up output files"        echo "        flag = 4 -> clean-up output files"
102          echo "       flag = NC -> do 0,1,2,3 sequentially (no cleaning)"
103        echo "      flag = All -> do 0,1,2,3,4 sequentially"        echo "      flag = All -> do 0,1,2,3,4 sequentially"
104        exit 9 ;;        exit 9 ;;
105  esac  esac
106    if test $flag = 'NC' -o $flag = 'All' ; then Multi=1 ; else Multi=0 ; fi
107    
108  #-- set the run-command :  #-- set the run-command :
109  if test "x$cmdEXE" = x  if test "x$cmdEXE" = x
# Line 93  fi Line 117  fi
117  echo "cmdEXE='$cmdEXE'"  echo "cmdEXE='$cmdEXE'"
118  #=========================  #=========================
119    
120  if test $flag = '0' -o $flag = 'All' ; then  if test $flag = '0' -o $Multi = '1' ; then
121  #----------------------------------------------------------------------  #----------------------------------------------------------------------
122  # last pickup written (from previous run):  # last pickup written (from previous run):
123  if [ $mpi -ge 1 ]  if [ $mpi -ge 1 ]
# Line 110  then Line 134  then
134      exit 8      exit 8
135    else    else
136      iter=`echo $lastPick | awk '{print $1}'`      iter=`echo $lastPick | awk '{print $1}'`
137      zz=`echo $lastPick | awk '{print $2}'`      sufx=`echo $lastPick | awk '{print $2}'`
138      echo "from previous run std.outp, lastPick='$lastPick' ; iter='$iter' ; zz='$zz'"      echo "from previous run std.outp, lastPick='$lastPick' ; iter='$iter' ; sufx='$sufx'"
139    fi    fi
140  else  else
141    echo "no standard output file '$outpRun' from previous run"    echo "no standard output file '$outpRun' from previous run"
142    exit 7    exit 7
143  fi  fi
144    
 #- rename pickup (if needed)  
 sufx=`printf "%10.10i\n" $iter`  
 if test $zz = $sufx  
 then  
  echo "no need to change pickup sufix"  
 else  
 # echo "rename pickup sufix: $zz -> $sufx"  
  listP=`ls pickup*.${zz}* 2> /dev/null | sed 's/\..*//g' | uniq`  
  if test "x$listP" = x  
  then echo ' rename' $zz  '->' $sufx ': no file to rename'  
  else  
   if [ $prt -ge 1 ] ; then echo ' rename' $zz  '->' $sufx 'for all:' $listP ; fi  
   for yy in $listP  
   do  
     listF=`ls -1 $yy.${zz}*`  
     for xx in $listF  
     do  
       new=`echo $xx | sed "s/^$yy\.$zz/$yy.$sufx/"`  
       if [ $prt -ge 2 ] ; then echo '  '$cmdMV $xx $new ; fi  
       if test $action = 1 ; then    $cmdMV $xx $new ; fi  
     done  
   done  
  fi  
 fi  
145  #-------------------------  #-------------------------
146  echo "prepare parameter file 'data.tst' :"  echo "prepare parameter file 'data.tst' :"
147  cp -p -f data data.tst  cp -p -f data data.tst
# Line 184  if test $action = 1 ; then Line 184  if test $action = 1 ; then
184   mv -f *.meta $tmpDir   mv -f *.meta $tmpDir
185   mv -f *.txt $tmpDir 2> /dev/null   mv -f *.txt $tmpDir 2> /dev/null
186   mv -f STD???.0[0-9][0-9][0-9] $tmpDir   mv -f STD???.0[0-9][0-9][0-9] $tmpDir
  listS=`ls $tmpDir/pickup*.${sufx}* 2> /dev/null | head -1`  
  if test "x$listS" != x ; then mv $tmpDir/pickup*.${sufx}* . ; fi  
187  #- move main parameter file "data":  #- move main parameter file "data":
188   mv -f data $tmpDir   mv -f data $tmpDir
189  #- do not deal with MNC pickup at all:  #- do not deal with MNC pickup at all:
# Line 209  if test $action = 1 ; then Line 207  if test $action = 1 ; then
207    else if [ $prt -ge 2 ] ; then echo ' : not found' ; echo ' ' ; fi    else if [ $prt -ge 2 ] ; then echo ' : not found' ; echo ' ' ; fi
208    fi    fi
209  fi  fi
210    #-------------------------
211    #-- link back pickup files
212     listS=`ls $tmpDir/pickup*.${sufx}* 2> /dev/null | head -1`
213     if test "x$listS" != x ; then
214       if [ $prt -ge 1 ] ; then echo ' link back:' $tmpDir'/pickup*.'${sufx}'*' ; fi
215       if test $action = 1 ; then ln -s $tmpDir/pickup*.${sufx}* . ; fi
216     fi
217    #- rename pickup (if needed)
218    nIt0c=`printf "%10.10i\n" $iter`
219    if test $sufx = $nIt0c
220    then
221     echo "no need to change pickup sufix"
222    else
223     listP=`ls pickup*.${sufx}* 2> /dev/null | sed 's/\..*//g' | uniq`
224     if test "x$listP" = x
225     then echo ' rename' $sufx  '->' $nIt0c ': no file to rename'
226     else
227      if [ $prt -ge 1 ] ; then echo ' rename' $sufx  '->' $nIt0c 'for all:' $listP ; fi
228      for yy in $listP
229      do
230        rnp_loc $yy.${sufx} $yy.$nIt0c
231      done
232     fi
233    fi
234  #----------------------------------------------------------------------  #----------------------------------------------------------------------
235  fi  fi
236    
# Line 242  echo ' cmdEXE='$cmdEXE Line 264  echo ' cmdEXE='$cmdEXE
264  #exit  #exit
265  #---------------------------  #---------------------------
266    
267  if test $flag = '1' -o $flag = 'All' ; then  if test $flag = '1' -o $Multi = '1' ; then
268  #----------------------------------------------------------------------  #----------------------------------------------------------------------
269  #- check at the end of each run for pickup with prefix:  #- check at the end of each run for pickup with prefix:
270  pref='pickup'  pref='pickup'
# Line 284  for xx in $listP Line 306  for xx in $listP
306  do  do
307    rnp_loc $xx.ckptA $xx.$num2c    rnp_loc $xx.ckptA $xx.$num2c
308  done  done
309  mv *.data *.meta $dir1  move_outp $dir1
 txtF=`ls -1 *.txt STD???.00?? 2> /dev/null`  
 if test "x$txtF" != x ; then mv $txtF $dir1 ; fi  
 listS=`ls $dir1/pickup*.${num0c}* 2> /dev/null | head -1`  
 if test "x$listS" != x ; then mv $dir1/pickup*.${num0c}* . ; fi  
310  #---  2nd run ( Nit iter , restart from same Iter = num0 as 1rst run )  #---  2nd run ( Nit iter , restart from same Iter = num0 as 1rst run )
311  sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data.tmp  sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data.tmp
312  mv -f data.tmp data  mv -f data.tmp data
# Line 313  for xx in $listP Line 331  for xx in $listP
331  do  do
332   rnp_loc $xx.ckptA $xx.$num1c   rnp_loc $xx.ckptA $xx.$num1c
333  done  done
334  mv *.data *.meta $dir2  move_outp $dir2
 txtF=`ls -1 *.txt STD???.00?? 2> /dev/null`  
 if test "x$txtF" != x ; then mv $txtF $dir2 ; fi  
 listS=`ls $dir2/pickup*.${num0c}* 2> /dev/null | head -1`  
 if test "x$listS" != x ; then mv $dir2/pickup*.${num0c}* . ; fi  
335  #---  3rd run ( Nit iter , restart from 2nd )  #---  3rd run ( Nit iter , restart from 2nd )
336  ln -s $dir2/pickup*.$num1c.* .  ln -s $dir2/pickup*.$num1c.* .
337  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data > data.tmp  sed "s/^ nIter0=$num0/ nIter0=$num1/g" data > data.tmp
# Line 343  for xx in $listP Line 357  for xx in $listP
357  do  do
358   rnp_loc $xx.ckptA $xx.$num2c   rnp_loc $xx.ckptA $xx.$num2c
359  done  done
360  mv *.data *.meta $dir3  # remove pickup*.$mun1c* sym-link:
361  txtF=`ls -1 *.txt STD???.00?? 2> /dev/null`  find . ! -name . -prune -type l -name 'pickup*.'${num1c}'*' -exec rm {} \;
362  if test "x$txtF" != x ; then mv $txtF $dir3 ; fi  move_outp $dir3
 listS=`ls $dir3/pickup*.${num0c}* 2> /dev/null | head -1`  
 if test "x$listS" != x ; then mv $dir3/pickup*.${num0c}* . ; fi  
 rm $dir3/pickup*.$num1c.*  
363  rm data  rm data
364  #----------------------------------------------------------------------  #----------------------------------------------------------------------
365  fi  fi
366    
367  if test $flag = '2' -o $flag = 'All' ; then  if test $flag = '2' -o $Multi = '1' ; then
368  #----------------------------------------------------------------------  #----------------------------------------------------------------------
369  listCGini="2"  listCGini="2"
370  #-- check if using 3-D solver  #-- check if using 3-D solver
# Line 378  done Line 389  done
389  #----------------------------------------------------------------------  #----------------------------------------------------------------------
390  fi  fi
391    
392  if test $flag = '3' -o $flag = 'All' ; then  if test $flag = '3' -o $Multi = '1' ; then
393  #----------------------------------------------------------------------  #----------------------------------------------------------------------
394  echo ' '  echo ' '
395  echo "== diff pickup files : end of 1rst run (2x$Nit it) & end of 3rd run (2nd $Nit it)"  echo "== diff pickup files : end of 1rst run (2x$Nit it) & end of 3rd run (2nd $Nit it)"
# Line 416  if test $flag = '4' -o $flag = 'All' ; t Line 427  if test $flag = '4' -o $flag = 'All' ; t
427  #-------------  #-------------
428  echo ' '  echo ' '
429  echo "== clean-up and reset :"  echo "== clean-up and reset :"
430     echo '--> remove pickup*.'$num0c'* sym-links:'
431    #find . ! -name . -prune -type l -name 'pickup*.'${num0c}'*' -exec rm {} \;
432     listS=`find . ! -name . -prune -type l -name 'pickup*.'${num0c}'*'`
433     if [ $prt -ge 2 ] ; then echo ' rm' $listS ; fi
434     rm -f $listS
435   echo '--> remove output dir and output files:'   echo '--> remove output dir and output files:'
436   echo ' rm -rf' $dir1 $dir2 $dir3   echo ' rm -rf' $dir1 $dir2 $dir3
437   rm -rf $dir1 $dir2 $dir3   rm -rf $dir1 $dir2 $dir3

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

  ViewVC Help
Powered by ViewVC 1.1.22