Back to home page

MITgcm

 
 

    


Warning, /tools/tst_2+2 is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit 1e25bc25 on 2021-02-16 20:56:47 UTC
84d61bd829 Jean*0001 #! /usr/bin/env bash
                0002 
                0003 rnp_loc()
                0004 {
                0005 #   rnp_loc arg_1 arg_2
                0006 #   rename files with prefix = 'arg_1' to files with prefix = 'arg_2'
84c658b8ac Jean*0007     if [ $prt -ge 1 ] ; then echo '  rnp_loc:' $1 $2 ; fi
84d61bd829 Jean*0008 #   rnp -s $1 $2
                0009     listY=`ls -1 $1*`
                0010     for yy in $listY
                0011     do
                0012       zz=`echo $yy | sed "s/^$1/$2/"`
84c658b8ac Jean*0013       if [ $prt -ge 2 ] ; then echo '   '$cmdMV $yy $zz ; fi
                0014       if test $action = 1 ; then    $cmdMV $yy $zz ; fi
84d61bd829 Jean*0015     done
                0016 }
                0017 
84c658b8ac Jean*0018 #-----------
                0019 
                0020 move_outp()
                0021 {
                0022 #   move_outp arg_1
                0023 #   move mitgcm output files to directory 'arg_1'
                0024     if [ $prt -ge 1 ] ; then echo ' move_outp:' $1 ; fi
                0025     mv *.data *.meta $1
7b03dab2b2 jm-c 0026     listF=`ls -1 *.txt STD???.???? 2> /dev/null`
84c658b8ac Jean*0027     if test "x$listF" != x ; then mv $listF $1 ; fi
                0028     #- move back sym link:
                0029     listL=`find $1 -type l`
                0030     ttd=`echo $listL | wc -w`
                0031     #echo "ttd=$ttd"
                0032     if test $ttd != 0 ; then
                0033       #echo "listL='$listL'"
                0034       if [ $prt -ge 2 ] ; then echo "  mv back:" $listL | sed "s/$1\///g" ; fi
                0035       mv $listL .
                0036     fi
                0037 }
                0038 
84d61bd829 Jean*0039 #---------------------------
                0040 
                0041 #- exit status:
                0042 # 0 -> test is successful
828ecdcdfe Jean*0043 # 1 -> fail in 1rst run
                0044 # 2 -> fail in 2nd  run
                0045 # 3 -> fail in 3rd  run
84d61bd829 Jean*0046 # 4 -> pickup*.data (written at the end of 2+2 & 4 it run) are different
                0047 # 5 -> pickup*.meta (written at the end of 2+2 & 4 it run) are different
                0048 # 6 -> missing 'data.tst' file (removed or not yet generated ?)
b9d7579ec5 Jean*0049 # 7 -> missing executable or standard output from previous run
84d61bd829 Jean*0050 # 8 -> missing information (in standard output of previous run) about pickup
                0051 # 9 -> error in argument list
                0052 
828ecdcdfe Jean*0053 #- default:
                0054 Nit=2
                0055 prt=1    # 1 = print some informations ; 2 = print more informations
                0056 action=1
                0057 cmdMV='mv -f'
                0058 tmpDir='temp_tst'
5fc11be0f5 Jean*0059 wait2run=0  # if needs sometime for file system syncro on all nodes
828ecdcdfe Jean*0060 
                0061 #- default executable, command-line , using MPI:
                0062 gcmEXE=./mitgcmuv
                0063 cmdEXE=
                0064 mpi=0
                0065 
84d61bd829 Jean*0066 nArg=$#
828ecdcdfe Jean*0067 prev=
                0068 for xx ; do
                0069   #echo "xx='$xx'"
                0070   # If the previous option needs an argument, assign it.
                0071   if test -n "$prev"; then
                0072     eval "$prev=\$xx"
                0073     prev=
                0074     nArg=`expr $nArg - 2`
                0075     continue
                0076   fi
                0077 
                0078   case $xx in
                0079   -mpi     ) mpi=1 ; nArg=`expr $nArg - 1` ;;
                0080   -exe     ) prev=gcmEXE ;;
                0081   -command ) prev=cmdEXE ;;
                0082           *) flag=$xx ;;
                0083   esac
                0084 done
