Procedures

ProcedureLocationProcedure TypeDescription
ASSOC_LEGENDRE VSH Interface
ASSOC_LEGENDRE_ALL VSH Interface
ASSOC_LEGENDRE_ALL_DP VSH Subroutine

All unnormalized associated Legendre functions for , via the Bonnet recurrence, in one pass (amortizing shared recurrence terms across every at fixed -- far cheaper than independent ASSOC_LEGENDRE calls). Condon-Shortley phase; same recurrence and same stability limit as ASSOC_LEGENDRE (see ASSOC_LEGENDRE_NORM_ALL for the far-more-stable normalized alternative, itself safe to ).

Read more…
ASSOC_LEGENDRE_AND_DERIV VSH Interface
ASSOC_LEGENDRE_AND_DERIV_DP VSH Subroutine

Private helper: and together, from a single upward recurrence pass. Avoids the redundant separate ASSOC_LEGENDRE calls that DDX_ASSOC_LEGENDRE would otherwise need, and the repeated SSH + DDX_ASSOC_LEGENDRE evaluation that GRAD_SSH and L_SSH both build on.

Read more…
ASSOC_LEGENDRE_DP VSH Function

Associated Legendre function , Condon-Shortley phase convention, computed by the classic Bonnet-type upward recurrence starting from . For negative order, . Unnormalized (unlike ASSOC_LEGENDRE_NORM_ALL); loses numerical stability well before the intermediate values literally overflow, since the later upward-in- recurrence involves a subtraction of two comparably huge terms (catastrophic cancellation).

Read more…
ASSOC_LEGENDRE_NORM_ALL VSH Interface
ASSOC_LEGENDRE_NORM_ALL_DP VSH Subroutine

All -normalized associated Legendre functions , (i.e. the real-valued radial part of SSH, for ), using the Holmes & Featherstone (2002) modified forward-column recurrence. The normalization is folded directly into the recurrence coefficients, keeping every intermediate value rather than letting itself grow/shrink combinatorially like the unnormalized ASSOC_LEGENDRE_ALL/Bonnet recurrence does. This is the recurrence SSH_ALL and every batch VSH routine build on.

Read more…
BATCH_ALM_CONS TESTS Subroutine

Batch-consistency check: ASSOC_LEGENDRE_ALL vs. looped ASSOC_LEGENDRE calls, for , swept over NX points . Writes every (l,m,x) triple's batch value, single-mode value, and absolute difference to OUTUNIT; fails (STATUS=1) if any relative error exceeds .

Read more…
BATCH_DALM_CONS TESTS Subroutine

Batch-consistency check: DDX_ASSOC_LEGENDRE_ALL vs. looped DDX_ASSOC_LEGENDRE calls, for , swept over NX points . Same tolerance/output convention as BATCH_ALM_CONS.

Read more…
BATCH_GRAD_SSH_CONS TESTS Subroutine

Batch-consistency check: GRAD_SSH_ALL vs. looped GRAD_SSH calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_L_SSH_CONS TESTS Subroutine

Batch-consistency check: L_SSH_ALL vs. looped L_SSH calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_PVSH_POL_CONS TESTS Subroutine

Batch-consistency check: PVSH_POL_ALL vs. looped PVSH_POL calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_PVSH_RAD_CONS TESTS Subroutine

Batch-consistency check: PVSH_RAD_ALL vs. looped PVSH_RAD calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_PVSH_TOR_CONS TESTS Subroutine

Batch-consistency check: PVSH_TOR_ALL vs. looped PVSH_TOR calls, for , swept over NTH colatitude points at fixed (both routines agree at too -- PVSH_TOR explicitly branches to return zero there rather than evaluating a 0/0 form). Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_SSH_CONS TESTS Subroutine

Batch-consistency check: SSH_ALL vs. looped SSH calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any exceeds .

Read more…
BATCH_VSH_POL_DN_CONS TESTS Subroutine

Batch-consistency check: VSH_POL_DN_ALL vs. looped VSH_POL_DN calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_VSH_POL_UP_CONS TESTS Subroutine

Batch-consistency check: VSH_POL_UP_ALL vs. looped VSH_POL_UP calls, for , swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BATCH_VSH_TOR_CONS TESTS Subroutine

Batch-consistency check: VSH_TOR_ALL vs. looped VSH_TOR calls, for (starts at ; VSH_TOR is identical to PVSH_TOR, already covered at by BATCH_PVSH_TOR_CONS), swept over NTH colatitude points at fixed . Fails (STATUS=1) if any component's absolute difference exceeds .

Read more…
BENCH_LEGENDRE BENCHMARK Subroutine

Benchmarks ASSOC_LEGENDRE_NORM_ALL (batch) against looped ASSOC_LEGENDRE (single-mode) calls, for , swept over NX points (one grid sweep per timing, repeated/calibrated per WALL_TIME).

Read more…
BENCH_SSH BENCHMARK Subroutine

Benchmarks SSH_ALL (batch) against looped SSH (single-mode) calls, for , swept over NX colatitude points in at a fixed longitude.

Read more…
BENCH_VSH_POL_DN BENCHMARK Subroutine

Benchmarks VSH_POL_DN_ALL (batch) against looped VSH_POL_DN (single-mode) calls, for , swept over NX colatitude points.

Read more…
BENCH_VSH_POL_UP BENCHMARK Subroutine

Benchmarks VSH_POL_UP_ALL (batch) against looped VSH_POL_UP (single-mode) calls, for , swept over NX colatitude points.

Read more…
BENCH_VSH_TOR BENCHMARK Subroutine

Benchmarks VSH_TOR_ALL (batch) against looped VSH_TOR (single-mode) calls, for , swept over NX colatitude points.

Read more…
CGCOEFF VSH Interface
CGCOEFF_DP VSH Function

