#!/bin/sh #- input : # 1) data.tst = parameter file "data" for 2 iter run # 2) in dir temp : pickup(_cd).0..0{num0}.001.001.data #- works only when start from iter that is a multiple of 10. num0="3600" exec=mitgcmuv # list of pickup needed for a restart : #listP='pickup pickup_cd' listP='pickup pickup_ic' #- dir where to put the results : dir1=res_2it dir2=res_1iA dir3=res_1iB #--------------------------- rm -r $dir1 $dir2 $dir3 mkdir $dir1 $dir2 $dir3 num1=`expr $num0 + 1` num2=`expr $num0 + 2` num0c=`add0upto10c $num0` num1c=`add0upto10c $num1` num2c=`add0upto10c $num2` echo $num0 $num1 $num2 echo $num0c $num1c $num2c echo 'exec='$exec # exit #------------------------ cp -p data.tst data ln -s temp/pickup*.${num0c}* . echo '==> START RUN 2it' ./$exec > std_outp.2it 2>&1 out=`egrep -c 'STOP ABNORMAL END' std_outp.2it` if test $out != 0 ; then echo 'RUN 2it STOP before END => exit' ; exit ; fi echo '==> END RUN 2it' for xx in $listP do rnp $xx.ckptA $xx.$num2c done mv *.00?.00?.* $dir1 mv $dir1/pickup*.${num0c}* . #-- sed 's/^ nTimeSteps=2/ nTimeSteps=1/g' data.tst > data echo '==> START RUN 1iA' ./$exec > std_outp.1iA 2>&1 out=`egrep -c 'STOP ABNORMAL END' std_outp.1iA` if test $out != 0 ; then echo 'RUN 1iA STOP before END => exit' ; exit ; fi echo '==> END RUN 1iA' for xx in $listP do rnp $xx.ckptA $xx.$num1c done mv *.00?.00?.* $dir2 rm $dir2/pickup*.${num0c}* #-- ln -s $dir2/pickup*.$num1c.* . mv data data.tmp sed "s/^ nIter0=$num0/ nIter0=$num1/g" data.tmp > data echo '==> START RUN 1iB' ./$exec > std_outp.1iB 2>&1 out=`egrep -c 'STOP ABNORMAL END' std_outp.1iB` if test $out != 0 ; then echo 'RUN 1iB STOP before END => exit' ; exit ; fi echo '==> END RUN 1iB' for xx in $listP do rnp $xx.ckptA $xx.$num2c done mv *.00?.00?.* $dir3 rm $dir3/pickup*.$num1c.* #-- echo ' ' ; echo '-- compare cg2d_init_res :' echo ' run 1iA:' grep "cg2d_init_res" std_outp.1iA \ | sed 's/.* cg2d_init_res =//' echo ' run 1iB:' grep "cg2d_init_res" std_outp.1iB \ | sed 's/.* cg2d_init_res =//' echo ' run 2it:' grep "cg2d_init_res" std_outp.2it \ | sed 's/.* cg2d_init_res =//' exit