Checks for a branch cut crossing and updates KMAH accordingly
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=8), | intent(in) | :: | q1C | |||
complex(kind=8), | intent(in) | :: | q2C | |||
character(len=4), | intent(in) | :: | BeamType | |||
integer, | intent(inout) | :: | KMAH |
SUBROUTINE BranchCut( q1C, q2C, BeamType, KMAH ) !! Checks for a branch cut crossing and updates KMAH accordingly COMPLEX (KIND=8), INTENT( IN ) :: q1C, q2C CHARACTER (LEN=4), INTENT( IN ) :: BeamType INTEGER, INTENT( INOUT ) :: KMAH REAL (KIND=8) :: q1, q2 SELECT CASE ( BeamType( 2 : 2 ) ) CASE ( 'W' ) ! WKBeams q1 = REAL( q1C ) q2 = REAL( q2C ) IF ( ( q1 < 0.0 .AND. q2 >= 0.0 ) .OR. & ( q1 > 0.0 .AND. q2 <= 0.0 ) ) KMAH = -KMAH CASE DEFAULT IF ( REAL( q2C ) < 0.0 ) THEN q1 = AIMAG( q1C ) q2 = AIMAG( q2C ) IF ( ( q1 < 0.0 .AND. q2 >= 0.0 ) .OR. & ( q1 > 0.0 .AND. q2 <= 0.0 ) ) KMAH = -KMAH END IF END SELECT END SUBROUTINE BranchCut