RToIR Function

public function RToIR(r)

! Assumes Pos%r is a vector of equally spaced points

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(in) :: r

Return Value integer


Called by

proc~~rtoir~~CalledByGraph proc~rtoir RToIR proc~influence3dgeogaussianraycen Influence3DGeoGaussianRayCen proc~influence3dgeogaussianraycen->proc~rtoir proc~influence3dgeohatraycen Influence3DGeoHatRayCen proc~influence3dgeohatraycen->proc~rtoir proc~influencecervenycart InfluenceCervenyCart proc~influencecervenycart->proc~rtoir proc~influencecervenyraycen InfluenceCervenyRayCen proc~influencecervenyraycen->proc~rtoir proc~influencegeohatraycen InfluenceGeoHatRayCen proc~influencegeohatraycen->proc~rtoir proc~bellhopcore BellhopCore proc~bellhopcore->proc~influence3dgeogaussianraycen proc~bellhopcore->proc~influence3dgeohatraycen proc~bellhopcore->proc~influencecervenycart proc~bellhopcore->proc~influencecervenyraycen proc~bellhopcore->proc~influencegeohatraycen proc~bellhopcore~2 BellhopCore proc~bellhopcore~2->proc~influencecervenycart proc~bellhopcore~2->proc~influencecervenyraycen proc~bellhopcore~2->proc~influencegeohatraycen program~bellhop BELLHOP program~bellhop->proc~bellhopcore~2 program~bellhop3d BELLHOP3D program~bellhop3d->proc~bellhopcore

Source Code

  FUNCTION RToIR( r )

    ! index of nearest rcvr before normal
    ! Compute upper index on rcvr line
    !!! Assumes Pos%r is a vector of equally spaced points

    REAL ( KIND=8 ), INTENT( IN ) :: r
    INTEGER                       :: RToIR, ti
    REAL ( KIND=8 )               :: temp

    temp = ( r - Pos%Rr( 1 ) ) / Pos%Delta_r
    ! LP: Added snapping to deal with floating-point error at the int boundaries.
    IF ( ABS( temp - REAL( NINT( temp ), 8 ) ) < 1D-6 ) THEN
       temp = REAL( NINT( temp ), 8 )
    END IF
    ! mbp: should be ", 0 )" ? [LP: on 2D Cerveny cart]
    RToIR = MAX( MIN( INT( temp ) + 1, Pos%NRr ), 1 )

  END FUNCTION RToIR