f239f71200 Jean*0085 #echo "cmdEXE='$cmdEXE'"
                0086 #echo "nArg=$nArg ; mpi=$mpi ; flag='$flag'"
84d61bd829 Jean*0087 
                0088 case $nArg in
                0089   1) ;;
828ecdcdfe Jean*0090    *) echo "Usage: `basename $0` flag [-mpi] [-exe EXECUTABLE] [-command COMMAND]"
84d61bd829 Jean*0091       echo " Check restart: compare 1 run of 2 x $Nit it long"
                0092       echo "     with 2 consecutive runs of $Nit it long each"
                0093       echo " where: flag = 0 -> prepare (from a previous run) pickup & data files"
828ecdcdfe Jean*0094       echo "        flag = 1 -> do the 3 runs (using COMMAND"
                0095       echo "                         or simply using EXECUTABLE, default=$gcmEXE)"
84d61bd829 Jean*0096       echo "        flag = 2 -> compare std_outp"
                0097       echo "        flag = 3 -> compare pickup files"
                0098       echo "        flag = 4 -> clean-up output files"
84c658b8ac Jean*0099       echo "       flag = NC -> do 0,1,2,3 sequentially (no cleaning)"
84d61bd829 Jean*0100       echo "      flag = All -> do 0,1,2,3,4 sequentially"
                0101       exit 9 ;;
                0102 esac
84c658b8ac Jean*0103 if test $flag = 'NC' -o $flag = 'All' ; then Multi=1 ; else Multi=0 ; fi
84d61bd829 Jean*0104 
828ecdcdfe Jean*0105 #-- set the run-command :
                0106 if test "x$cmdEXE" = x
                0107 then
5fc11be0f5 Jean*0108   if [ $mpi -ge 1 ] ; then
1e25bc2551 Jean*0109     cmdEXE="mpirun -machinefile ../../mf -np 2 $gcmEXE"
5fc11be0f5 Jean*0110   else
828ecdcdfe Jean*0111     cmdEXE=$gcmEXE
5fc11be0f5 Jean*0112   fi
828ecdcdfe Jean*0113 fi
5fc11be0f5 Jean*0114 echo "cmdEXE='$cmdEXE'"
84d61bd829 Jean*0115 #=========================
                0116 
84c658b8ac Jean*0117 if test $flag = '0' -o $Multi = '1' ; then
84d61bd829 Jean*0118 #----------------------------------------------------------------------
b9d7579ec5 Jean*0119 # check for executable:
0bd0f1dece Jean*0120 if test ! -x $gcmEXE ; then
b9d7579ec5 Jean*0121   echo "file '$gcmEXE' does not exist or is not executable"
                0122   exit 7
                0123 fi
84d61bd829 Jean*0124 # last pickup written (from previous run):
828ecdcdfe Jean*0125 if [ $mpi -ge 1 ]
84d61bd829 Jean*0126 then outpRun='STDOUT.0000'
                0127 else outpRun='output.txt'
                0128 fi
828ecdcdfe Jean*0129 if test -r $outpRun
84d61bd829 Jean*0130 then
                0131 # grep ' %CHECKPOINT ' $outpRun | tail -1
                0132   lastPick=`grep ' %CHECKPOINT ' $outpRun | sed 's/^.*%CHECKPOINT //' | tail -1`
828ecdcdfe Jean*0133   if test "x$lastPick" = x
                0134   then
84d61bd829 Jean*0135     echo "no pickup information written in '$outpRun' from previous run"
                0136     exit 8
                0137   else
                0138     iter=`echo $lastPick | awk '{print $1}'`