Clebsch-Gordan coefficient for coupling two angular momenta to a total , via the closed-form Racah sum (evaluated in log-factorial form for numerical stability at large arguments -- see LOG_FACT): where . Adapted from David Simpson (NASA GSFC). Automatically returns 0 for any invalid combination -- violated triangle inequality , , or -- so it is always safe to call with an arbitrary sextuple of integers, e.g. when sweeping a parameter range.

Read more…
DDX_ASSOC_LEGENDRE VSH Interface
DDX_ASSOC_LEGENDRE_ALL VSH Interface
DDX_ASSOC_LEGENDRE_ALL_DP VSH Subroutine

All derivatives for , reusing a precomputed ASSOC_LEGENDRE_ALL table rather than recomputing from scratch.

Read more…
DDX_ASSOC_LEGENDRE_DP VSH Function

Derivative of the associated Legendre function, via ASSOC_LEGENDRE_AND_DERIV (thin wrapper that discards itself).

Read more…
DDX_ASSOC_LEGENDRE_NORM_ALL VSH Interface
DDX_ASSOC_LEGENDRE_NORM_ALL_DP VSH Subroutine

All derivatives of the normalized associated Legendre functions, for , reusing a precomputed ASSOC_LEGENDRE_NORM_ALL table: This is the recurrence VSH_CORE (and therefore every batch VSH routine) uses for the component.

Read more…
DDX_LEGENDRE VSH Interface
DDX_LEGENDRE_DP VSH Function

Derivative of the Legendre polynomial, via away from the poles, and the closed-form pole values at .

Read more…
DECOMPOSE VSH_DECOMPOSITION Subroutine

Decomposes FIELD_FN into for , via 2D Gauss-Legendre() times uniform-trapezoidal() quadrature: (and similarly for against PVSH_POL and PVSH_TOR), using the batch _ALL routines so every mode at a quadrature point comes from one call.

Read more…
DECOMPOSE VSH_DECOMPOSITION_TOR Subroutine

Decomposes FIELD_FN into for , via 2D Gauss-Legendre() times uniform-trapezoidal() quadrature. Identical to vsh_decomposition.f90's DECOMPOSE -- duplicated rather than shared, matching this repository's convention of fully independent worked-example programs (see CMakeLists.txt).

Read more…
DOT VSH Interface
DOT_DP VSH Function

Dot product of two 3-vectors (typically two VSH values evaluated at the same ): . Note this is a plain component-wise product, not a Hermitian inner product -- callers wanting must conjugate VSH2 themselves first (as done throughout src/tests.f90 and the examples/ drivers).

Read more…
FACTORIAL VSH Interface
FACTORIAL_DP VSH Function

Factorial for , computed by direct multiplication.

Read more…
FIELD_GAUSSIAN VSH_DECOMPOSITION Function

Target field for Part B: a smooth angular Gaussian bump with slight modulation (carries and content, on top of effectively unbounded content from the Gaussian profile in ). Purely radial, for simplicity.

Read more…
FIELD_KNOWN VSH_DECOMPOSITION Function

Target field for Part A: equal unit weight on all three basis families at each of the eight known modes; zero elsewhere. A genuine finite sum over eight independent modes, not a shortcut.

Read more…
FIELD_KNOWN_TOR VSH_DECOMPOSITION_TOR Function

Target field for Part A: equal unit weight on PVSH_TOR alone at each of the eight known modes; zero elsewhere. Purely toroidal by construction (each term is a direct PVSH_TOR call).

Read more…
FIELD_QUAD_BUMP VSH_DECOMPOSITION_TOR Function

Target field for Part B: an exact axisymmetric "quadrupole" toroidal background plus a broadband toroidal field built from applied to an equator-centered Gaussian bump generating function (see module docstring for the closed-form derivatives and why , not , is needed to force / to vanish exactly at both poles) -- purely toroidal by construction in both pieces.

Read more…
GRAD_SSH VSH Interface
GRAD_SSH_ALL VSH Interface
GRAD_SSH_ALL_DP VSH Subroutine

All angular gradients (GRAD_SSH) for , from one VSH_CORE pass.

Read more…
GRAD_SSH_DP VSH Function

Angular (surface) gradient of the scalar spherical harmonic, . Returned as a 3-vector with a zero radial component, since the gradient of a purely angular function is purely tangential.

Read more…
GWI VSH Interface
GWI_DP VSH Function

Geppert-Wiebicke axisymmetric coupling coefficient (Geppert & Wiebicke, 1991), a compact shorthand for the generation/amplification amplitude of a two-mode interaction in the Hall-MHD induction equation: This is algebraically the standard Gaunt coefficient -- the closed form for -- written in terms of two CGCOEFF evaluations. Built entirely from CGCOEFF, which guards all selection rules, so GWI is safe to call with any integer sextuple and returns 0 for invalid combinations (unlike GWJ, see its own selection-rule note).

Read more…
GWJ VSH Interface
GWJ_DP VSH Function

Geppert-Wiebicke non-axisymmetric coupling coefficient (Geppert & Wiebicke, 1991), the companion to GWI encoding the amplitude of a two-mode Hall-MHD interaction that generates or amplifies a non-axisymmetric component: Cross-validated against an independent VSH-dot-product expansion in TEST2_GW (src/tests.f90).

Read more…
L_SSH VSH Interface
L_SSH_ALL VSH Interface
L_SSH_ALL_DP VSH Subroutine

All angular-momentum-operator fields (L_SSH) for , from one VSH_CORE pass.

Read more…
L_SSH_DP VSH Function

The angular-momentum-operator field (proportional to the quantum-mechanical orbital angular-momentum operator acting on the scalar harmonic). Simply GRAD_SSH rotated 90 degrees within the tangent plane: .

Read more…
LEGENDRE VSH Interface
LEGENDRE_DP VSH Function

