KRAKEN is a normal mode program for range-varying environments in either cartesian (line sources) or cylindrical coordinates (point sources). The basic method is described in
Porter, Michael B. and Reiss, Edward L., "A numerical method for ocean-acoustic normal modes", JASA 76, 244-252 (1984).
Porter, Michael B. and Reiss, Edward L., "A numerical method for bottom interacting ocean acoustic normal modes", JASA 77, 1760-1767 (1985).
Range-dependent solutions are obtained by using optionally adiabatic or coupled mode theory.
KRAKEN is the main program. It takes an environmental file, computes the modes, and writes them to disk for use by other modules. A print file is also produced, echoing the user input.
KRAKENC is a complex arithmetic version (hence the C in KRAKENC) of KRAKEN. By working in the complex domain, loss mechanisms such as ice scatter and material absorption may be included 'exactly' rather than perturbatively. In addition, leaky modes may be computed. The price of this non-perturbative treatment is a slowdown in speed by approximately a factor of 4. This factor principally represents the difference between complex and real arithmetic.
A further slow down by a factor of 2 or more may occur if the Twersky scatter option is used in KRAKENC. The calculation of the Twersky scatter function can require significant CPU time; enough to actually be a dominant part of the cost of computing the modes. KRAKEN incorporates the scatter perturbatively and is much less sensitive to the cost of Twersky scatter.
KRAKEN does not at allow for losses in elastic media due to material attenuation. Thus, for attenuating elastic media, KRAKENC should be used.
Files:
Name Unit Description
Input
*.ENV 1 ENVironmental data
*.BRC 10 Bottom Refl. Coef. (optl)
*.TRC 11 Top Refl. Coef. (optl)
*.IRC 12 Internal Refl. Coef. (optl)
Output
*.PRT 6 PRinT file
*.MOD 20 MODe file
'FRAMIV Twersky S/S ice scatter' ! TITLE
50.0 ! FREQ (Hz)
4 ! NMEDIA
'NSF' ! OPTIONS
0.0092 8.2 5.1 ! BUMDEN (1/m) ETA (m) XI (m)
750 0.0 3750.0 ! NMESH SIGMA (m) Z(NSSP)
0.0 1436.0 0.0 1.03/ ! Z(m) CP CS(m/s) RHO(gm/cm3)
30.0 1437.4 /
50.0 1437.7 /
80.0 1439.5 /
100.0 1441.9 /
125.0 1444.6 /
150.0 1450.0 /
175.0 1456.1 /
200.0 1458.4 /
250.0 1460.0 /
300.0 1460.5 /
350.0 1460.6 /
400.0 1461.0 /
450.0 1461.5 /
500.0 1462.0 /
600.0 1462.9 /
700.0 1463.9 /
800.0 1464.8 /
900.0 1465.8 /
1000.0 1466.7 /
1100.0 1467.0 /
1200.0 1469.0 /
1300.0 1469.5 /
1400.0 1471.8 /
1600.0 1474.5 /
1800.0 1477.0 /
2000.0 1479.6 /
2500.0 1487.9 /
3750.0 1510.4 /
35 0.0 3808.33
3750.0 1504.6 0.0 1.50 .15 0.0
3808.33 1603.07 /
35 0.0 3866.66
3808.33 1603.07 0.0 1.533 .15 0.0
3866.66 1701.53 /
35 0.0 3925.0
3866.66 1701.53 0.0 1.566 .15 0.0
3925.0 1800.0 /
'A' 0.0 ! BOTOPT SIGMA (m)
3925.0 1800.0 0.0 1.60 .15 0.0
0.0 1504.0 ! CLOW CHIGH (m/s)
300.0 ! RMAX (km)
1 ! NSD
100.0 / ! SD(1:NSD) (m)
1 ! NRD
200.0 / ! RD(1:NRD) (m)
Syntax:
CLOW CHIGH
Description:
CLOW: Lower phase speed limit (m/s).
CLOW will be computed automatically if you set it to zero. However, by using a nonzero CLOW you can skip the computation of slower modes. Mainly this is used to exclude interfacial modes (e.g.a Scholte wave). The root finder is especially slow in converging to these interfacial modes and when the source and receiver are sufficiently are far from the interface the interfacial modes are negligible.
CHIGH: Upper phase speed limit (m/s).
The larger CHIGH is, the more modes are calculated and the longer the execution time. Therefore CHIGH should be set as small aspossible to minimize execution time.
On the other hand, CHIGH controls the maximumray angle included in a subsequent field calculation-- ray paths are included which turn at the depth corresponding to CHIGH in the SSP. Thus a larger CHIGH means more deeply penetrating rays are included.
Choice of CHIGH then becomes a matter of experience. In the far-field and at high-frequencies, rays travelling in the ocean bottom are severely attenuated and one may set CHIGH to the sound speed at the ocean bottom. Inthe near-field, low-frequency case, rays refracted in the bottom may contribute significantly to the field and CHIGH should be chosen to include such ray paths.
KRAKEN will (if necessary) reduce CHIGH so that only trapped (non-leaky) modes are computed.
KRAKENC will attempt to compute leaky modes if CHIGH exceeds the phase velocity of either the S-wave or P-wave speed in the half-space. Leaky mode computations are somewhat experimental at this time.
Syntax:
RMAX
Description:
RMAX: Maximum range (km).
This parameter should be set to the largest range for which a field calculation will be desired.
During the mode calculation the mesh is doubled successively until the eigenvalues are sufficiently accurate at this range. If you set it to zero, then no mesh doublings will be performed. You don't need to worry too much about this parameter-- even if you set it to zero the results will usually be reasonable.
Syntax:
NSD
SD(1:NSD)
NRD
RD(1:NRD)
Description:
NSD: Number of source depths.
SD(): Source depths (m).
NRD: Number of receiver depths.
RD(): Receiver depths (m).
This data
is read in using list-directed I/O so you can type it
just about any way you want, e.g. on one line or split
onto
several
lines. Also if your depths are
equally
spaced then you can type just the first and last depths
followed by a '/' and the intermediate depths will be
generated automatically.
CPU time is essentially independent of the number of sources and receivers so that you can freely ask for thousands of depths. However, for high-frequencies the storage for the mode files can be excessive.
The source/rcvr depths are sorted and merged and then the modes are calculated at the union of the two sets of depths. Thus, it doesn't matter if you mix up source and receiver depths. Furthermore, you can leave out either the source or receiver specification (but not both simultaneously) simply by using a '/' for that line.
Sources and receivers cannot be placed in a half-space.
If you are
going to be doing a coupled-mode calculation then
you must specify a large number of
receiver depths spanning
the entire column (down to the half-space). Fine
sampling (about 10 points/wavelenght) is needed to
calculate the coupling integrals accurately.
Starting out for the first time? If the distribution does not have precompiled executables for your hardware, run the 'makefiles' to compile and link of the whole package.
KRAKEN filename
where "filename" is the environmental file. (The process is the same under DOS or Linux.) The KRAKEN.HLP file details the differences between the KRAKEN and KRAKENC.
FIELD filename
a. PLOTMODE to plot the modes.
b. PLOTSSP to plot the sound speed profile.
c. PLOTSHD to plot the pressure field as a function of range and depth.
Once the modes are created by KRAKEN or KRAKENC you can run the above plot programs in any sequence or as often as you like.
The print-out for this input is shown below. The version we run, has the complicated Twersky ice scatter model disabled since that part of the code has not been upgraded to Fortran95. Therefore the results do not actually include that effect of ice scatter loss.
KRAKEN- FRAMIV Twersky S/S ice scatter
Frequency = 20.00 NMedia = 4
N2-LINEAR approximation to SSP
Attenuation units: dB/mkHz
Twersky SOFT BOSS scatter model
Twersky ice model parameters:
Bumden = 0.920000E-02 Eta = 8.20 Xi = 5.10
Z AlphaR BetaR Rho AlphaI BetaI
( Number of pts = 750 RMS roughness = 0.00 )
0.00 1436.00 0.00 1.03 0.0000 0.0000
30.00 1437.40 0.00 1.03 0.0000 0.0000
50.00 1437.70 0.00 1.03 0.0000 0.0000
80.00 1439.50 0.00 1.03 0.0000 0.0000
100.00 1441.90 0.00 1.03 0.0000 0.0000
125.00 1444.60 0.00 1.03 0.0000 0.0000
150.00 1450.00 0.00 1.03 0.0000 0.0000
175.00 1456.10 0.00 1.03 0.0000 0.0000
200.00 1458.40 0.00 1.03 0.0000 0.0000
250.00 1460.00 0.00 1.03 0.0000 0.0000
300.00 1460.50 0.00 1.03 0.0000 0.0000
350.00 1460.60 0.00 1.03 0.0000 0.0000
400.00 1461.00 0.00 1.03 0.0000 0.0000
450.00 1461.50 0.00 1.03 0.0000 0.0000
500.00 1462.00 0.00 1.03 0.0000 0.0000
600.00 1462.90 0.00 1.03 0.0000 0.0000
700.00 1463.90 0.00 1.03 0.0000 0.0000
800.00 1464.80 0.00 1.03 0.0000 0.0000
900.00 1465.80 0.00 1.03 0.0000 0.0000
1000.00 1466.70 0.00 1.03 0.0000 0.0000
1100.00 1467.00 0.00 1.03 0.0000 0.0000
1200.00 1469.00 0.00 1.03 0.0000 0.0000
1300.00 1469.50 0.00 1.03 0.0000 0.0000
1400.00 1471.80 0.00 1.03 0.0000 0.0000
1600.00 1474.50 0.00 1.03 0.0000 0.0000
1800.00 1477.00 0.00 1.03 0.0000 0.0000
2000.00 1479.60 0.00 1.03 0.0000 0.0000
2500.00 1487.90 0.00 1.03 0.0000 0.0000
3750.00 1510.40 0.00 1.03 0.0000 0.0000
( Number of pts = 35 RMS roughness = 0.00 )
3750.00 1504.60 0.00 1.50 0.1500 0.0000
3808.33 1603.07 0.00 1.50 0.1500 0.0000
( Number of pts = 35 RMS roughness = 0.00 )
3808.33 1603.07 0.00 1.53 0.1500 0.0000
3866.66 1701.53 0.00 1.53 0.1500 0.0000
( Number of pts = 35 RMS roughness = 0.00 )
3866.66 1701.53 0.00 1.57 0.1500 0.0000
3925.00 1800.00 0.00 1.57 0.1500 0.0000
( RMS roughness = 0.00 )
ACOUSTO-ELASTIC half-space
3925.00 1800.00 0.00 1.60 0.1500 0.0000
CLOW = 0.0000 CHIGH = 1504.0
RMAX = 300.0000000000000
Number of sources = 1
100.000
Number of receivers = 501
0.00000 7.85000 15.7000 23.5500 31.4000
39.2500 47.1000 54.9500 62.8000 70.6500
78.5000 86.3500 94.2000 102.050 109.900
117.750 125.600 133.450 141.300 149.150
157.000 164.850 172.700 180.550 188.400
196.250 204.100 211.950 219.800 227.650
235.500 243.350 251.200 259.050 266.900
274.750 282.600 290.450 298.300 306.150
314.000 321.850 329.700 337.550 345.400
353.250 361.100 368.950 376.800 384.650
392.500
... 3925.00000
Mesh multiplier CPU seconds
--- Number of modes = 16
1 0.200E-01
--- Number of modes = 16
2 0.100E-01
I K ALPHA PHASE SPEED GROUP SPEED
1 0.8624469531E-01 -0.3393680437E-33 1457.060120 1442.191128
2 0.8582756287E-01 -0.2258264739E-34 1464.141611 1458.363347
3 0.8562779133E-01 -0.7903258864E-35 1467.557486 1459.982403
4 0.8545321184E-01 -0.2063707986E-29 1470.555681 1459.772119
5 0.8527102515E-01 -0.3869615292E-29 1473.697612 1460.007439
6 0.8510362497E-01 -0.3647388043E-26 1476.596399 1461.303669
7 0.8495175125E-01 -0.1793622439E-23 1479.236205 1462.170030
8 0.8479899358E-01 -0.3873153170E-21 1481.900915 1462.347048
9 0.8465055475E-01 -0.4836458160E-19 1484.499499 1461.666057
10 0.8450362764E-01 -0.4794435113E-17 1487.080610 1462.889869
11 0.8435766539E-01 -0.3328862832E-15 1489.653674 1463.381675
12 0.8421539792E-01 -0.1526837394E-13 1492.170188 1463.060233
13 0.8407682246E-01 -0.5076531997E-12 1494.629584 1463.714231
14 0.8393863717E-01 -0.1285683019E-10 1497.090141 1464.761578
15 0.8380272668E-01 -0.2261354744E-09 1499.518108 1465.064585
16 0.8366989890E-01 -0.2750609980E-08 1501.898625 1465.355728
If the program aborts in some way, examine the print file whichis produced. Frequently an expected line has been omitted and the environmental file is therefore misinterpreted.
The message "FAILURE TO CONVERGE IN SECANT" occurs when KRAKEN requires more than 500 iterations to converge to a mode. Usually less than 20 iterations are needed but convergence to interfacial modes (Scholte or Stoneley waves) can be exceptionally slow,especially at higher frequencies. The simplest solution is to exclude interfacial modes by setting the lower phase-speed limit to the minimum p-wave speed in the problem. Alternately, you can increase the value of MAXNIT which controls the MAXimum Number of ITerations in the root finder.
***** Group speed *****
KRAKEN
and KRAKENC
compute group speed using the formula in Ch. 5 of
Jensen,
Kuperman, Porter, and Schmidt, Computational Ocean Acoustics. Note that
this
formula is only
valid for acoustic problems (with no elasticity). It also
does not
address the role of interfacial or boundary scatter. In these cases,
the value displayed is not reliable.