84c658b8ac Jean*0139     sufx=`echo $lastPick | awk '{print $2}'`
bdafab7f87 Jean*0140     echo "from previous run $outpRun, lastPick='$lastPick' ; iter='$iter' ; sufx='$sufx'"
84d61bd829 Jean*0141   fi
828ecdcdfe Jean*0142 else
84d61bd829 Jean*0143   echo "no standard output file '$outpRun' from previous run"
                0144   exit 7
                0145 fi
                0146 
                0147 #-------------------------
                0148 echo "prepare parameter file 'data.tst' :"
                0149 cp -p -f data data.tst
5ef156a5db Jean*0150 listOut='startTime endTime nIter0 nTimeSteps nEndIter chkPtFreq pChkPtFreq'
                0151 listOut=$listOut' pickupSuff usePickupBeforeC54 mdsioLocalDir pickupStrictlyMatch'
84d61bd829 Jean*0152 #- comment out (in data.tst) all parameters from list: 'listOut'
                0153 for yy in $listOut
                0154 do
                0155   if [ $prt -ge 2 ] ; then echo -n '  commenting out:' $yy ; fi
                0156   nn=`grep -i -c "^ *$yy *=" data.tst`
                0157   if [ $nn -ge 1 ]
                0158   then
                0159     listN=`grep -i -n "^ *$yy *=" data.tst | sed 's/:.*$//'`
                0160     if [ $prt -ge 2 ] ; then echo " : found on line: $listN" ; fi
                0161     for ll in $listN
                0162     do
                0163       sed "$ll s/^./#&/" data.tst > data.tmp_$$
                0164 #     diff data.tmp_$$ data.tst
                0165       mv -f data.tmp_$$ data.tst
                0166     done
                0167   else if [ $prt -ge 2 ] ; then echo ' : not found' ; fi
                0168   fi
                0169 done
                0170 if [ $prt -ge 2 ] ; then echo ' ' ; fi
                0171 # add nIter0 & nTimeSteps in namelist "PARM03":
                0172 Dbl=`expr $Nit \* 2`
2403391fc0 Mart*0173 sed -e "/^ *\&PARM03/a\\
050aa9fb61 Mart*0174 \ nTimeSteps=$Dbl," data.tst > data.tmp_$$
84d61bd829 Jean*0175 mv -f data.tmp_$$ data.tst
2403391fc0 Mart*0176 sed -e "/^ *\&PARM03/a\\
050aa9fb61 Mart*0177 \ nIter0=$iter," data.tst > data.tmp_$$
84d61bd829 Jean*0178 mv -f data.tmp_$$ data.tst
                0179 echo "prepare file 'data.tst' : done"
828ecdcdfe Jean*0180 if  [ $prt -ge 1 ] ; then
84d61bd829 Jean*0181   echo ' diff data.tst data' ; diff data.tst data ; echo ' ' ;
                0182 fi
                0183 #---- clean up current dir: move output to temp_tst dir:
                0184 if test $action = 1 ; then
                0185  rm -rf $tmpDir
                0186  mkdir $tmpDir
                0187  mv -f *.data $tmpDir
                0188  mv -f *.meta $tmpDir
5fc11be0f5 Jean*0189  mv -f *.txt $tmpDir 2> /dev/null
7b03dab2b2 jm-c 0190  mv -f STD???.[0-9][0-9][0-9][0-9] $tmpDir
84d61bd829 Jean*0191 #- move main parameter file "data":
                0192  mv -f data $tmpDir
                0193 #- do not deal with MNC pickup at all:
                0194  cp -p -f data.pkg data.tmp_$$
                0195  mv -f data.pkg $tmpDir
                0196  mv -f data.tmp_$$ data.pkg
                0197  yy='useMNC'
                0198   if [ $prt -ge 2 ] ; then echo -n "  commenting out: $yy in data.pkg" ; fi
                0199   nn=`grep -i -c "^ *$yy *=" data.pkg`
                0200   if [ $nn -ge 1 ]
                0201   then
                0202     listN=`grep -i -n "^ *$yy *=" data.pkg | sed 's/:.*$//'`
                0203     if [ $prt -ge 2 ] ; then echo " : found on line: $listN" ; fi
                0204     for ll in $listN
                0205     do
                0206       sed "$ll s/^./#&/" data.pkg > data.tmp_$$
