Modules

ModuleSource FileDescription
BENCHMARK benchmark.f90

Timing benchmarks comparing the batch (_ALL) Legendre/SSH/VSH routines against naive per-mode loops over the corresponding single-mode routines, evaluated across a grid of NX colatitude/ argument points -- mirroring how a spectral MHD transform would call these routines once per grid point every timestep. Each measurement is auto-calibrated: the full grid sweep is repeated until elapsed wall time crosses MIN_TIME, so timings stay resolvable across the full sweep used for the manuscript's performance figure, without a hardcoded repeat count. Not part of ctest (opt-in VSH_BUILD_BENCHMARK CMake target instead) since wall-clock timings are machine/compiler-dependent and shouldn't gate a pass/fail build.

GLOBALS globals.f90

Physical/mathematical constants shared across the library: and the imaginary unit , both at dp precision so every expression built from them (spherical harmonics, VSH, coupling coefficients) stays in double precision without repeated literal casts.

KINDS kinds.f90

Numerical storage size parameters for real and integer values https://fortran-lang.org/en/learn/best_practices/floating_point/

TESTS tests.f90

The numerical validation suite backing FORTVSH's accuracy claims (see the "Numerical Validation" appendix of the accompanying manuscript). Three families of checks:

Read more…
VSH vsh.f90

Scalar and vector spherical harmonics (VSH), Legendre functions, and the angular-momentum coupling coefficients (Clebsch-Gordan, Wigner 3-j, and Geppert-Wiebicke) used to build them.

Read more…
module~~graph~~ModuleGraph module~benchmark BENCHMARK module~globals GLOBALS module~benchmark->module~globals module~kinds KINDS module~benchmark->module~kinds module~vsh VSH module~benchmark->module~vsh module~globals->module~kinds module~tests TESTS module~tests->module~globals module~tests->module~kinds module~tests->module~vsh module~vsh->module~globals module~vsh->module~kinds program~bench_main BENCH_MAIN program~bench_main->module~benchmark program~bench_main->module~kinds program~convergence_main CONVERGENCE_MAIN program~convergence_main->module~globals program~convergence_main->module~kinds program~convergence_main->module~tests program~convergence_main->module~vsh program~dipole_flux_expulsion DIPOLE_FLUX_EXPULSION program~dipole_flux_expulsion->module~globals program~dipole_flux_expulsion->module~kinds program~dipole_flux_expulsion->module~vsh program~dipole_synthesis DIPOLE_SYNTHESIS program~dipole_synthesis->module~globals program~dipole_synthesis->module~kinds program~dipole_synthesis->module~vsh program~dipole_uniform_sphere DIPOLE_UNIFORM_SPHERE program~dipole_uniform_sphere->module~globals program~dipole_uniform_sphere->module~kinds program~dipole_uniform_sphere->module~vsh program~gwi_gwj_sweep GWI_GWJ_SWEEP program~gwi_gwj_sweep->module~globals program~gwi_gwj_sweep->module~kinds program~gwi_gwj_sweep->module~vsh program~main MAIN program~main->module~globals program~main->module~kinds program~main->module~tests program~stability_main STABILITY_MAIN program~stability_main->module~globals program~stability_main->module~kinds program~stability_main->module~vsh program~unnorm_stability_main UNNORM_STABILITY_MAIN program~unnorm_stability_main->module~globals program~unnorm_stability_main->module~kinds program~unnorm_stability_main->module~vsh program~vsh_decomposition VSH_DECOMPOSITION program~vsh_decomposition->module~globals program~vsh_decomposition->module~kinds program~vsh_decomposition->module~vsh program~vsh_decomposition_tor VSH_DECOMPOSITION_TOR program~vsh_decomposition_tor->module~globals program~vsh_decomposition_tor->module~kinds program~vsh_decomposition_tor->module~vsh
Help