Influence Module

Computes beam contributions to complex pressure fields using various beam weighting approaches


Uses

  • module~~influence~~UsesGraph module~influence Influence module~arrmod ArrMod module~influence->module~arrmod module~bellhopmod bellhopMod module~influence->module~bellhopmod module~sourcereceiverpositions SourceReceiverPositions module~influence->module~sourcereceiverpositions module~sspmod sspmod module~influence->module~sspmod module~writeray WriteRay module~influence->module~writeray module~arrmod->module~bellhopmod module~mathconstants MathConstants module~arrmod->module~mathconstants module~bellhopmod->module~mathconstants module~fatalerror FatalError module~sourcereceiverpositions->module~fatalerror module~monotonicmod monotonicMod module~sourcereceiverpositions->module~monotonicmod module~sortmod SortMod module~sourcereceiverpositions->module~sortmod module~subtabulate SubTabulate module~sourcereceiverpositions->module~subtabulate module~sspmod->module~fatalerror module~sspmod->module~monotonicmod module~splinec splinec module~sspmod->module~splinec module~writeray->module~bellhopmod module~writeray->module~sspmod

Used by

  • module~~influence~~UsedByGraph module~influence Influence program~bellhop BELLHOP program~bellhop->module~influence program~bellhop3d BELLHOP3D program~bellhop3d->module~influence

Functions

public function Hermite(x, x1, x2)

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in) :: x
real(kind=8), intent(in) :: x1
real(kind=8), intent(in) :: x2

Return Value real(kind=8)

public function IsAtCaustic(qleq0)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: qleq0

Return Value logical


Subroutines

public subroutine InfluenceCervenyRayCen(U, eps, alpha, IBeamWindow2, RadiusMax)

Paraxial (Cerveny-style) beams in ray-centered coordinates

Read more…

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
complex(kind=8), intent(in) :: eps
real(kind=8), intent(in) :: alpha
integer, intent(in) :: IBeamWindow2
real(kind=8), intent(in) :: RadiusMax

public subroutine InfluenceCervenyCart(U, eps, alpha, IBeamWindow2, RadiusMax)

Paraxial (Cerveny-style) beams in Cartesian coordinates

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
complex(kind=8), intent(in) :: eps
real(kind=8), intent(in) :: alpha
integer, intent(in) :: IBeamWindow2
real(kind=8), intent(in) :: RadiusMax

public subroutine InfluenceGeoHatRayCen(U, alpha, dalpha)

Geometrically-spreading beams with a hat-shaped beam in ray-centered coordinates

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
real(kind=8), intent(in) :: alpha
real(kind=8), intent(in) :: dalpha

public subroutine InfluenceGeoHatCart(U, alpha, dalpha)

Geometric, hat-shaped beams in Cartesisan coordinates

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
real(kind=8), intent(in) :: alpha
real(kind=8), intent(in) :: dalpha

public subroutine InfluenceGeoGaussianCart(U, alpha, dalpha)

Geometric, Gaussian beams in Cartesian coordintes

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
real(kind=8), intent(in) :: alpha
real(kind=8), intent(in) :: dalpha

public subroutine ApplyContribution(U)

Applies beam contribution to pressure field

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U

public subroutine InfluenceSGB(U, alpha, dalpha, RadiusMax)

Bucker's Simple Gaussian Beams in Cartesian coordinates

Arguments

Type IntentOptional Attributes Name
complex, intent(inout) :: U(NRz_per_range,Pos%NRr)
real(kind=8), intent(in) :: alpha
real(kind=8), intent(in) :: dalpha
real(kind=8), intent(in) :: RadiusMax

public subroutine BranchCut(q1C, q2C, BeamType, KMAH)

Checks for a branch cut crossing and updates KMAH accordingly

Arguments

Type IntentOptional Attributes Name
complex(kind=8), intent(in) :: q1C
complex(kind=8), intent(in) :: q2C
character(len=4), intent(in) :: BeamType
integer, intent(inout) :: KMAH

public subroutine ScalePressure(Dalpha, c, r, U, NRz, Nr, RunType, freq)

Scale the pressure field

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in) :: Dalpha
real(kind=8), intent(in) :: c
real, intent(in) :: r(Nr)
complex, intent(inout) :: U(NRz,Nr)
integer, intent(in) :: NRz
integer, intent(in) :: Nr
character(len=5), intent(in) :: RunType
real(kind=8), intent(in) :: freq

public subroutine FinalPhase(isGaussian)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: isGaussian

public subroutine IncPhaseIfCaustic(qleq0)

phase shifts at caustics

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: qleq0