828ecdcdfe Jean*0207       if  [ $prt -ge 1 ] ; then echo ' changes in data.pkg'
84d61bd829 Jean*0208         diff data.tmp_$$ data.pkg ; echo ' ' ; fi
                0209       mv -f data.tmp_$$ data.pkg
                0210     done
                0211   else if [ $prt -ge 2 ] ; then echo ' : not found' ; echo ' ' ; fi
                0212   fi
                0213 fi
84c658b8ac Jean*0214 #-------------------------
                0215 #-- link back pickup files
                0216  listS=`ls $tmpDir/pickup*.${sufx}* 2> /dev/null | head -1`
b9d7579ec5 Jean*0217  if test "x$listS" != x ; then
84c658b8ac Jean*0218    if [ $prt -ge 1 ] ; then echo ' link back:' $tmpDir'/pickup*.'${sufx}'*' ; fi
                0219    if test $action = 1 ; then ln -s $tmpDir/pickup*.${sufx}* . ; fi
                0220  fi
                0221 #- rename pickup (if needed)
                0222 nIt0c=`printf "%10.10i\n" $iter`
                0223 if test $sufx = $nIt0c
                0224 then
                0225  echo "no need to change pickup sufix"
                0226 else
                0227  listP=`ls pickup*.${sufx}* 2> /dev/null | sed 's/\..*//g' | uniq`
                0228  if test "x$listP" = x
                0229  then echo ' rename' $sufx  '->' $nIt0c ': no file to rename'
                0230  else
                0231   if [ $prt -ge 1 ] ; then echo ' rename' $sufx  '->' $nIt0c 'for all:' $listP ; fi
                0232   for yy in $listP
                0233   do
                0234     rnp_loc $yy.${sufx} $yy.$nIt0c
                0235   done
                0236  fi
                0237 fi
84d61bd829 Jean*0238 #----------------------------------------------------------------------
                0239 fi
                0240 
                0241 #=========================
                0242 
                0243 if test -r data.tst ; then
                0244 #- extract length of runs & starting iter number from file "data.tst"
                0245  num0=`sed -n 's/^ nIter0=//p' data.tst | sed 's/,//g' | sed 's/ //g'`
                0246  Dbl=`sed -n 's/^ nTimeSteps=//p' data.tst | sed 's/,//g'`
                0247  Nit=`expr $Dbl / 2`
                0248 # Nit = Nb of iter of 2nd & 3rd run (1rst one is 2 x Nit iter long)
                0249 else
                0250  echo '=> Need a readable "data.tst" file for the 2 x Nit iterations run'
                0251  exit 6
                0252 fi
                0253 
                0254 #- dir where to put the results :
                0255 dir1=res_2it
                0256 dir2=res_1iA
                0257 dir3=res_1iB
                0258 
                0259 #---------------------------
                0260 num1=`expr $num0 + $Nit`
                0261 num2=`expr $num0 + $Dbl`
                0262 num0c=`printf "%10.10i\n" $num0`
                0263 num1c=`printf "%10.10i\n" $num1`
                0264 num2c=`printf "%10.10i\n" $num2`
                0265 echo " start-end iter: $num0 , $num1 , $num2"
                0266 echo " sufix: '$num0c' '$num1c' '$num2c'"
828ecdcdfe Jean*0267 echo ' cmdEXE='$cmdEXE
84d61bd829 Jean*0268 #exit
                0269 #---------------------------
                0270 
