All angular gradients (GRAD_SSH) for , from one VSH_CORE pass.
Warning
Inherits ASSOC_LEGENDRE_NORM_ALL's -dependent
stability limit (safe for unconditionally) --
see STABILITY_FINDINGS.md at the repo root.
1= (always 0), 2=, 3=; mode
axis indexed by YLM_INDEX(l,m).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(out) | :: | OUT(3,(LMAX+1)**2) | |||
| integer(kind=i4), | intent(in) | :: | LMAX |
Maximum degree, . |
||
| real(kind=dp), | intent(in) | :: | THETA |
Colatitude in radians, . |
||
| real(kind=dp), | intent(in) | :: | PHI |
Longitude in radians, . |
SUBROUTINE GRAD_SSH_ALL_DP(OUT, LMAX, THETA, PHI) IMPLICIT NONE INTEGER(KIND=i4), INTENT(IN) :: LMAX REAL(KIND=dp), INTENT(IN) :: THETA REAL(KIND=dp), INTENT(IN) :: PHI COMPLEX(KIND=dp), INTENT(OUT) :: OUT(3,(LMAX+1)**2) INTEGER(KIND=i4) :: NYLM COMPLEX(KIND=dp), ALLOCATABLE :: YLM(:), GTH(:), GPH(:) NYLM = (LMAX+1)**2 ALLOCATE(YLM(NYLM), GTH(NYLM), GPH(NYLM)) CALL VSH_CORE(YLM, GTH, GPH, LMAX, THETA, PHI) OUT(1,:) = DCMPLX(0.d0, 0.d0) OUT(2,:) = GTH OUT(3,:) = GPH DEALLOCATE(YLM, GTH, GPH) END SUBROUTINE GRAD_SSH_ALL_DP