# SPARC

SPARC (SACLANTCEN Pulse Acoustic Research Code) is an experimental time-marched FFP. It treats problems with broadband or transient sources, that is, pulses. The environmental file is patterned after that used for KRAKEN and SCOOTER. The mathematical basis and numerical algorithm is described in:

Michael B. Porter, ``The Time-Marched FFP for Modeling Acoustic Pulse Propagation,'' J. Acoust. Soc. Amer. 87, 2013--2023 (1990).

Files:

Name Description

Input

*.ENV ENVironmental data

*.STS Source Time Series

Output

*.PRT PRinT file

*.GRN GReen's function

*.RTS Receiver Time Series

## EXAMPLE AND DESCRIPTION OF ENV FILE:

'Munk profile'

5.0

2

'NVW S'

500 0.0 5000.0

0.0 1548.52 0.0 1.0 0.0 0.0

200.0 1530.29 /

250.0 1526.69 /

400.0 1517.78 /

600.0 1509.49 /

800.0 1504.30 /

1000.0 1501.38 /

1200.0 1500.14 /

1400.0 1500.12 /

1600.0 1501.02 /

1800.0 1502.57 /

2000.0 1504.62 /

2200.0 1507.02 /

2400.0 1509.69 /

2600.0 1512.55 /

2800.0 1515.56 /

3000.0 1518.67 /

3200.0 1521.85 /

3400.0 1525.10 /

3600.0 1528.38 /

3800.0 1531.70 /

4000.0 1535.04 /

4200.0 1538.39 /

4400.0 1541.76 /

4600.0 1545.14 /

4800.0 1548.52 /

5000.0 1551.91 /

500 0.0 10000.0

5000.0 1551.91 0.0 1.00 1.0 0.0

10000.0 /

'R' 0.0

1500.0 1550.0

10.0 ! RMAX (km)

1 ! NSz

250.0 / ! Sz( 1 : NSz) (m)

26 ! NRz

0.0 5000.0 / ! Rz( 1 : NRz) (m)

'PH' ! PULSE

0.0 15.0 ! FMin FMax (Hz)

1 ! NRr

60.0 0.200 / ! Rr( 1 : NRr ) (km)

6 ! NTout

1.0 3.0 5.0 10.0 20.0 30.0 ! Tout( 1 : NTout) (s)

-0.1 0.9 0.0 0.0 0.0 ! TSTART (s) TMULT ALPHA BETA V (m/s)

The input structure is identical to KRAKEN except for additional option in line 4 and 4 additional lines at the end.

OPT(5:5): Type of calculation

'S' for Snapshot.

FIELDS must be run afterwards to convert the '.GRN' file to a '.SHD' file containing the pressure field. The shade file can then be plotted using PLOTSHD.

'R' for Range stack (horizontal array).

The time series is written in a '.RTS'(Receiver Time Series) file which can be plotted using PLOTTS

'D' for Depth stack (vertical array).

The resulting time series can also be plotted using PLOTTS.

Additional lines:

(1) - SOURCE PULSE INFORMATION:

Syntax: PULSE

FMin FMax

Description:

PULSE(1:1): Type of interpolation to be used for the SSP

'P' Pseudo-Gaussian

'R' Ricker wavelet

'A' Approximate Ricker wavelet

'S' Single sine

'H' Hanning weighted four sine

'N' N-wave

'G' Gaussian

'F' From a '.STS' (Source Time Series) file.

'B' From a '.STS' file Backwards

PULSE(2:2): Hilbert transforming.

'H' perform a Hilbert transform of the source

'N' don't

Hilbert transforming is used to eliminate

the left travelling wave.

PULSE(3:3): Source sign flipping.

'+' don't flip it (recommended)

'-' flip it

PULSE(4:4): Source filtering.

'L' low cut filter

'H' high cut filter

'B' both high and low cut filter

'N' no cut

FMin: Low cut frequency (Hz)

FMax: High cut frequency (Hz).

This should be no higher than necessary since the runtime is proportional to the bandwidth.

If you read the waveform from a Source Time Series file and you apply source filtering, then the STS file must have 2^N point
for some integer N. This is because the Fortran code that does the filtering using an old style FFT.
(The Matlab version of SPARC does not have the restriction.)

(3) - RECEIVER RANGES

Syntax: NRr

Rr( 1 : NRr )

Description:

NRr: Number of receiver ranges

Rr(): Receiver ranges (km)

This line is ignored unless option 'R' has been selected for a

range-stack.

(3) - OUTPUT TIMES

Syntax: NTout

Tout( 1 : NTout )

Description:

NTout: Number of output times

Tout(): Output times (s)

(3) - TIME INTEGRATION PARAMETERS

Syntax: TSTART TMULT ALPHA BETA V

Description:

TSTART: Starting time for the march. This should always be earlier than the time at which the source begins to rise.

TMULT: Time step multiplier. Specifying TMULT = 1.0 means that the maximum stable time step is used.

ALPHA: Lumping parameter

BETA: Explicitness parameter

V: Convection velocity

A good check of convergence can be done by running an isovelocity problem with a Gaussian pulse. The pulse should, of course, be undistorted at the receivers. Remember that Hilbert transforming the source causes it to rise early so TSTART has to be adjusted accordingly.

It's a good habit to plot the source function using PLOTTS before running SPARC. This is done by providing the same source information to PLOTTS that is used to drive SPARC. Thus, if you are using a pseudo-gaussian pulse in SPARC you specify a pseudo-gaussian in PLOTTS and look at the time series.