84c658b8ac Jean*0271 if test $flag = '1' -o $Multi = '1' ; then
84d61bd829 Jean*0272 #----------------------------------------------------------------------
                0273 #- check at the end of each run for pickup with prefix:
                0274 pref='pickup'
                0275 offLine=`grep -i -c '^ *useOffLine *= *\.TRUE\.' data.pkg`
                0276 if [ $offLine -ge 1 ] ; then pref='pickup_ptracers' ; fi
                0277 #---------------------------
                0278 if test -d $dir1 -o -d $dir2 -o  -d $dir3
                0279 then echo -n 'remove dir: '
                0280  if test -d $dir1 ; then echo -n $dir1 ' , ' ; rm -r $dir1 ; fi
                0281  if test -d $dir2 ; then echo -n $dir2 ' , ' ; rm -r $dir2 ; fi
                0282  if test -d $dir3 ; then echo -n $dir3 ' , ' ; rm -r $dir3 ; fi
                0283  echo ' '
                0284 fi
                0285 mkdir $dir1 $dir2 $dir3
                0286 rm -f STDERR.0000
                0287 
                0288 #--- 1rst run ( 2 x Nit iter )
                0289 cp -p data.tst data
                0290 echo '==> START RUN 2 x' $Nit 'it'
                0291 if [ $mpi -ge 1 ]
b9d7579ec5 Jean*0292 then
5fc11be0f5 Jean*0293      sleep $wait2run
                0294      $cmdEXE > TTT.out.2it 2>&1
                0295      mv STDOUT.0000 std_outp.2it
                0296      cat TTT.out.2it
828ecdcdfe Jean*0297 else $cmdEXE > std_outp.2it
84d61bd829 Jean*0298 fi
3e5190b2b6 Jean*0299 if test ! -s std_outp.2it
                0300 then echo "empty or no output file: 'std_outp.2it' => exit" ; exit 1 ; fi
84d61bd829 Jean*0301 mv STDERR.0000 std__err.2it
                0302 out=`egrep -c 'STOP ABNORMAL END' std_outp.2it`
                0303 if test $out != 0
                0304 then echo "==> RUN 2 x $Nit it : ABNORMAL END => exit" ; exit 1 ; fi
edcaaac64d Jean*0305 listF=`ls -1 $pref.ckptA*.data 2> /dev/null`
                0306 if test "x$listF" = x
                0307 then echo "==> RUN 2 x $Nit it STOP without writing $pref => exit" ; exit 1
                0308 else echo "==>  END  RUN 2 x $Nit it" ; fi
84d61bd829 Jean*0309 listP=`ls pickup*.ckptA* | sed 's/\..*//g' | uniq`
                0310 echo ' listP=' $listP
                0311 for xx in $listP
                0312 do
                0313   rnp_loc $xx.ckptA $xx.$num2c
                0314 done
84c658b8ac Jean*0315 move_outp $dir1
84d61bd829 Jean*0316 #---  2nd run ( Nit iter , restart from same Iter = num0 as 1rst run )
5fc11be0f5 Jean*0317 sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data.tmp
                0318 mv -f data.tmp data
84d61bd829 Jean*0319 echo '==> START RUN 1iA'
                0320 if [ $mpi -ge 1 ]
b9d7579ec5 Jean*0321 then
5fc11be0f5 Jean*0322      sleep $wait2run
                0323      $cmdEXE > TTT.out.1iA 2>&1
                0324      mv STDOUT.0000 std_outp.1iA
                0325      cat TTT.out.1iA
828ecdcdfe Jean*0326 else $cmdEXE > std_outp.1iA
84d61bd829 Jean*0327 fi
3e5190b2b6 Jean*0328 if test ! -s std_outp.1iA
                0329 then echo "empty or no output file: 'std_outp.1iA' => exit" ; exit 2 ; fi
