The form of the input
file “SWAMP.IN” for the SWAMP benchmark
version is presented in Figure 4.8.
Only the accuracy control parameter ph1=1/ph
has
an effect on
the algorithm determination of the optimal step size dr in range.
It is defaulted to be 0.5 if you choose anything less than 0.5. ph1
determines the maximum percentage change in depth for dh, which determines in part the step size dr. A value of 1.0 means
that dh is 1% of the water column depth, h,
at that point. A value of 2.0 would be
1/ph1 (in %), or 1/2 % , or
1/200. A value of 4 would mean
1/400. This assures that the percent
change will be no greater than 1/ph1.
It could even be less depending on the local rate of change of bathymetry,
the number of modes and the frequency. The adaptive step algorithm is a
function of water column depth, local rate of change of bathymetry, number
of modes, frequency and bottom
hardness. The step size algorithm does not necessarily decrease dr with increasing frequency, even
though the allowed step size dr is
inversely related to the number of modes.
This is because dr is also a
function of the rate of change in mode number, since a larger number of modes
tolerates greater changes in dr. ph1
values of 1.0 are conservative, a value of 2.0 is very conservative in favor of
precision and a value of 4.0 is very likely overkill. Increasing ph1 by two
increases the run time by almost two.
Larger values of ph1 are preferred when computing up-slope
than down-slope. All other parameters
in this code are physical or output parameters. The value delr determines
the minimum value of dr allowed.
The physical and control parameters are as follows:
rstrt (m) - the value after the first calculated
value of r=rrr1 at which the
bathymetry changes (rstrt> rrr1).
The water column depth is h between rrr1 and rstrt;
rrr1 (m)
- the first print-out value of the
transmission loss. rrr1 may be anything between 0.0 and rstrt-delrs;
delrs (m)
- the step size for print-out. It is wise to choose delrs so that rrr1, rstrt,
rall and rend are all integral
multiples of delrs;
rall (m)
- the final point in range for which
the bathymetry changes. The water column depth varies from h at rstrt to hhh at rall (rall>rstrt);
rend (m) - the final value of r for the calculation. The
bathymetry is constant between rall and
rend (rend>rall);
h (m)
- the initial water column depth, assumed constant from range
rrr1 to rstrt;
hhh (m)
- the final water column depth between rall
to rend, assumed to be constant
between rall and rend;
hs (m) - the source
depth;
hr (m) - the receiver depth. If hr is
=0, the receiver depths are set at a
spacing of dh from the surface
downward. When hr=0, the code prints out the
results for a set of vertical points ;
dh (m) - when hr=0, there are multiple receiver depths
at spacings from dh below the water
surface to the maximum water column depth (either h or hhh). dh
should be smaller than the smallest value of the water column height along the bathymetry. It is ignored when hr is not set to 0;
hhh (m) - the water column
height at rall;
freq (Hz)
- the frequency of the monochromatic
point source;
rho0 (g/cm3)
- the density in the water column (usually set to 1.0);
rho1 (g/cm3) -
the density in the bottom half-space (rho1>rho0
usually);
c11 (m/sec) - the constant sound speed in the bottom
half-space (c11 is greater than the minimum or mean sound
speed in the water column);
alpha (dB per
wavelength) - the attenuation parameter in the bottom half-space;
c(i) (m/sec) - the value of the sound speed at depth z(i);
z(i) (m) - the depth measured from the top of the water
column to the half-space. This pair of values c(i) and z(i) must be input
for up to the largest values of the water column depth which may be h or hhh
in the present form. Termination of reading the pair c(i) and z(i) is done via
(-1 -1);
nwhat - determines the
order of the velocity profile reading in the input file. When nwhat=0,
then it reads c(i),z(i). When nwhat>0
, then it reads the pair as z(i),c(i)
;
delrm (m) - the minimum tolerated step size allowed for dr. Although dr is adapted in the code according
to bathymetry, dr never goes below the value delrm.
It is wise to choose delrm to
be an integer fraction of delrs.
It is easy to generalize the input file for
more diverse bathymetry. Currently, a
layered model is being tested. SWAMP is
meant to be a high frequency model and has been run with over 1000 modes. The relation of the number of modes N to frequency f is roughly N=0.0004*h*f. That means that f*h=2500*N or for 1000 modes in 100 meters of water the frequency is 25 kHz. In 10 meters it is 250 kHz.
SWAMP is based on
matrix and iterative methods and should be easy to vectorize or adapt to a
pipeline computer. It works on a PC in
Microsoft Power FORTRAN, on an SGI and on
a DEC-alpha. The first versions
of SWAMP have been run on a CRAY YMP at a very fast rate as well as on an SGI 8
processor Challenger at high speed.
It can be concluded
from the benchmark results that the methology used by SWAMP is useful for a
coupled range-dependent model with
automatic choice of optimal
step-size in range with very competitive computational performance. The benchmarking has shown that the coupled mode algorithm implemented
in SWAMP is reliable and accurate. The
computational speed of the method seems to be very competitive with any
existing range-dependent acoustic propagation models. This gives a solid basis for
using SWAMP to study the most informative and complicated phenomena related to
pulse propagation in ocean waveguides.
1 1000.0 200.0 25.0
30. 400. ! Use 1, 1st depth,
last depth, s-depth, r-depth, f
1.0 1.2 1590.0 0.5
! rho0, rho1,vel
bottom, atten.
30.0 35000.0 45000.0 50000.0 !
dh, rstart, rall, rend
10.0 5.0 10. 0.5 ! rrr1, delrm, delrs,
DMS accuracy parameter for dr
0.0 1535.0
! (set DMS=1 usual, 2
for more precision (smaller dr)
20.0 1533.0 !and DMS=0.5
for greater speed and more gradual slope)
50.0 1516.0 !velocity
profile z(i) c(i)
100.0 1512.0
1000.0 1500.0
-1 -1 ! Terminate with -1 -1
FIGURE 4.8. Sample input file
“SWAMP.IN”.