Scaling for geometric beams
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8), | intent(in) | :: | alpha | |||
real(kind=8), | intent(in) | :: | Dalpha | |||
real(kind=8), | intent(in) | :: | Dbeta |
SUBROUTINE ScaleBeam( alpha, Dalpha, Dbeta ) !! Scaling for geometric beams REAL ( KIND = 8 ), INTENT( IN ) :: alpha, Dalpha, Dbeta ray3D( 1 : Beam%Nsteps )%Amp = Ratio1 * ray3D( 1 : Beam%Nsteps )%c * ray3D( 1 : Beam%Nsteps )%Amp ! pre-apply some scaling ray3D( 1 : Beam%Nsteps )%DetQ = ray3D( 1 : Beam%Nsteps )%q_tilde( 1 ) * ray3D( 1 : Beam%Nsteps )%q_hat( 2 ) - & ray3D( 1 : Beam%Nsteps )%q_tilde( 2 ) * ray3D( 1 : Beam%Nsteps )%q_hat( 1 ) ray3D( 1 : Beam%Nsteps )%q_tilde( 1 ) = Dalpha * ray3D( 1 : Beam%Nsteps )%q_tilde( 1 ) / ray3D( 1 )%c ray3D( 1 : Beam%Nsteps )%q_tilde( 2 ) = Dalpha * ray3D( 1 : Beam%Nsteps )%q_tilde( 2 ) / ray3D( 1 )%c ray3D( 1 : Beam%Nsteps )%q_hat( 1 ) = ABS( COS( alpha ) ) * Dbeta * ray3D( 1 : Beam%Nsteps )%q_hat( 1 ) / ray3D( 1 )%c ray3D( 1 : Beam%Nsteps )%q_hat( 2 ) = ABS( COS( alpha ) ) * Dbeta * ray3D( 1 : Beam%Nsteps )%q_hat( 2 ) / ray3D( 1 )%c END SUBROUTINE ScaleBeam