84d61bd829 Jean*0330 mv STDERR.0000 std__err.1iA
                0331 out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA`
                0332 if test $out != 0
                0333 then echo "==> RUN 1iA : ABNORMAL END => exit" ; exit 2 ; fi
edcaaac64d Jean*0334 listF=`ls -1 $pref.ckptA*.data 2> /dev/null`
                0335 if test "x$listF" = x
                0336 then echo "==> RUN 1iA STOP without writing $pref => exit" ; exit 2
                0337 else echo "==>  END  RUN 1iA" ; fi
84d61bd829 Jean*0338 for xx in $listP
                0339 do
                0340  rnp_loc $xx.ckptA $xx.$num1c
                0341 done
84c658b8ac Jean*0342 move_outp $dir2
84d61bd829 Jean*0343 #---  3rd run ( Nit iter , restart from 2nd )
                0344 ln -s $dir2/pickup*.$num1c.* .
                0345 sed "s/^ nIter0=$num0/ nIter0=$num1/g" data > data.tmp
                0346 mv -f data.tmp data
                0347 echo '==> START RUN 1iB'
                0348 if [ $mpi -ge 1 ]
b9d7579ec5 Jean*0349 then
5fc11be0f5 Jean*0350      sleep $wait2run
                0351      $cmdEXE > TTT.out.1iB 2>&1
                0352      mv STDOUT.0000 std_outp.1iB
                0353      cat TTT.out.1iB
828ecdcdfe Jean*0354 else $cmdEXE > std_outp.1iB
84d61bd829 Jean*0355 fi
3e5190b2b6 Jean*0356 if test ! -s std_outp.1iB
                0357 then echo "empty or no output file: 'std_outp.1iB' => exit" ; exit 3 ; fi
84d61bd829 Jean*0358 mv STDERR.0000 std__err.1iB
                0359 out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB`
                0360 if test $out != 0
                0361 then echo "==> RUN 1iB : ABNORMAL END => exit" ; exit 3 ; fi
edcaaac64d Jean*0362 listF=`ls -1 $pref.ckptA*.data 2> /dev/null`
                0363 if test "x$listF" = x
                0364 then echo "==> RUN 1iB STOP without writing $pref => exit" ; exit 3
                0365 else echo "==>  END  RUN 1iB" ; fi
84d61bd829 Jean*0366 for xx in $listP
                0367 do
                0368  rnp_loc $xx.ckptA $xx.$num2c
                0369 done
84c658b8ac Jean*0370 # remove pickup*.$mun1c* sym-link:
                0371 find . ! -name . -prune -type l -name 'pickup*.'${num1c}'*' -exec rm {} \;
                0372 move_outp $dir3
84d61bd829 Jean*0373 rm data
                0374 #----------------------------------------------------------------------
                0375 fi
                0376 
84c658b8ac Jean*0377 if test $flag = '2' -o $Multi = '1' ; then
84d61bd829 Jean*0378 #----------------------------------------------------------------------
b020d20bef Jean*0379 listCGini="2"
                0380 #-- check if using 3-D solver
                0381   nn=`grep -i -c "^ *nonHydrostatic *= *\.TRUE\." data.tst`
b9d7579ec5 Jean*0382  if [ $nn -eq 0 ] ; then
b020d20bef Jean*0383   nn=`grep -i -c "^ *implicitIntGravWave *= *\.TRUE\." data.tst`
                0384  fi
                0385 if [ $nn -ge 1 ] ; then listCGini="$listCGini 3"; fi
                0386 for nn in $listCGini
                0387 do
                0388   echo ' ' ; echo "== compare cg${nn}d_init_res :"
                0389   echo ' run 1iA:'
                0390    grep "cg${nn}d_init_res" std_outp.1iA \
                0391         | sed "s/.* cg${nn}d_init_res =//"
                0392   echo ' run 1iB:'
                0393    grep "cg${nn}d_init_res" std_outp.1iB \
                0394         | sed "s/.* cg${nn}d_init_res =//"
                0395   echo ' run 2it:'
                0396    grep "cg${nn}d_init_res" std_outp.2it \
                0397         | sed "s/.* cg${nn}d_init_res =//"
                0398 done
