SYMBOL3J_DP Function

private function SYMBOL3J_DP(J1, M1, J2, M2, J3, M3) result(SYMBOL3J)

Wigner 3-j symbol , via the standard conversion from CGCOEFF: Inherits CGCOEFF's selection-rule guards -- safe to call with any integer sextuple, returning 0 for invalid combinations.

Returns: The Wigner 3-j symbol, real (0 if selection rules are violated).

Arguments

Type IntentOptional Attributes Name
integer(kind=i4), intent(in) :: J1

First angular momentum, .

integer(kind=i4), intent(in) :: M1

First projection, .

integer(kind=i4), intent(in) :: J2

Second angular momentum, .

integer(kind=i4), intent(in) :: M2

Second projection, .

integer(kind=i4), intent(in) :: J3

Third angular momentum, .

integer(kind=i4), intent(in) :: M3

Third projection, .

Return Value real(kind=dp)


Calls

proc~~symbol3j_dp~~CallsGraph proc~symbol3j_dp SYMBOL3J_DP interface~cgcoeff CGCOEFF proc~symbol3j_dp->interface~cgcoeff proc~cgcoeff_dp CGCOEFF_DP interface~cgcoeff->proc~cgcoeff_dp interface~log_fact LOG_FACT proc~cgcoeff_dp->interface~log_fact proc~log_fact_dp LOG_FACT_DP interface~log_fact->proc~log_fact_dp

Called by

proc~~symbol3j_dp~~CalledByGraph proc~symbol3j_dp SYMBOL3J_DP interface~symbol3j SYMBOL3J interface~symbol3j->proc~symbol3j_dp

Source Code

  FUNCTION SYMBOL3J_DP(J1,M1,J2,M2,J3,M3) RESULT(SYMBOL3J)
  IMPLICIT NONE
  INTEGER(KIND=i4), INTENT(IN) :: J1
  INTEGER(KIND=i4), INTENT(IN) :: M1
  INTEGER(KIND=i4), INTENT(IN) :: J2
  INTEGER(KIND=i4), INTENT(IN) :: M2
  INTEGER(KIND=i4), INTENT(IN) :: J3
  INTEGER(KIND=i4), INTENT(IN) :: M3
  INTEGER(KIND=i4) :: K
  REAL(KIND=dp) :: TERM,CG,SYMBOL3J
  TERM = (-1)**(J3+M3+NINT(2.d0*J1))/DSQRT(2.d0*J3+1.d0)
  CG = CGCOEFF(J1,-M1,J2,-M2,J3,M3)
  SYMBOL3J = TERM*CG
  RETURN
  END FUNCTION SYMBOL3J_DP