Legendre polynomial , degree , via the standard three-term recurrence

Read more…
LOG_FACT VSH Interface
LOG_FACT_DP VSH Function

, via (the intrinsic LOG_GAMMA). Used throughout CGCOEFF, SSH, and ASSOC_LEGENDRE to evaluate factorial ratios like as without overflowing the individual factorials for large .

Read more…
PLM_INDEX VSH Function

1D packed-triangular index for into the output arrays of ASSOC_LEGENDRE_ALL, DDX_ASSOC_LEGENDRE_ALL, ASSOC_LEGENDRE_NORM_ALL, and DDX_ASSOC_LEGENDRE_NORM_ALL (all of which only need , by conjugate/parity symmetry). Matches the SHTOOLS PlmIndex convention.

Read more…
PVSH_POL VSH Interface
PVSH_POL_ALL VSH Interface
PVSH_POL_ALL_DP VSH Subroutine

All poloidal (horizontal) polar VSH members PVSH_POL for , from one VSH_CORE pass. Zero for .

Read more…
PVSH_POL_DP VSH Function

Poloidal (horizontal) member of the polar vector spherical harmonic basis, -- purely horizontal (zero radial component), i.e. GRAD_SSH normalized by . Combined with a radial stream function , this is the horizontal-field piece of a poloidal field, . Zero for (a constant has no horizontal gradient).

Read more…
PVSH_POL_TOR_ORTHO TESTS Subroutine

Verifies pointwise orthogonality of the poloidal and toroidal polar VSH members, for every -- an exact analytic identity (poloidal is a pure gradient, toroidal a pure gradient, and always), so any nonzero DOT value here is purely numerical error.

Read more…
PVSH_RAD VSH Interface
PVSH_RAD_ALL VSH Interface
PVSH_RAD_ALL_DP VSH Subroutine

All radial polar VSH members PVSH_RAD for , from one VSH_CORE pass.

Read more…
PVSH_RAD_DP VSH Function

Radial member of the polar vector spherical harmonic basis, . Purely radial by construction (zero horizontal components) -- combined with a radial stream function , this is the -generating piece of a poloidal magnetic (or any divergence-free) field, .

Read more…
PVSH_TOR VSH Interface
PVSH_TOR_ALL VSH Interface
PVSH_TOR_ALL_DP VSH Subroutine

All toroidal polar VSH members PVSH_TOR for , from one VSH_CORE pass. Zero for .

Read more…
PVSH_TOR_DP VSH Function

Toroidal member of the polar vector spherical harmonic basis, -- purely horizontal (zero radial component), identical in form to L_SSH but normalized by . This is the horizontal-field piece of a toroidal magnetic field, for a toroidal stream function . Zero for (no toroidal monopole).

Read more…
RECONSTRUCT VSH_DECOMPOSITION Function

Reconstructs the field at from coefficients up to LMAX: , the inverse of DECOMPOSE.

Read more…
RECONSTRUCT VSH_DECOMPOSITION_TOR Function

Reconstructs the field at from coefficients up to LMAX. Identical to vsh_decomposition.f90's RECONSTRUCT.

Read more…
RUN_GWI_SWEEP GWI_GWJ_SWEEP Subroutine

GWI vs. the brute-force Gaunt-coefficient integral (via SHGLQ theta-quadrature times a uniform phi sum), swept over JMAX, all valid . Writes examples/gwi_gwj_sweep/gwi_check.dat.

Read more…
RUN_GWJ_SWEEP GWI_GWJ_SWEEP Subroutine

GWJ vs. the pointwise identity, swept over JMAX, all valid , at N_POINTS fixed . Writes examples/gwi_gwj_sweep/gwj_check.dat.

Read more…
RUN_PART_A VSH_DECOMPOSITION Subroutine

Part A: DECOMPOSE FIELD_KNOWN, confirm exact recovery of the eight known unit coefficients and near-zero everywhere else. Writes examples/vsh_decomposition/known_modes.dat.

Read more…
RUN_PART_A VSH_DECOMPOSITION_TOR Subroutine

Part A: DECOMPOSE FIELD_KNOWN_TOR, confirm exact recovery of the eight known unit a_tor coefficients and near-zero everywhere else, and confirm a_rad/a_pol are near-zero at every mode (the direct purity check). Writes examples/vsh_decomposition_tor/known_modes.dat.

Read more…
RUN_PART_B VSH_DECOMPOSITION Subroutine

Part B: DECOMPOSE+RECONSTRUCT FIELD_GAUSSIAN at increasing (quadrature order scaled with each: LMAX_QUAD = 3*LMAX_TEST+10, NPHI = 4*LMAX_TEST+16), tracking max reconstruction error against the true closed-form field on an independent evaluation grid. Self-check: error at the largest must be much smaller than at the smallest (genuine convergence, not a flat/noisy curve -- which would indicate a quadrature-order-vs- scaling bug). Writes examples/vsh_decomposition/convergence.dat.

Read more…
RUN_PART_B VSH_DECOMPOSITION_TOR Subroutine