84d61bd829 Jean*0399 #----------------------------------------------------------------------
                0400 fi
                0401 
84c658b8ac Jean*0402 if test $flag = '3' -o $Multi = '1' ; then
84d61bd829 Jean*0403 #----------------------------------------------------------------------
828ecdcdfe Jean*0404 echo ' '
84d61bd829 Jean*0405 echo "== diff pickup files : end of 1rst run (2x$Nit it) & end of 3rd run (2nd $Nit it)"
                0406 listP=`( cd $dir1 ; ls pickup*.$num2c* | sed 's/\..*//g' | uniq )`
                0407 chkmeta='Y'
                0408 for yy in $listP
                0409 do
edcaaac64d Jean*0410  listY=`(cd $dir1 ; ls $yy.$num2c*.data | sed "s/$yy\.$num2c//" | sed "s/data$//")`
84d61bd829 Jean*0411  zz=$yy.$num2c
                0412  echo '--> file='$zz', listY='$listY
                0413  for xx in $listY
                0414  do
edcaaac64d Jean*0415    echo ' diff' $dir1/$zz${xx}data $dir3
                0416    diff $dir1/$zz${xx}data $dir3
84d61bd829 Jean*0417    out=$?
                0418    if test $out != 0 ; then
bdafab7f87 Jean*0419     #-- refined check: exclude diff between +0 and -0
                0420     nbDif=`cmp -l  $dir1/$zz${xx}data $dir3/$zz${xx}data \
                0421            | sed -e '/ 0 200$/d' -e '/ 200   0$/d' | wc -l`
                0422     if test $nbDif != 0 ; then
                0423      echo "Diff outp= $out (nb-Diff= $nbDif ) ==> stop"
                0424      exit 4
                0425     fi
84d61bd829 Jean*0426    fi
edcaaac64d Jean*0427    if test $chkmeta = 'Y' -a -f $dir1/$zz${xx}meta ; then
                0428     echo ' diff' $dir1/$zz${xx}meta $dir3
                0429     diff $dir1/$zz${xx}meta $dir3
84d61bd829 Jean*0430     out=$?
828ecdcdfe Jean*0431     if test $out != 0 ; then
84d61bd829 Jean*0432      echo 'Diff outp=' $out ' ==> stop'
                0433      exit 5
                0434     fi
                0435    fi
                0436  done
                0437 done
                0438 #----------------------------------------------------------------------
                0439 fi
                0440 
                0441 if test $flag = '4' -o $flag = 'All' ; then
                0442 #-------------
828ecdcdfe Jean*0443 echo ' '
84d61bd829 Jean*0444 echo "== clean-up and reset :"
84c658b8ac Jean*0445  echo '--> remove pickup*.'$num0c'* sym-links:'
                0446 #find . ! -name . -prune -type l -name 'pickup*.'${num0c}'*' -exec rm {} \;
                0447  listS=`find . ! -name . -prune -type l -name 'pickup*.'${num0c}'*'`
                0448  if [ $prt -ge 2 ] ; then echo ' rm' $listS ; fi
                0449  rm -f $listS
84d61bd829 Jean*0450  echo '--> remove output dir and output files:'
                0451  echo ' rm -rf' $dir1 $dir2 $dir3
                0452  rm -rf $dir1 $dir2 $dir3
                0453  echo ' rm -f' std_????.?i?
                0454  rm -f std_????.?i?
5fc11be0f5 Jean*0455  rm -f TTT.out.?i? 2> /dev/null
b88c45a521 Jean*0456  echo ' rm -f' data data.pkg data.tst
                0457  rm -f data data.pkg data.tst
84d61bd829 Jean*0458 #- move back files from temp_tst dir:
                0459  if test -d $tmpDir ; then
                0460   echo "--> move back files from 'temp_tst' dir."
                0461   cd $tmpDir ; mv -f * .. ; cd ..
                0462   rmdir $tmpDir
                0463  fi
                0464 #-------------
                0465 fi
                0466 exit 0