GfsEventScript
From Gerris
←Older revision | Newer revision→
GfsEventScript can be used to execute a shell-script at given intervals.
The syntax in parameter files is as follows:
[ GfsEvent ] { COMMANDS }
where COMMANDS is the script to be executed with /bin/sh.
Several shell variables are set:
- GfsTime
- the physical time
- GfsIter
- the iteration number
- GfsPid
- the processor number
- GFS_STOP
- if the exit status of the shell script is
GFS_STOPthe simulation is terminated (the return status indicates a failure)
Examples
- Parallel simulation on four processors
- Rayleigh-Taylor instability
- Boussinesq flow generated by a heated cylinder
- Turbulent air flow around RV Tangaroa
- Coalescence of a pair of Gaussian vortices (Gerris logo)
- Lunar tides in Cook Strait, New Zealand
- Air-water flow around a Series 60 cargo ship
- "Garden sprinkler effect" in wave model
- Dam break on complex topography
- Small amplitude solitary wave interacting with a parabolic hump
- Cyclone-generated wave field
- Time-reversed advection with curvature-based refinement
- Convergence for the three-way vortex merging problem
- Mass conservation
- Lid-driven cavity at Re=1000
- Lid-driven cavity at Re=1000 (explicit scheme)
- Momentum conservation for large density ratios
- Hydrostatic balance with solid boundaries and viscosity
- Hydrostatic balance with quadratic pressure profile
- B\'enard--von K\'arm\'an vortex street behind a cylinder translating in a fluid at rest
- Shape oscillation of an inviscid droplet
- Geostrophic adjustment
- Coastally-trapped waves
- Coastally-trapped waves with adaptive refinement
- Gravity waves in a realistic ocean basin
- Circular dam break on a sphere
- Circular dam break on a rotating sphere
- Advection of a cosine bell around the sphere
EventScript { step = 0.05 } {
echo "Save stdout { width = 1600 height = 200 }"
}
EventScript { start = end } {
echo "Save pid.eps { format = EPS width = 800 height = 100 line_width = 0.2 }" | \
gfsview-batch2D end.gfs pid.gfv
awk '{
if ($1 == "step:")
t = $4;
else if ($1 == "domain")
print t, 100.*($9/$3 - 1.), $3, $5, $9;
}' < balance > balance1
cat <<EOF | gnuplot
set term postscript eps lw 3 solid 20 colour
set output 'balance.eps'
set xlabel 'Time'
set ylabel 'Number of elements per processor'
set key bottom right
plot 'balance1' u 1:3 w l t 'minimum', '' u 1:4 w l t 'average', '' u 1:5 w l t 'maximum'
EOF
}
EventScript { start = 0 } { echo "Save t-0.eps { format = EPS }" }
EventScript { start = 0.7 step = 0.1 } { echo "Save t-$GfsTime.eps { format = EPS }" }
EventScript { istep = 4 } { echo "Save stdout { width = 256 height = 512 }" }
EventScript { start = 19 } { echo "Save t.ppm { width = 256 height = 512 }" }
EventScript { start = end } { convert -colors 256 t.ppm t.eps ; rm -f t.ppm }
EventScript { istep = 4 } { echo "Save stdout { width = 1024 height = 768 }" }
EventScript { start = 1.5 } { echo "Save sections.ppm { width = 1024 height = 768 }" }
EventScript { start = end } {
convert -colors 256 sections.ppm sections.eps ; rm -f sections.ppm
}
EventScript { start = end } {
echo "Save logo.ppm { width = 1024 height = 1024 }"
sleep 5 # to wait for GfsView to finish writing the image
convert -transparent "#0000FF" logo.ppm -geometry 156x156 logo.png
montage -background white -geometry +0+0 logo.png logo.eps
rm -f logo.ppm
}
EventScript { start = end } {
cat <<EOF | gnuplot
set term postscript eps lw 3 solid 20 colour
set output 'pv.eps'
set xlabel 'Time (days)'
set ylabel 'Elevation (metres) or Velocity (metres/s)'
plot 'p' u (\$3/86400.):(\$9/9.81) w l t "Elevation", \
'u' u (\$3/86400.):9 w l t "Velocity"
set output 'a0.eps'
set ylabel 'Maximum harmonic elevation (metres)'
plot [1:]'a0' u (\$3/86400.):(\$9/9.81) w l t ""
EOF
}
EventScript { istep = 5 end = 4 } { echo "Save stdout { width = 1600 height = 1200 }" }
EventScript { start = 1 step = 1 } { gzip -f -q sim-*.gfs }
EventScript { start = 10 } {
echo "Save stdout { width = 1600 height = 1200 }" | \
gfsview-batch3D sim-10.gfs.gz closeup.gfv | \
convert -colors 256 ppm:- closeup.eps
echo "Save stdout { width = 1600 height = 1200 }" | \
gfsview-batch3D sim-10.gfs.gz front.gfv | \
convert -colors 256 ppm:- front.eps
echo "Save stdout { width = 800 height = 600 }" | \
gfsview-batch3D sim-10.gfs.gz comparison.gfv | \
convert -trim ppm:- comparison.ppm
# echo "Save stdout { width = 800 height = 600 }" | \
# gfsview-batch3D sim-10.gfs.gz tank-data.gfv | \
# convert -trim -flip ppm:- tank-data.png
convert tank-data.png tank-data.ppm
montage -geometry +0+0 -tile 1x2 tank-data.ppm comparison.ppm png:- | \
convert -colors 256 png:- comparison.eps
cat <<EOF | gnuplot
set term postscript eps lw 3 solid 20 colour
set output 'f.eps'
set xlabel 'Time'
set ylabel 'Force'
plot 'f' u 1:(\$2*2.) every 10 w l t 'Drag', 'f' every 10 u 1:(\$4*2.) w l t 'Lift'
EOF
}
EventScript { step = 12 } { gzip -f sim-*-*-*.gfs }
EventScript { start = end } { gzip -f end-*-*.gfs }
EventScript { step = 0.5 } {
time=`echo $GfsTime | awk '{printf("%4.1f\n", $1);}'`
cat <<EOF | gnuplot
load 'dam.plot'
set title "t = $time"
set term postscript eps color 14
set output "sim.eps"
plot [-4.:4.]'sim-$GfsTime.txt' u 1:7:8 w filledcu lc 3, 'sim-0.txt' u 1:7 w l lw 4 lc 1 lt 1
EOF
time=`echo $GfsTime | awk '{printf("%04.1f\n", $1);}'`
convert -density 300 sim.eps -trim +repage -bordercolor white -border 10 -resize 640x282! sim-$time.gif
rm -f sim.eps
}
EventScript { start = end } {
gifsicle --colors 256 --optimize --delay 25 --loopcount=0 sim-*.gif > dam.gif
rm -f sim-*.gif sim-*.txt
}
EventScript { istep = 10 } { echo "Save stdout { width = 640 height = 480 }" }
EventScript { start = end } {
for i in 0.6 0.9 1.2 1.5 1.8; do
echo "Save stdout { format = EPS line_width = 0.2 }" | \
gfsview-batch2D sim-$i.gfs isolines.gfv > iso-$i.eps
echo "Save stdout { format = EPS line_width = 0.2 }" | \
gfsview-batch2D sim-$i.gfs cells.gfv > cells-$i.eps
done
echo "Save stdout { width = 1280 height = 960 }" | \
gfsview-batch2D sim-0.9.gfs hump.gfv | convert ppm:- hump.eps
}
EventScript { step = 4 } { gzip -f sim-*.gfs }
EventScript { start = end } {
for i in 12 24 36 48; do
echo "Save hs-$i.eps { format = EPS }" | gfsview-batch2D sim-$i.gfs.gz hs.gfv
echo "Save mesh-$i.eps { format = EPS }" | gfsview-batch2D sim-$i.gfs.gz mesh.gfv
done
echo "Save shifted.eps { format = EPS }" | gfsview-batch2D sim-48.gfs.gz shifted.gfv
cat <<EOF | gnuplot
set term postscript eps color lw 2 18
set output 'hsmax.eps'
set xlabel 'Time (hours)'
set ylabel 'Amplitude (m or m/s)'
set xtics 0,12,48
set grid
plot 'hs' u 3:11 w l t 'max(Hs)', 'vr' u 3:11 w l t 'max(|U10|)'
EOF
}
EventScript { start = 2.5 } { echo "Save t-2.5.eps { format = EPS line_width = 0.5 }" }
EventScript { start = 0.05 } {
echo Clear
cat levels.gfv
echo Save tm_0_05.eps { format = EPS line_width = 0.1 }
echo Clear
cat vorticity.gfv
echo Save tv_0_05.eps { format = EPS line_width = 0.1 }
}
EventScript { start = 0.15 } {
echo Clear
cat levels.gfv
echo Save tm_0_15.eps { format = EPS line_width = 0.1 }
echo Clear
cat vorticity.gfv
echo Save tv_0_15.eps { format = EPS line_width = 0.1 }
}
EventScript { start = 0.25 } {
echo Clear
cat levels.gfv
echo Save tm_0_25.eps { format = EPS line_width = 0.1 }
echo Clear
cat vorticity.gfv
echo Save tv_0_25.eps { format = EPS line_width = 0.1 }
}
EventScript { step = 0.2 } {
echo "Save stdout { format = Gnuplot }"
}
EventScript { start = 1.2 } {
echo "Clear"
cat vectors.gfv
echo "Save vectors.gnu { format = Gnuplot }"
}
EventScript { start = end } {
cat <<EOF | gnuplot
set term postscript eps lw 3 solid 20
set output 'xprof.eps'
set xlabel 'Y'
set ylabel 'U'
plot [-0.5:0.5]'xprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'xprof' u 3:7 w l title "Gerris"
set output 'yprof.eps'
set xlabel 'X'
set ylabel 'V'
plot [-0.5:0.5]'yprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'yprof' u 2:8 w l title "Gerris"
EOF
}
EventScript { start = end } {
cat <<EOF | gnuplot
set term postscript eps lw 3 solid 20
set output 'xprof.eps'
set xlabel 'Y'
set ylabel 'U'
plot [-0.5:0.5]'../xprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'xprof' u 3:7 w l title "Gerris"
set output 'yprof.eps'
set xlabel 'X'
set ylabel 'V'
plot [-0.5:0.5]'../yprof.ghia' u 1:2 title "Ghia et al." w p ps 2 pt 9, 'yprof' u 2:8 w l title "Gerris"
EOF
}
EventScript { start = end } {
gnuplot <<EOF
set term postscript eps color lw 3 solid 20
set output 'k.eps'
set xlabel 'Time'
set ylabel 'Kinetic energy'
set grid
plot 'k' u 3:5 w l t ''
EOF
if awk '{if ($5 > 7.2e-3) exit (1);}' < k ; then
return 0;
else
return $GFS_STOP;
fi
}
EventScript { start = end } {
if awk '{if ($9 > 1e-12) exit (1);}' < v ; then
exit 0;
else
exit $GFS_STOP;
fi
}
EventScript { start = end } {
if awk '{if ($9 > 1e-12) exit (1);}' < v ; then :
else
exit $GFS_STOP;
fi
if awk '{if ($9 > 1e-12) exit (1);}' < p ; then :
else
exit $GFS_STOP;
fi
}
EventScript { start = end } {
cat <<EOF | gnuplot 2>&1 | awk '{if ($1 == "400") print $0;}'
f(x)= a*cos(b*(x+c))
a = 0.00525
b = 110.49
c = 0.611
fit [0.5:] f(x) 'forces.dat' u 1:6 via a,b,c
print "400 ", b/(2*pi)*0.0125
EOF
}
EventScript { start = end } {
cat <<EOF | gnuplot 2>&1 | awk '{if ($1 == "result:") print LEVEL,$2,$3,$4;}'
k(t)=a*exp(-b*t)*(cos(c*t+3.14159265359)+1.)
a = 3e-4
b = 1.5
c = 153
fit k(x) 'k-LEVEL' u 3:5 via a,b,c
print "result: ", a, b, c
EOF
rm -f fit.log
}
EventScript { istart = 100 iend = 500 istep = 100 } { echo "Save error-$GfsIter.eps { format = EPS }"}
OutputSimulation { istart = 1500 } stdout
EventScript { istart = 1500 } { echo "Save error-$GfsIter.eps { format = EPS }"}
EventScript { start = end } {
cat <<EOF | gnuplot
set term postscript eps lw 3 color solid 20
set output 'geo_error.eps'
set xlabel 'Time (days)'
set ylabel 'Maximum error on surface height (cm)'
plot 'e.ref' u 1:(\$2*100.) t '' w l, 'e' u 1:(\$2*100.) t 'ref' w l
EOF
}
EventScript { start = end } { echo -n "-30 " }
EventScript { start = end } { echo -n "-29 " }
EventScript { start = end } { echo -n "-20 " }
EventScript { start = end } { echo -n "25 " }
EventScript { start = end } { echo -n "26 " }
EventScript { start = end } { echo -n "27 " }
EventScript { start = end } { echo -n "28 " }
EventScript { start = end } { echo -n "29 " }
EventScript { start = end } { echo -n "30 " }
EventScript { start = end } { echo -n "-19 " }
EventScript { start = end } { echo -n "-18 " }
EventScript { start = end } { echo -n "-17 " }
EventScript { start = end } { echo -n "-16 " }
EventScript { start = end } { echo -n "-15 " }
EventScript { start = end } { echo -n "-14 " }
EventScript { start = end } { echo -n "-13 " }
EventScript { start = end } { echo -n "-12 " }
EventScript { start = end } { echo -n "-11 " }
EventScript { start = end } { echo -n "-28 " }
EventScript { start = end } { echo -n "-10 " }
EventScript { start = end } { echo -n "-9 " }
EventScript { start = end } { echo -n "-8 " }
EventScript { start = end } { echo -n "-7 " }
EventScript { start = end } { echo -n "-6 " }
EventScript { start = end } { echo -n "-5 " }
EventScript { start = end } { echo -n "-4 " }
EventScript { start = end } { echo -n "-3 " }
EventScript { start = end } { echo -n "-2 " }
EventScript { start = end } { echo -n "-1 " }
EventScript { start = end } { echo -n "-27 " }
EventScript { start = end } { echo -n "0 " }
EventScript { start = end } { echo -n "0.1 " }
EventScript { start = end } { echo -n "0.2 " }
EventScript { start = end } { echo -n "0.3 " }
EventScript { start = end } { echo -n "0.4 " }
EventScript { start = end } { echo -n "0.5 " }
EventScript { start = end } { echo -n "0.6 " }
EventScript { start = end } { echo -n "0.7 " }
EventScript { start = end } { echo -n "0.8 " }
EventScript { start = end } { echo -n "0.9 " }
EventScript { start = end } { echo -n "-26 " }
EventScript { start = end } { echo -n "1 " }
EventScript { start = end } { echo -n "1.1 " }
EventScript { start = end } { echo -n "1.2 " }
EventScript { start = end } { echo -n "1.3 " }
EventScript { start = end } { echo -n "1.4 " }
EventScript { start = end } { echo -n "1.5 " }
EventScript { start = end } { echo -n "1.6 " }
EventScript { start = end } { echo -n "1.7 " }
EventScript { start = end } { echo -n "1.8 " }
EventScript { start = end } { echo -n "1.9 " }
EventScript { start = end } { echo -n "-25 " }
EventScript { start = end } { echo -n "2 " }
EventScript { start = end } { echo -n "2.1 " }
EventScript { start = end } { echo -n "2.2 " }
EventScript { start = end } { echo -n "2.3 " }
EventScript { start = end } { echo -n "2.4 " }
EventScript { start = end } { echo -n "2.5 " }
EventScript { start = end } { echo -n "2.6 " }
EventScript { start = end } { echo -n "2.7 " }
EventScript { start = end } { echo -n "2.8 " }
EventScript { start = end } { echo -n "2.9 " }
EventScript { start = end } { echo -n "-24 " }
EventScript { start = end } { echo -n "3 " }
EventScript { start = end } { echo -n "3.1 " }
EventScript { start = end } { echo -n "3.2 " }
EventScript { start = end } { echo -n "3.3 " }
EventScript { start = end } { echo -n "3.4 " }
EventScript { start = end } { echo -n "3.5 " }
EventScript { start = end } { echo -n "3.6 " }
EventScript { start = end } { echo -n "3.7 " }
EventScript { start = end } { echo -n "3.8 " }
EventScript { start = end } { echo -n "3.9 " }
EventScript { start = end } { echo -n "-23 " }
EventScript { start = end } { echo -n "4 " }
EventScript { start = end } { echo -n "4.1 " }
EventScript { start = end } { echo -n "4.2 " }
EventScript { start = end } { echo -n "4.3 " }
EventScript { start = end } { echo -n "4.4 " }
EventScript { start = end } { echo -n "4.5 " }
EventScript { start = end } { echo -n "4.6 " }
EventScript { start = end } { echo -n "4.7 " }
EventScript { start = end } { echo -n "4.8 " }
EventScript { start = end } { echo -n "4.9 " }
EventScript { start = end } { echo -n "-22 " }
EventScript { start = end } { echo -n "5 " }
EventScript { start = end } { echo -n "6 " }
EventScript { start = end } { echo -n "7 " }
EventScript { start = end } { echo -n "8 " }
EventScript { start = end } { echo -n "9 " }
EventScript { start = end } { echo -n "10 " }
EventScript { start = end } { echo -n "11 " }
EventScript { start = end } { echo -n "12 " }
EventScript { start = end } { echo -n "13 " }
EventScript { start = end } { echo -n "14 " }
EventScript { start = end } { echo -n "-21 " }
EventScript { start = end } { echo -n "15 " }
EventScript { start = end } { echo -n "16 " }
EventScript { start = end } { echo -n "17 " }
EventScript { start = end } { echo -n "18 " }
EventScript { start = end } { echo -n "19 " }
EventScript { start = end } { echo -n "20 " }
EventScript { start = end } { echo -n "21 " }
EventScript { start = end } { echo -n "22 " }
EventScript { start = end } { echo -n "23 " }
EventScript { start = end } { echo -n "24 " }
EventScript { start = end } { echo -n "-30 " }
EventScript { start = end } { echo -n "-29 " }
EventScript { start = end } { echo -n "-20 " }
EventScript { start = end } { echo -n "25 " }
EventScript { start = end } { echo -n "26 " }
EventScript { start = end } { echo -n "27 " }
EventScript { start = end } { echo -n "28 " }
EventScript { start = end } { echo -n "29 " }
EventScript { start = end } { echo -n "30 " }
EventScript { start = end } { echo -n "-19 " }
EventScript { start = end } { echo -n "-18 " }
EventScript { start = end } { echo -n "-17 " }
EventScript { start = end } { echo -n "-16 " }
EventScript { start = end } { echo -n "-15 " }
EventScript { start = end } { echo -n "-14 " }
EventScript { start = end } { echo -n "-13 " }
EventScript { start = end } { echo -n "-12 " }
EventScript { start = end } { echo -n "-11 " }
EventScript { start = end } { echo -n "-28 " }
EventScript { start = end } { echo -n "-10 " }
EventScript { start = end } { echo -n "-9 " }
EventScript { start = end } { echo -n "-8 " }
EventScript { start = end } { echo -n "-7 " }
EventScript { start = end } { echo -n "-6 " }
EventScript { start = end } { echo -n "-5 " }
EventScript { start = end } { echo -n "-4 " }
EventScript { start = end } { echo -n "-3 " }
EventScript { start = end } { echo -n "-2 " }
EventScript { start = end } { echo -n "-1 " }
EventScript { start = end } { echo -n "-27 " }
EventScript { start = end } { echo -n "0 " }
EventScript { start = end } { echo -n "0.1 " }
EventScript { start = end } { echo -n "0.2 " }
EventScript { start = end } { echo -n "0.3 " }
EventScript { start = end } { echo -n "0.4 " }
EventScript { start = end } { echo -n "0.5 " }
EventScript { start = end } { echo -n "0.6 " }
EventScript { start = end } { echo -n "0.7 " }
EventScript { start = end } { echo -n "0.8 " }
EventScript { start = end } { echo -n "0.9 " }
EventScript { start = end } { echo -n "-26 " }
EventScript { start = end } { echo -n "1 " }
EventScript { start = end } { echo -n "1.1 " }
EventScript { start = end } { echo -n "1.2 " }
EventScript { start = end } { echo -n "1.3 " }
EventScript { start = end } { echo -n "1.4 " }
EventScript { start = end } { echo -n "1.5 " }
EventScript { start = end } { echo -n "1.6 " }
EventScript { start = end } { echo -n "1.7 " }
EventScript { start = end } { echo -n "1.8 " }
EventScript { start = end } { echo -n "1.9 " }
EventScript { start = end } { echo -n "-25 " }
EventScript { start = end } { echo -n "2 " }
EventScript { start = end } { echo -n "2.1 " }
EventScript { start = end } { echo -n "2.2 " }
EventScript { start = end } { echo -n "2.3 " }
EventScript { start = end } { echo -n "2.4 " }
EventScript { start = end } { echo -n "2.5 " }
EventScript { start = end } { echo -n "2.6 " }
EventScript { start = end } { echo -n "2.7 " }
EventScript { start = end } { echo -n "2.8 " }
EventScript { start = end } { echo -n "2.9 " }
EventScript { start = end } { echo -n "-24 " }
EventScript { start = end } { echo -n "3 " }
EventScript { start = end } { echo -n "3.1 " }
EventScript { start = end } { echo -n "3.2 " }
EventScript { start = end } { echo -n "3.3 " }
EventScript { start = end } { echo -n "3.4 " }
EventScript { start = end } { echo -n "3.5 " }
EventScript { start = end } { echo -n "3.6 " }
EventScript { start = end } { echo -n "3.7 " }
EventScript { start = end } { echo -n "3.8 " }
EventScript { start = end } { echo -n "3.9 " }
EventScript { start = end } { echo -n "-23 " }
EventScript { start = end } { echo -n "4 " }
EventScript { start = end } { echo -n "4.1 " }
EventScript { start = end } { echo -n "4.2 " }
EventScript { start = end } { echo -n "4.3 " }
EventScript { start = end } { echo -n "4.4 " }
EventScript { start = end } { echo -n "4.5 " }
EventScript { start = end } { echo -n "4.6 " }
EventScript { start = end } { echo -n "4.7 " }
EventScript { start = end } { echo -n "4.8 " }
EventScript { start = end } { echo -n "4.9 " }
EventScript { start = end } { echo -n "-22 " }
EventScript { start = end } { echo -n "5 " }
EventScript { start = end } { echo -n "6 " }
EventScript { start = end } { echo -n "7 " }
EventScript { start = end } { echo -n "8 " }
EventScript { start = end } { echo -n "9 " }
EventScript { start = end } { echo -n "10 " }
EventScript { start = end } { echo -n "11 " }
EventScript { start = end } { echo -n "12 " }
EventScript { start = end } { echo -n "13 " }
EventScript { start = end } { echo -n "14 " }
EventScript { start = end } { echo -n "-21 " }
EventScript { start = end } { echo -n "15 " }
EventScript { start = end } { echo -n "16 " }
EventScript { start = end } { echo -n "17 " }
EventScript { start = end } { echo -n "18 " }
EventScript { start = end } { echo -n "19 " }
EventScript { start = end } { echo -n "20 " }
EventScript { start = end } { echo -n "21 " }
EventScript { start = end } { echo -n "22 " }
EventScript { start = end } { echo -n "23 " }
EventScript { start = end } { echo -n "24 " }
EventScript { start = end } {
gnuplot <<EOF
set term postscript eps color lw 3 solid 20
set output 'k.eps'
set xlabel 'Time'
set ylabel 'Kinetic energy'
set grid
plot 'k' u 3:5 w l t ''
EOF
if awk '{if ($5 > 4e-7) exit (1);}' < k ; then
return 0;
else
return $GFS_STOP;
fi
}
EventScript { start = end } {
status=0
for i in 0.3 0.6 0.9; do
if awk 'BEGIN { n1 = 0; pi = 3.14159265359 }{
if ($1 != "#") {
c = cos($1*pi/180.)*cos($2*pi/180.);
d = atan2(sqrt(1. - c*c),c)*180./pi
i = int(d*2.)
x[i] += d
y[i] += $6
n[i]++
x1[n1] = d;
y1[n1++] = $6;
}
}END {
for (i = 0; i <= 180; i++)
if (n[i] > 0)
print x[i]/n[i], y[i]/n[i], n[i];
sum = 0.;
for (i = 0; i < n1; i++) {
j = int(x1[i]*2.)
d = y1[i] - y[j]/n[j];
sum += d*d;
}
scatter = sqrt(sum/n1);
if (scatter > 0.012) {
print scatter > "/dev/stderr";
exit (1);
}
}' < sim-$i.txt > prof-$i.txt ; then :
else
status=$GFS_STOP;
fi
cat <<EOF | gnuplot
rdist(x,y)=acos(cos(x*pi/180.)*cos(y*pi/180.))*180./pi
cdist(x,y)=sqrt(x*x+y*y)
set xlabel 'Angular distance (degree)'
set ylabel 'Surface height'
set xtics 0,22.5,90
set ytics 0,0.25,0.75
set term postscript eps color lw 2 solid 20
set output 'p-$i.eps'
plot [0:90][0:0.75]'sim-$i.txt' u (rdist(\$1,\$2)):6 ps 0.25 pt 6 t '', 'prof-$i.txt' w l lw 2 t ''
EOF
echo "Save stdout { format = EPS line_width = 0.5 }" | \
gfsview-batch2D sim-$i.gfs isolines.gfv > isolines-$i.eps
done
exit $status
}
EventScript { start = end } {
for i in 0.4 0.8 1.2; do
echo "Save stdout { format = EPS line_width = 0.5 }" | \
gfsview-batch2D sim-$i.gfs isolines.gfv > isolines-$i.eps
done
}
EventScript { start = end } {
( cat isolines.gfv
echo "Save isolines.gnu { format = Gnuplot }"
echo "Clear"
cat reference.gfv
echo "Save reference.gnu { format = Gnuplot }"
echo "Clear"
cat zero.gfv
echo "Save zero.gnu { format = Gnuplot }"
) | gfsview-batch2D end-LEVEL-ALPHA.gfs
cat <<EOF | gnuplot
set term postscript eps lw 2 18 color
set output 'isolines-LEVEL-ALPHA.eps'
set size ratio -1
set xlabel 'Longitude'
set ylabel 'Latitude'
unset key
plot [-120:-60][-30:30]'isolines.gnu' w l, 'reference.gnu' w l, 'zero.gnu' w l
EOF
fixbb isolines-LEVEL-ALPHA.eps
rm -f isolines.gnu reference.gnu zero.gnu
# check mass conservation
if awk '
BEGIN { min = 1000.; max = -1000.; }{
if ($5 < min) min = $5;
if ($5 > max) max = $5;
}
END {
if (max - min != 0.)
exit (1);
}' < t-LEVEL-ALPHA; then
exit 0
else
exit $GFS_STOP
fi
}