Part B: DECOMPOSE+RECONSTRUCT FIELD_QUAD_BUMP at increasing (quadrature order scaled with each: LMAX_QUAD = 3*LMAX_TEST+30, NPHI = 4*LMAX_TEST+32 -- a higher floor than example 2d needs, since the equator-centered bump's sharper angular structure otherwise leaves a small quadrature-truncation leak in a_rad/a_pol at the smallest LMAX_TEST, shrinking with quadrature order rather than indicating an impure construction), tracking max reconstruction error against the true closed-form field on an independent evaluation grid, plus max a_rad/a_pol leakage across the sweep. Self-check: error at the largest must be much smaller than at the smallest (genuine convergence). Writes examples/vsh_decomposition_tor/convergence.dat.

Read more…
SHGLQ VSH Interface
SHGLQ_DP VSH Subroutine

Gauss-Legendre quadrature nodes and weights, exact for integrating any polynomial of degree using only points -- the natural quadrature for spherical harmonic transforms, since is a polynomial in times , and the transform integral separates exactly into this -quadrature times a uniform sum over (itself exact for finite Fourier content). Nodes are the zeros of , found by Newton iteration (converges to machine precision in under 10 steps); weights are .

Read more…
SSH VSH Interface
SSH_ALL VSH Interface
SSH_ALL_DP VSH Subroutine

All scalar spherical harmonics for , in one call. Computes ASSOC_LEGENDRE_NORM_ALL once, then fills directly and via the conjugate symmetry rather than a second recurrence pass.

Read more…
SSH_DP VSH Function

Scalar spherical harmonic , fully normalized with the Condon-Shortley phase:

Read more…
SSH_ORTHO TESTS Subroutine

Verifies scalar spherical harmonic orthonormality, , for every . The integral is done analytically ( for matching , by construction 0 otherwise, so only same- pairs are checked); the integral (in ) uses a plain NQUAD-point midpoint rule via ASSOC_LEGENDRE_ALL, not SHGLQ -- sufficient here since only a scalar pass/fail diagonal check is needed, not a high-order transform.

Read more…
SYMBOL3J VSH Interface
SYMBOL3J_DP VSH Function

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.

Read more…
TEST1_ANALYTIC TESTS Function

Hand-derived closed form for Test 1's target quantity (a specific product of VSH inner products), evaluated over a colatitude grid at for comparison against TEST1_VSH and TEST1_GW.

Read more…
TEST1_GW TESTS Function

Test 1's target quantity computed via the GWI-coefficient expansion in scalar spherical harmonics, rather than direct VSH DOT products -- must agree with TEST1_ANALYTIC and TEST1_VSH to machine precision. This is the check that specifically exercises GWI (see also TEST2_GW for the GWJ counterpart).

Read more…
TEST1_VSH TESTS Function

Test 1's target quantity computed directly from DOT products of VSH_TOR/VSH_POL_DN/VSH_POL_UP values -- must agree with TEST1_ANALYTIC to machine precision.

Read more…
TEST2_ANALYTIC TESTS Function

Hand-derived closed form for Test 2's target quantity (a different product of VSH inner products than Test 1, with nonzero content), evaluated over a colatitude grid at a fixed for comparison against TEST2_VSH and TEST2_GW.

Read more…
TEST2_GW TESTS Function

Test 2's target quantity computed via the GWJ-coefficient expansion (combined with a GWI term) in scalar spherical harmonics -- must agree with TEST2_ANALYTIC and TEST2_VSH to machine precision. This is the check that specifically exercises GWJ.

Read more…
TEST2_VSH TESTS Function

Test 2's target quantity computed directly from DOT products of PVSH_POL/PVSH_TOR/PVSH_RAD values -- must agree with TEST2_ANALYTIC to machine precision.

Read more…
VSH_CORE VSH Interface
VSH_CORE_DP VSH Subroutine

Private helper shared by every batch VSH routine (GRAD_SSH_ALL, L_SSH_ALL, PVSH_RAD_ALL, PVSH_POL_ALL, PVSH_TOR_ALL, VSH_TOR_ALL, VSH_POL_UP_ALL, VSH_POL_DN_ALL): computes and its two angular gradient components (GRAD_SSH's parts) for every in one pass, so each caller only has to apply its own linear combination/normalization on top.

Read more…
VSH_POL_DN VSH Interface
VSH_POL_DN_ALL VSH Interface
VSH_POL_DN_ALL_DP VSH Subroutine

All standard-VSH members VSH_POL_DN for , from one VSH_CORE pass: . Zero for -- see VSH_POL_DN for the dipole-ratio caveat at .

Read more…
VSH_POL_DN_DP VSH Function

The member of the standard (total-angular-momentum coupled) vector spherical harmonic basis, built from the polar basis by i.e. PVSH_RAD and PVSH_POL rotated together by an -dependent angle (see VSH_POL_UP for the companion rotation). Zero for (no ).

Read more…
VSH_POL_INVERSION TESTS Subroutine

Verifies the orthogonal-rotation identity linking the standard and polar VSH bases can be inverted exactly: i.e. rotating VSH_POL_UP/VSH_POL_DN back by the same angle used to build them from PVSH_POL/PVSH_RAD recovers the originals exactly.

Read more…
VSH_POL_UP VSH Interface
VSH_POL_UP_ALL VSH Interface
VSH_POL_UP_ALL_DP VSH Subroutine

All standard-VSH members VSH_POL_UP for , from one VSH_CORE pass: . Well-defined (nonzero) at -- see VSH_POL_UP for the dipole-ratio note at .

Read more…
VSH_POL_UP_DP VSH Function

The member of the standard (total-angular-momentum coupled) vector spherical harmonic basis, built from the polar basis by the companion rotation to VSH_POL_DN's . Unlike VSH_POL_DN this is well-defined (nonzero radial part) at , since still exists when .

Read more…
VSH_TOR VSH Interface
VSH_TOR_ALL VSH Interface
VSH_TOR_ALL_DP VSH Subroutine

All toroidal standard-VSH members VSH_TOR for . Identical to PVSH_TOR_ALL (thin wrapper) -- the toroidal member is common to both bases.

Read more…
VSH_TOR_DP VSH Function

Toroidal member of the "standard" (total-angular-momentum-coupled) vector spherical harmonic basis, . Identical to PVSH_TOR -- the toroidal member is common to both the polar and standard bases, since already carries total angular momentum with no admixture.

Read more…
WALL_TIME BENCHMARK Function

Wall-clock seconds elapsed, via SYSTEM_CLOCK with an INTEGER(i8) count so the calibration loops in every BENCH_* routine below cannot roll the counter over during a long-running sweep.

Read more…
YLM_INDEX VSH Function

1D index for into the output arrays of every batch _ALL routine that needs the full range (SSH_ALL, GRAD_SSH_ALL, L_SSH_ALL, and every batch VSH routine).

Read more…
call~~graph~~CallGraph interface~assoc_legendre ASSOC_LEGENDRE proc~assoc_legendre_dp ASSOC_LEGENDRE_DP interface~assoc_legendre->proc~assoc_legendre_dp interface~assoc_legendre_all ASSOC_LEGENDRE_ALL proc~assoc_legendre_all_dp ASSOC_LEGENDRE_ALL_DP interface~assoc_legendre_all->proc~assoc_legendre_all_dp interface~assoc_legendre_and_deriv ASSOC_LEGENDRE_AND_DERIV proc~assoc_legendre_and_deriv_dp ASSOC_LEGENDRE_AND_DERIV_DP interface~assoc_legendre_and_deriv->proc~assoc_legendre_and_deriv_dp interface~assoc_legendre_norm_all ASSOC_LEGENDRE_NORM_ALL proc~assoc_legendre_norm_all_dp ASSOC_LEGENDRE_NORM_ALL_DP interface~assoc_legendre_norm_all->proc~assoc_legendre_norm_all_dp interface~cgcoeff CGCOEFF proc~cgcoeff_dp CGCOEFF_DP interface~cgcoeff->proc~cgcoeff_dp interface~ddx_assoc_legendre DDX_ASSOC_LEGENDRE proc~ddx_assoc_legendre_dp DDX_ASSOC_LEGENDRE_DP interface~ddx_assoc_legendre->proc~ddx_assoc_legendre_dp interface~ddx_assoc_legendre_all DDX_ASSOC_LEGENDRE_ALL proc~ddx_assoc_legendre_all_dp DDX_ASSOC_LEGENDRE_ALL_DP interface~ddx_assoc_legendre_all->proc~ddx_assoc_legendre_all_dp interface~ddx_assoc_legendre_norm_all DDX_ASSOC_LEGENDRE_NORM_ALL proc~ddx_assoc_legendre_norm_all_dp DDX_ASSOC_LEGENDRE_NORM_ALL_DP interface~ddx_assoc_legendre_norm_all->proc~ddx_assoc_legendre_norm_all_dp interface~ddx_legendre DDX_LEGENDRE proc~ddx_legendre_dp DDX_LEGENDRE_DP interface~ddx_legendre->proc~ddx_legendre_dp interface~dot DOT proc~dot_dp DOT_DP interface~dot->proc~dot_dp interface~factorial FACTORIAL proc~factorial_dp FACTORIAL_DP interface~factorial->proc~factorial_dp interface~grad_ssh GRAD_SSH proc~grad_ssh_dp GRAD_SSH_DP interface~grad_ssh->proc~grad_ssh_dp interface~grad_ssh_all GRAD_SSH_ALL proc~grad_ssh_all_dp GRAD_SSH_ALL_DP interface~grad_ssh_all->proc~grad_ssh_all_dp interface~gwi GWI proc~gwi_dp GWI_DP interface~gwi->proc~gwi_dp interface~gwj GWJ proc~gwj_dp GWJ_DP interface~gwj->proc~gwj_dp interface~l_ssh L_SSH proc~l_ssh_dp L_SSH_DP interface~l_ssh->proc~l_ssh_dp interface~l_ssh_all L_SSH_ALL proc~l_ssh_all_dp L_SSH_ALL_DP interface~l_ssh_all->proc~l_ssh_all_dp interface~legendre LEGENDRE proc~legendre_dp LEGENDRE_DP interface~legendre->proc~legendre_dp interface~log_fact LOG_FACT proc~log_fact_dp LOG_FACT_DP interface~log_fact->proc~log_fact_dp interface~pvsh_pol PVSH_POL proc~pvsh_pol_dp PVSH_POL_DP interface~pvsh_pol->proc~pvsh_pol_dp interface~pvsh_pol_all PVSH_POL_ALL proc~pvsh_pol_all_dp PVSH_POL_ALL_DP interface~pvsh_pol_all->proc~pvsh_pol_all_dp interface~pvsh_rad PVSH_RAD proc~pvsh_rad_dp PVSH_RAD_DP interface~pvsh_rad->proc~pvsh_rad_dp interface~pvsh_rad_all PVSH_RAD_ALL proc~pvsh_rad_all_dp PVSH_RAD_ALL_DP interface~pvsh_rad_all->proc~pvsh_rad_all_dp interface~pvsh_tor PVSH_TOR proc~pvsh_tor_dp PVSH_TOR_DP interface~pvsh_tor->proc~pvsh_tor_dp interface~pvsh_tor_all PVSH_TOR_ALL proc~pvsh_tor_all_dp PVSH_TOR_ALL_DP interface~pvsh_tor_all->proc~pvsh_tor_all_dp interface~shglq SHGLQ proc~shglq_dp SHGLQ_DP interface~shglq->proc~shglq_dp interface~ssh SSH proc~ssh_dp SSH_DP interface~ssh->proc~ssh_dp interface~ssh_all SSH_ALL proc~ssh_all_dp SSH_ALL_DP interface~ssh_all->proc~ssh_all_dp interface~symbol3j SYMBOL3J proc~symbol3j_dp SYMBOL3J_DP interface~symbol3j->proc~symbol3j_dp interface~vsh_core VSH_CORE proc~vsh_core_dp VSH_CORE_DP interface~vsh_core->proc~vsh_core_dp interface~vsh_pol_dn VSH_POL_DN proc~vsh_pol_dn_dp VSH_POL_DN_DP interface~vsh_pol_dn->proc~vsh_pol_dn_dp interface~vsh_pol_dn_all VSH_POL_DN_ALL proc~vsh_pol_dn_all_dp VSH_POL_DN_ALL_DP interface~vsh_pol_dn_all->proc~vsh_pol_dn_all_dp interface~vsh_pol_up VSH_POL_UP proc~vsh_pol_up_dp VSH_POL_UP_DP interface~vsh_pol_up->proc~vsh_pol_up_dp interface~vsh_pol_up_all VSH_POL_UP_ALL proc~vsh_pol_up_all_dp VSH_POL_UP_ALL_DP interface~vsh_pol_up_all->proc~vsh_pol_up_all_dp interface~vsh_tor VSH_TOR proc~vsh_tor_dp VSH_TOR_DP interface~vsh_tor->proc~vsh_tor_dp interface~vsh_tor_all VSH_TOR_ALL proc~vsh_tor_all_dp VSH_TOR_ALL_DP interface~vsh_tor_all->proc~vsh_tor_all_dp proc~plm_index PLM_INDEX proc~assoc_legendre_all_dp->proc~plm_index proc~assoc_legendre_and_deriv_dp->interface~log_fact proc~assoc_legendre_dp->interface~log_fact proc~assoc_legendre_norm_all_dp->proc~plm_index proc~batch_alm_cons BATCH_ALM_CONS proc~batch_alm_cons->interface~assoc_legendre proc~batch_alm_cons->interface~assoc_legendre_all proc~batch_alm_cons->proc~plm_index proc~batch_dalm_cons BATCH_DALM_CONS proc~batch_dalm_cons->interface~assoc_legendre_all proc~batch_dalm_cons->interface~ddx_assoc_legendre proc~batch_dalm_cons->interface~ddx_assoc_legendre_all proc~batch_dalm_cons->proc~plm_index proc~batch_grad_ssh_cons BATCH_GRAD_SSH_CONS proc~batch_grad_ssh_cons->interface~grad_ssh proc~batch_grad_ssh_cons->interface~grad_ssh_all proc~ylm_index YLM_INDEX proc~batch_grad_ssh_cons->proc~ylm_index proc~batch_l_ssh_cons BATCH_L_SSH_CONS proc~batch_l_ssh_cons->interface~l_ssh proc~batch_l_ssh_cons->interface~l_ssh_all proc~batch_l_ssh_cons->proc~ylm_index proc~batch_pvsh_pol_cons BATCH_PVSH_POL_CONS proc~batch_pvsh_pol_cons->interface~pvsh_pol proc~batch_pvsh_pol_cons->interface~pvsh_pol_all proc~batch_pvsh_pol_cons->proc~ylm_index proc~batch_pvsh_rad_cons BATCH_PVSH_RAD_CONS proc~batch_pvsh_rad_cons->interface~pvsh_rad proc~batch_pvsh_rad_cons->interface~pvsh_rad_all proc~batch_pvsh_rad_cons->proc~ylm_index proc~batch_pvsh_tor_cons BATCH_PVSH_TOR_CONS proc~batch_pvsh_tor_cons->interface~pvsh_tor proc~batch_pvsh_tor_cons->interface~pvsh_tor_all proc~batch_pvsh_tor_cons->proc~ylm_index proc~batch_ssh_cons BATCH_SSH_CONS proc~batch_ssh_cons->interface~ssh proc~batch_ssh_cons->interface~ssh_all proc~batch_ssh_cons->proc~ylm_index dimag dimag proc~batch_ssh_cons->dimag proc~batch_vsh_pol_dn_cons BATCH_VSH_POL_DN_CONS proc~batch_vsh_pol_dn_cons->interface~vsh_pol_dn proc~batch_vsh_pol_dn_cons->interface~vsh_pol_dn_all proc~batch_vsh_pol_dn_cons->proc~ylm_index proc~batch_vsh_pol_up_cons BATCH_VSH_POL_UP_CONS proc~batch_vsh_pol_up_cons->interface~vsh_pol_up proc~batch_vsh_pol_up_cons->interface~vsh_pol_up_all proc~batch_vsh_pol_up_cons->proc~ylm_index proc~batch_vsh_tor_cons BATCH_VSH_TOR_CONS proc~batch_vsh_tor_cons->interface~vsh_tor proc~batch_vsh_tor_cons->interface~vsh_tor_all proc~batch_vsh_tor_cons->proc~ylm_index proc~bench_legendre BENCH_LEGENDRE proc~bench_legendre->interface~assoc_legendre proc~bench_legendre->interface~assoc_legendre_norm_all proc~wall_time WALL_TIME proc~bench_legendre->proc~wall_time proc~bench_ssh BENCH_SSH proc~bench_ssh->interface~ssh proc~bench_ssh->interface~ssh_all proc~bench_ssh->proc~wall_time proc~bench_vsh_pol_dn BENCH_VSH_POL_DN proc~bench_vsh_pol_dn->interface~vsh_pol_dn proc~bench_vsh_pol_dn->interface~vsh_pol_dn_all proc~bench_vsh_pol_dn->proc~wall_time proc~bench_vsh_pol_up BENCH_VSH_POL_UP proc~bench_vsh_pol_up->interface~vsh_pol_up proc~bench_vsh_pol_up->interface~vsh_pol_up_all proc~bench_vsh_pol_up->proc~wall_time proc~bench_vsh_tor BENCH_VSH_TOR proc~bench_vsh_tor->interface~vsh_tor proc~bench_vsh_tor->interface~vsh_tor_all proc~bench_vsh_tor->proc~wall_time proc~cgcoeff_dp->interface~log_fact proc~ddx_assoc_legendre_all_dp->proc~plm_index proc~ddx_assoc_legendre_dp->interface~assoc_legendre_and_deriv proc~ddx_assoc_legendre_norm_all_dp->proc~plm_index proc~ddx_legendre_dp->interface~legendre proc~decompose DECOMPOSE proc~decompose->interface~dot proc~decompose->interface~pvsh_pol_all proc~decompose->interface~pvsh_rad_all proc~decompose->interface~pvsh_tor_all proc~decompose->interface~shglq dacos dacos proc~decompose->dacos proc~decompose~2 DECOMPOSE proc~decompose~2->interface~dot proc~decompose~2->interface~pvsh_pol_all proc~decompose~2->interface~pvsh_rad_all proc~decompose~2->interface~pvsh_tor_all proc~decompose~2->interface~shglq proc~decompose~2->dacos proc~field_gaussian FIELD_GAUSSIAN dcos dcos proc~field_gaussian->dcos dexp dexp proc~field_gaussian->dexp dsin dsin proc~field_gaussian->dsin proc~field_known FIELD_KNOWN proc~field_known->interface~pvsh_pol proc~field_known->interface~pvsh_rad proc~field_known->interface~pvsh_tor proc~field_known_tor FIELD_KNOWN_TOR proc~field_known_tor->interface~pvsh_tor proc~field_quad_bump FIELD_QUAD_BUMP proc~field_quad_bump->interface~pvsh_tor proc~field_quad_bump->dcos proc~field_quad_bump->dexp proc~field_quad_bump->dsin proc~grad_ssh_all_dp->interface~vsh_core proc~grad_ssh_dp->interface~assoc_legendre_and_deriv proc~grad_ssh_dp->interface~log_fact proc~grad_ssh_dp->dcos proc~grad_ssh_dp->dsin proc~gwi_dp->interface~cgcoeff proc~gwj_dp->interface~cgcoeff proc~l_ssh_all_dp->interface~vsh_core proc~l_ssh_dp->interface~assoc_legendre_and_deriv proc~l_ssh_dp->interface~log_fact proc~l_ssh_dp->dcos proc~l_ssh_dp->dsin proc~pvsh_pol_all_dp->interface~vsh_core proc~pvsh_pol_all_dp->proc~ylm_index proc~pvsh_pol_dp->interface~assoc_legendre_and_deriv proc~pvsh_pol_dp->interface~log_fact proc~pvsh_pol_dp->dcos proc~pvsh_pol_dp->dsin proc~pvsh_pol_tor_ortho PVSH_POL_TOR_ORTHO proc~pvsh_pol_tor_ortho->interface~dot proc~pvsh_pol_tor_ortho->interface~pvsh_pol_all proc~pvsh_pol_tor_ortho->interface~pvsh_tor_all proc~pvsh_pol_tor_ortho->proc~ylm_index proc~pvsh_rad_all_dp->interface~vsh_core proc~pvsh_rad_dp->interface~ssh proc~pvsh_tor_all_dp->interface~vsh_core proc~pvsh_tor_all_dp->proc~ylm_index proc~pvsh_tor_dp->interface~assoc_legendre_and_deriv proc~pvsh_tor_dp->interface~log_fact proc~pvsh_tor_dp->dcos proc~pvsh_tor_dp->dsin proc~reconstruct RECONSTRUCT proc~reconstruct->interface~pvsh_pol_all proc~reconstruct->interface~pvsh_rad_all proc~reconstruct->interface~pvsh_tor_all proc~reconstruct~2 RECONSTRUCT proc~reconstruct~2->interface~pvsh_pol_all proc~reconstruct~2->interface~pvsh_rad_all proc~reconstruct~2->interface~pvsh_tor_all proc~run_gwi_sweep RUN_GWI_SWEEP proc~run_gwi_sweep->interface~gwi proc~run_gwi_sweep->interface~shglq proc~run_gwi_sweep->interface~ssh proc~run_gwi_sweep->dacos proc~run_gwj_sweep RUN_GWJ_SWEEP proc~run_gwj_sweep->interface~dot proc~run_gwj_sweep->interface~gwj proc~run_gwj_sweep->interface~pvsh_pol proc~run_gwj_sweep->interface~pvsh_tor proc~run_gwj_sweep->interface~ssh proc~run_part_a RUN_PART_A proc~run_part_a->proc~decompose proc~run_part_a->proc~ylm_index proc~run_part_a~2 RUN_PART_A proc~run_part_a~2->proc~decompose~2 proc~run_part_a~2->proc~ylm_index proc~run_part_b RUN_PART_B proc~run_part_b->proc~decompose proc~run_part_b->proc~field_gaussian proc~run_part_b->proc~reconstruct proc~run_part_b~2 RUN_PART_B proc~run_part_b~2->proc~decompose~2 proc~run_part_b~2->proc~field_quad_bump proc~run_part_b~2->proc~reconstruct~2 proc~shglq_dp->dcos proc~ssh_all_dp->interface~assoc_legendre_norm_all proc~ssh_all_dp->proc~plm_index proc~ssh_all_dp->proc~ylm_index proc~ssh_all_dp->dcos proc~ssh_dp->interface~assoc_legendre proc~ssh_dp->interface~log_fact proc~ssh_dp->dcos proc~ssh_ortho SSH_ORTHO proc~ssh_ortho->interface~assoc_legendre_all proc~ssh_ortho->interface~log_fact proc~ssh_ortho->proc~plm_index proc~symbol3j_dp->interface~cgcoeff proc~test1_analytic TEST1_ANALYTIC proc~test1_analytic->dcos proc~test1_analytic->dsin proc~test1_gw TEST1_GW proc~test1_gw->interface~gwi proc~test1_gw->interface~ssh proc~test1_vsh TEST1_VSH proc~test1_vsh->interface~dot proc~test1_vsh->interface~vsh_pol_dn proc~test1_vsh->interface~vsh_pol_up proc~test1_vsh->interface~vsh_tor proc~test2_analytic TEST2_ANALYTIC proc~test2_analytic->dcos proc~test2_analytic->dsin proc~test2_gw TEST2_GW proc~test2_gw->interface~gwi proc~test2_gw->interface~gwj proc~test2_gw->interface~ssh proc~test2_vsh TEST2_VSH proc~test2_vsh->interface~dot proc~test2_vsh->interface~pvsh_pol proc~test2_vsh->interface~pvsh_rad proc~test2_vsh->interface~pvsh_tor proc~vsh_core_dp->interface~assoc_legendre_norm_all proc~vsh_core_dp->interface~ddx_assoc_legendre_norm_all proc~vsh_core_dp->proc~plm_index proc~vsh_core_dp->proc~ylm_index proc~vsh_core_dp->dcos proc~vsh_core_dp->dsin proc~vsh_pol_dn_all_dp->interface~vsh_core proc~vsh_pol_dn_all_dp->proc~ylm_index proc~vsh_pol_dn_dp->interface~assoc_legendre_and_deriv proc~vsh_pol_dn_dp->interface~log_fact proc~vsh_pol_dn_dp->dcos proc~vsh_pol_dn_dp->dsin proc~vsh_pol_inversion VSH_POL_INVERSION proc~vsh_pol_inversion->interface~pvsh_pol_all proc~vsh_pol_inversion->interface~pvsh_rad_all proc~vsh_pol_inversion->interface~vsh_pol_dn_all proc~vsh_pol_inversion->interface~vsh_pol_up_all proc~vsh_pol_inversion->proc~ylm_index proc~vsh_pol_up_all_dp->interface~vsh_core proc~vsh_pol_up_all_dp->proc~ylm_index proc~vsh_pol_up_dp->interface~assoc_legendre_and_deriv proc~vsh_pol_up_dp->interface~log_fact proc~vsh_pol_up_dp->dcos proc~vsh_pol_up_dp->dsin proc~vsh_tor_all_dp->interface~pvsh_tor_all proc~vsh_tor_dp->interface~pvsh_tor program~bench_main BENCH_MAIN program~bench_main->proc~bench_legendre program~bench_main->proc~bench_ssh program~bench_main->proc~bench_vsh_pol_dn program~bench_main->proc~bench_vsh_pol_up program~bench_main->proc~bench_vsh_tor program~convergence_main CONVERGENCE_MAIN program~convergence_main->interface~assoc_legendre program~convergence_main->interface~assoc_legendre_all program~convergence_main->interface~assoc_legendre_norm_all program~convergence_main->interface~ssh program~convergence_main->interface~ssh_all program~convergence_main->interface~vsh_pol_dn program~convergence_main->interface~vsh_pol_dn_all program~convergence_main->interface~vsh_pol_up program~convergence_main->interface~vsh_pol_up_all program~convergence_main->interface~vsh_tor program~convergence_main->interface~vsh_tor_all program~convergence_main->proc~batch_alm_cons program~convergence_main->proc~batch_ssh_cons program~convergence_main->proc~batch_vsh_pol_dn_cons program~convergence_main->proc~batch_vsh_pol_up_cons program~convergence_main->proc~batch_vsh_tor_cons program~convergence_main->proc~plm_index program~convergence_main->proc~ylm_index program~convergence_main->dimag program~dipole_flux_expulsion DIPOLE_FLUX_EXPULSION program~dipole_flux_expulsion->interface~pvsh_pol program~dipole_flux_expulsion->interface~pvsh_rad program~dipole_flux_expulsion->dcos program~dipole_flux_expulsion->dsin program~dipole_synthesis DIPOLE_SYNTHESIS program~dipole_synthesis->interface~pvsh_pol program~dipole_synthesis->interface~pvsh_rad program~dipole_synthesis->interface~ssh program~dipole_synthesis->dacos program~dipole_synthesis->dcos program~dipole_synthesis->dsin program~dipole_uniform_sphere DIPOLE_UNIFORM_SPHERE program~dipole_uniform_sphere->interface~pvsh_pol program~dipole_uniform_sphere->interface~pvsh_rad program~dipole_uniform_sphere->dcos program~dipole_uniform_sphere->dsin program~gwi_gwj_sweep GWI_GWJ_SWEEP program~gwi_gwj_sweep->proc~run_gwi_sweep program~gwi_gwj_sweep->proc~run_gwj_sweep program~main MAIN program~main->proc~batch_alm_cons program~main->proc~batch_dalm_cons program~main->proc~batch_grad_ssh_cons program~main->proc~batch_l_ssh_cons program~main->proc~batch_pvsh_pol_cons program~main->proc~batch_pvsh_rad_cons program~main->proc~batch_pvsh_tor_cons program~main->proc~batch_ssh_cons program~main->proc~batch_vsh_pol_dn_cons program~main->proc~batch_vsh_pol_up_cons program~main->proc~batch_vsh_tor_cons program~main->proc~pvsh_pol_tor_ortho program~main->proc~ssh_ortho program~main->proc~test1_analytic program~main->proc~test1_gw program~main->proc~test1_vsh program~main->proc~test2_analytic program~main->proc~test2_gw program~main->proc~test2_vsh program~main->proc~vsh_pol_inversion program~stability_main STABILITY_MAIN program~stability_main->interface~assoc_legendre_norm_all program~stability_main->proc~plm_index program~stability_main->dcos program~unnorm_stability_main UNNORM_STABILITY_MAIN program~unnorm_stability_main->interface~assoc_legendre program~unnorm_stability_main->interface~assoc_legendre_all program~unnorm_stability_main->proc~plm_index program~unnorm_stability_main->dcos program~vsh_decomposition VSH_DECOMPOSITION program~vsh_decomposition->proc~run_part_a program~vsh_decomposition->proc~run_part_b program~vsh_decomposition_tor VSH_DECOMPOSITION_TOR program~vsh_decomposition_tor->proc~run_part_a~2 program~vsh_decomposition_tor->proc~run_part_b~2
Help