| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| AddArr | ArrMod | Subroutine | Adds an arrival to the arrival data structure |
| AddArr3D | ArrMod | Subroutine | Adds the amplitude and delay for an ARRival into a matrix of same. |
| Analytic | sspmod | Subroutine | $ IF ( x( 2 ) < 5000.0 ) THEN $ ELSE $ ! Homogeneous half-space $ xt = 2.0 * ( 5000.0 - 1300.0 ) / 1300.0 $ c = C0 * ( 1.0 + 0.00737 * ( xt - 1.0 + EXP( -xt ) ) ) $ cimag = 0.0 $ cz = 0.0 $ czz = 0.0 $ END IF |
| Analytic3D | sspmod | Subroutine | $ IF ( x( 3 ) .LT. 5000.0 ) THEN $ ELSE ! HOMOGENEOUS HALF-SPACE $ W = 2.0 * ( 5000.0 - 1300.0 ) / 1300.0 $ c = c0*( 1.0 + 0.00737 * ( W - 1.0 + EXP( -W ) ) ) $ gradc( 2 ) = 0.0 $ gradc( 3 ) = 0.0 $ czz = 0.0 $ cyz = 0.0 $ END IF |
| AnalyticCosh | sspmod | Subroutine | |
| ApplyContribution | Influence3D | Subroutine | |
| ApplyContribution | Influence | Subroutine | Applies beam contribution to pressure field |
| BellhopCore | BELLHOP | Subroutine | Core subroutine to run Bellhop algorithm |
| BellhopCore | BELLHOP3D | Subroutine | Core subroutine to run Bellhop algorithm |
| BranchCut | Influence | Subroutine | Checks for a branch cut crossing and updates KMAH accordingly |
| cCubic | sspmod | Subroutine | Cubic spline interpolation for sound speed |
| cLinear | sspmod | Subroutine | c-linear interpolation of SSP data |
| ComputeBdryTangentNormal | bdry3Dmod | Subroutine | $ write( , * ) 'ix=1', Bdry( 1, : )%kappa_xx $ write( , * ) 'ix=1', Bdry( 1, : )%kappa_xy $ write( , * ) 'ix=1', Bdry( 1, : )%kappa_yy $ write( , * ) 'iy=1', Bdry( :, 1 )%kappa_xx $ write( , * ) 'iy=1', Bdry( :, 1 )%kappa_xy $ write( , * ) 'iy=1', Bdry( :, 1 )%kappa_yy $ write( , * ) 'D' $ write( , * ) Bdry( :, : )%z_xx $ write( , * ) Bdry( :, : )%z_xy $ write( , * ) Bdry( :, : )%z_yy $ $ write( , * ) 'kappa' $ write( , * ) Bdry( :, : )%kappa_xx $ write( , * ) Bdry( :, : )%kappa_xy $ write( , * ) Bdry( :, : )%kappa_yy |
| ComputeBdryTangentNormal | bdrymod | Subroutine | |
| ComputeDeltaPQ | Step3DMod | Subroutine | |
| ConeFormulas2D | Cone | Subroutine | analytic formula for the conical seamount |
| ConeFormulas3D | Cone | Subroutine | analytic formula for the conical seamount |
| cPCHIP | sspmod | Subroutine | PCHIP for interpolation of sound speed |
| CRCI | AttenMod | Function | |
| cross_product | cross_products | Interface | |
| cross_product_dble | cross_products | Function | Computes 3D cross product of double precision vectors |
| cross_product_sngl | cross_products | Function | Computes 3D cross product of single precision vectors |
| CSPLINE | splinec | Subroutine | |
| Distances2D | BELLHOP | Subroutine | Calculates the distances to the boundaries |
| Distances3D | BELLHOP3D | Subroutine | Computes distances from ray to boundaries |
| ERROUT | FatalError | Subroutine | Outputs error message and terminates program |
| EvaluateSSP | sspmod | Subroutine | Evaluates sound speed profile at given location |
| EvaluateSSP2D | sspmod | Subroutine | Converts cartesian gradients to polar |
| EvaluateSSP3D | sspmod | Subroutine | |
| FinalPhase | Influence | Subroutine | |
| fprime_interior | pchipmod | Function | |
| fprime_interior_Cmplx | pchipmod | Function | |
| fprime_left_end | pchipmod | Function | |
| fprime_left_end_Cmplx | pchipmod | Function | |
| fprime_right_end | pchipmod | Function | |
| fprime_right_end_Cmplx | pchipmod | Function | |
| Franc_Garr | AttenMod | Function | |
| GetBotSeg | bdrymod | Subroutine | |
| GetBotSeg3D | bdry3Dmod | Subroutine | Gets the Bottom segment info |
| GetTopSeg | bdrymod | Subroutine | |
| GetTopSeg3D | bdry3Dmod | Subroutine | Gets the Top segment info |
| h_del | pchipmod | Subroutine | |
| Hermite | Influence | Function | |
| Hexahedral | sspmod | Subroutine | Trilinear hexahedral interpolation of SSP data |
| IncPhaseIfCaustic | Influence | Subroutine | phase shifts at caustics |
| Influence3DGeoGaussianCart | Influence3D | Subroutine | Geometrically-spreading beams with a Gaussian-shaped beam |
| Influence3DGeoGaussianRayCen | Influence3D | Subroutine | Geometrically-spreading beams with a hat-shaped beam in ray-centered coordinates |
| Influence3DGeoHatCart | Influence3D | Subroutine | Geometrically-spreading beams with a hat-shaped beam |
| Influence3DGeoHatRayCen | Influence3D | Subroutine | Geometrically-spreading beams with a hat-shaped beam in ray-centered coordinates |
| InfluenceCervenyCart | Influence | Subroutine | Paraxial (Cerveny-style) beams in Cartesian coordinates |
| InfluenceCervenyRayCen | Influence | Subroutine | Paraxial (Cerveny-style) beams in ray-centered coordinates |
| InfluenceGeoGaussianCart | Influence | Subroutine | Geometric, Gaussian beams in Cartesian coordintes |
| InfluenceGeoHatCart | Influence | Subroutine | Geometric, hat-shaped beams in Cartesisan coordinates |
| InfluenceGeoHatRayCen | Influence | Subroutine | Geometrically-spreading beams with a hat-shaped beam in ray-centered coordinates |
| InfluenceSGB | Influence | Subroutine | Bucker's Simple Gaussian Beams in Cartesian coordinates |
| InterpolateIRC | RefCoef | Subroutine | |
| InterpolateReflectionCoefficient | RefCoef | Subroutine | |
| IsAtCaustic | Influence | Function | |
| monotonic | monotonicMod | Interface | |
| monotonic_dble | monotonicMod | Function | Tests if double precision vector is monotonically increasing |
| monotonic_sngl | monotonicMod | Function | Tests if single precision vector is monotonically increasing |
| n2Linear | sspmod | Subroutine | Linear interpolation for squared buoyancy frequency |
| OceanToRayX | BELLHOP3D | Function | Transform ocean coordinates to ray coordinates |
| OpenOutputFiles | ReadEnvironmentBell | Subroutine | Opens output files based on run type |
| PCHIP | pchipmod | Subroutine | |
| PickEpsilon | BELLHOP | Function | Picks the optimum value for epsilon |
| PickEpsilon | BELLHOP3D | Subroutine | |
| Poly | PolyMod | Interface | |
| PolyC | PolyMod | Function | |
| PolyR | PolyMod | Function | |
| PolyZ | PolyMod | Function | |
| Quad | sspmod | Subroutine | Quadrilateral interpolation for sound speed profiles |
| RayNormal | RayNormals | Subroutine | |
| RayNormal_unit | RayNormals | Subroutine | |
| RayToOceanT | BELLHOP3D | Function | Transform ray tangent to ocean tangent coordinates |
| RayToOceanX | BELLHOP3D | Function | Transform ray coordinates to ocean coordinates |
| ReadATI | bdrymod | Subroutine | Reads in the top altimetry |
| ReadATI3D | bdry3Dmod | Subroutine | |
| ReadBTY | bdrymod | Subroutine | Reads in the bottom bathymetry |
| ReadBTY3D | bdry3Dmod | Subroutine | Reads in the bottom bathymetry |
| ReadEnvironment | ReadEnvironmentBell | Subroutine | Reads and parses the main environment file |
| ReadfreqVec | SourceReceiverPositions | Subroutine | |
| ReadHeader | RWSHDFile | Subroutine | |
| ReadPat | beampattern | Subroutine | Reads a source beam pattern file ( |
| ReadRayBearingAngles | anglemod | Subroutine | |
| ReadRayElevationAngles | anglemod | Subroutine | |
| ReadRcvrBearings | SourceReceiverPositions | Subroutine | |
| ReadRcvrRanges | SourceReceiverPositions | Subroutine | |
| ReadReflectionCoefficient | RefCoef | Subroutine | |
| ReadRunType | ReadEnvironmentBell | Subroutine | Reads and validates the run type parameters |
| ReadSSP | sspmod | Subroutine | Reads SSP data from the environmental file and convert to Nepers/m |
| ReadSxSy | SourceReceiverPositions | Subroutine | |
| ReadSzRz | SourceReceiverPositions | Subroutine | $ IF ( .NOT. monotonic( Pos%sz, Pos%NSz ) ) THEN $ CALL ERROUT( 'SzRzRMod', 'Source depths are not monotonically increasing' ) $ END IF $ $ IF ( .NOT. monotonic( Pos%rz, Pos%NRz ) ) THEN $ CALL ERROUT( 'SzRzRMod', 'Receiver depths are not monotonically increasing' ) $ END IF |
| ReadTopOpt | ReadEnvironmentBell | Subroutine | |
| ReadVector | SourceReceiverPositions | Subroutine | |
| ReduceStep2D | Step | Subroutine | |
| ReduceStep3D | Step3DMod | Subroutine | |
| Reflect2D | ReflectMod | Subroutine | !! use kappa_xx or z_xx? |
| Reflect2D | BELLHOP | Subroutine | |
| Reflect3D | Reflect3DMod | Subroutine | ! not sure if cn2 needs a sign flip also $ IF ( BotTop == 'TOP' ) THEN $ cn1jump = -cn1jump ! flip sign for top reflection $ cn2jump = -cn2jump ! flip sign for top reflection $ END IF |
| RToIR | SourceReceiverPositions | Function | ! Assumes Pos%r is a vector of equally spaced points |
| ScaleBeam | Influence3D | Subroutine | Scaling for geometric beams |
| ScalePressure | Influence | Subroutine | Scale the pressure field |
| ScalePressure3D | Influence3D | Subroutine | Scale the pressure field |
| Sort | SortMod | Interface | |
| Sort_cmplx | SortMod | Subroutine | Subroutine to perform an insertion sort on a vector (complex, double) |
| Sort_dble | SortMod | Subroutine | Subroutine to perform an insertion sort on a vector (double) |
| Sort_sngl | SortMod | Subroutine | Subroutine to perform an insertion sort on a vector (single) |
| SPLINE | splinec | Function | |
| SPLINEALL | splinec | Subroutine | |
| SPLINEX | splinec | Function | |
| SPLINEXX | splinec | Function | |
| Step2D | BELLHOP3D | Subroutine | ! this needs modifying like the full 3D version to handle jumps in the x-y direction |
| Step2D | Step | Subroutine | |
| Step3D | Step3DMod | Subroutine | ! what if we cross isegx, isegy, or isegz at the same time? |
| StepToBdry2D | Step | Subroutine | |
| StepToBdry3D | Step3DMod | Subroutine | |
| SubTab | SubTabulate | Interface | |
| SubTab_dble | SubTabulate | Subroutine | Subtabulate array |
| SubTab_sngl | SubTabulate | Subroutine | Subtabulate array |
| TopBot | ReadEnvironmentBell | Subroutine | Handles top and bottom boundary conditions |
| TraceRay2D | BELLHOP | Subroutine | Traces the beam corresponding to a particular take-off angle |
| TraceRay2D | BELLHOP3D | Subroutine | |
| TraceRay3D | BELLHOP3D | Subroutine | Traces the beam corresponding to a particular take off angle |
| Update3DXSegmentT | sspmod | Subroutine | |
| Update3DYSegmentT | sspmod | Subroutine | |
| Update3DZSegmentT | sspmod | Subroutine | |
| UpdateDepthSegmentT | sspmod | Subroutine | |
| UpdateRangeSegmentT | sspmod | Subroutine | |
| UpdateRayPQ | Step3DMod | Subroutine | |
| VSPLINE | splinec | Subroutine | |
| WriteArrivalsASCII | ArrMod | Subroutine | Writes arrival data in ASCII format |
| WriteArrivalsASCII3D | ArrMod | Subroutine | Writes the arrival data (Amplitude, delay for each eigenray); ASCII output file |
| WriteArrivalsBinary | ArrMod | Subroutine | Writes arrival data in binary format |
| WriteArrivalsBinary3D | ArrMod | Subroutine | Writes the arrival data (amplitude, delay for each eigenray); Binary output file |
| WriteField | RWSHDFile | Subroutine | |
| WriteHeader | RWSHDFile | Subroutine | |
| WriteRay2D | WriteRay | Subroutine | The 2D version is for ray traces in (r,z) coordinates |
| WriteRay3D | WriteRay | Subroutine | The 3D version is for ray traces in (x,y,z) coordinates |