# Fortran Module Index

a | ||

`algebra` | ||

b | ||

`band_matrices` | ||

`blocking` |
Module containing blocking information | |

c | ||

`charmanip` |
This module contains several useful routines to manipule character strings | |

`chebyshev` | ||

`chebyshev_polynoms_mod` | ||

`communications` |
This module contains the different MPI communicators used in MagIC. | |

`constants` |
module containing constants and parameters used in the code. | |

`cosine_transform_even` | ||

`cosine_transform_odd` |
This module contains the built-in type I discrete Cosine Transforms. This implementation is based on Numerical Recipes and FFTPACK. This only works for ``n_r_max-1 = 2**a 3**b 5**c``, with a,b,c integers.... | |

`courant_mod` |
This module handles the computation of Courant factors on grid space. It then checks whether the timestep size needs to be modified. | |

d | ||

`dense_matrices` | ||

`dirk_schemes` |
This module defines the type_dirk which inherits from the abstract type_tscheme. It actually implements all the routine required to time-advance an diagonally implicit Runge-Kutta scheme. It makes use | |

`dtb_arrays_mod` | ||

`dtb_mod` |
This module contains magnetic field stretching and advection terms plus a separate omega-effect. It is used for movie output.... | |

f | ||

`fft` |
This module contains the native subroutines used to compute FFT's. They are based on the FFT99 package from Temperton: http://www.cesm.ucar.edu/models/cesm1.2/cesm/cesmBbrowser/html_code/cam/fft99.F90.html | |

`fft_fac_mod` | ||

`fields` |
This module contains all the fields used in MagIC in the hybrid (LM,r) space as well as their radial derivatives. It defines both the LM-distributed arrays and the R-distributed arrays.... | |

`fields_average_mod` |
This module is used when one wants to store time-averaged quantities | |

`fieldslast` |
This module contains all the work arrays of the previous time-steps needed to time advance the code. They are needed in the time-stepping scheme.... | |

`finite_differences` |
This module is used to calculate the radial grid when finite differences are requested | |

g | ||

`general_arrays_mod` | ||

`geos` |
This module is used to compute z-integrated diagnostics such as the degree of geostrophy or the separation of energies between inside and outside the tangent cylinder. This makes use of a local Simpson's method. This also | |

`getdlm_mod` |
This module is used to calculate the lengthscales | |

`graphout_mod` |
This module contains the subroutines that store the 3-D graphic files. | |

h | ||

`horizontal_data` |
Module containing functions depending on longitude and latitude plus help arrays depending on degree and order | |

i | ||

`init_fields` |
This module is used to construct the initial solution. | |

`integration` |
Radial integration functions | |

k | ||

`kinetic_energy` |
This module handles the computation of kinetic energy and the time-averaged radial profiles. | |

l | ||

`lmloop_mod` | ||

`lmmapping` | ||

`logic` |
Module containing the logicals that control the run | |

m | ||

`magnetic_energy` |
This module handles the computation and the writing of the diagnostic files related to magnetic energy: e_mag_oc.TAG, e_mag_ic.TAG, dipole.TAG, eMagR.TAG | |

`mean_sd` |
This module contains a small type that simply handles two arrays (mean and SD) This type is used for time-averaged outputs (and their standard deviations). | |

`mem_alloc` |
This little module is used to estimate the global memory allocation used in MagIC | |

`movie_data` | ||

`mpi_transp_mod` |
This is an abstract class that will be used to define MPI transposers The actual implementation is deferred to either point-to-point (MPI_Isend and MPI_IRecv) communications or all-to-all (MPI_AlltoAll) | |

`multistep_schemes` |
This module defines the type_multistep which inherits from the abstract type_tscheme. It actually implements all the routine required to time-advance an IMEX multistep scheme such as CN/AB2, SBDF(2,3,4), | |

n | ||

`namelists` |
Read and print the input namelist | |

`nonlinear_bcs` | ||

`nonlinear_lm_mod` |
This module is used to finish the assembly of the nonlinear terms in :math:`(\ell,m)` space. Derivatives along :math:`\theta` and :math:`\phi` are handled using recurrence relations.... | |

`num_param` |
Module containing numerical and control parameters | |

o | ||

`out_coeff` |
This module contains the subroutines that calculate the Bcmb files, the [B|V|T]_coeff_r files and the [B|V|T]_lmr files | |

`out_dtb_frame` | ||

`out_movie` | ||

`out_movie_ic` | ||

`outmisc_mod` |
This module contains several subroutines that can compute and store various informations: helicity (helicity.TAG), heat transfer (heat.TAG), phase field (phase.TAG) and North/South hemisphericity of energies (hemi.TAG) | |

`outpar_mod` |
This module is used to compute several time-averaged radial profiles: fluxes, boundary layers, etc. | |

`output_data` |
This module contains the parameters for output control | |

`output_mod` |
This module handles the calls to the different output routines. | |

`outrot` |
This module handles the writing of several diagnostic files related to the rotation: angular momentum (AM.TAG), drift (drift.TAG), inner core and mantle rotations.... | |

`outto_mod` |
This module handles the writing of TO-related outputs: zonal force balance and z-integrated terms. This is a re-implementation of the spectral method used up to MagIC 5.10, which formerly relies on calculation of Plm on the cylindrical grid.... | |

p | ||

`parallel_mod` |
This module contains the blocking information | |

`parallel_solvers` |
This module contains the routines that are used to solve linear banded problems with R-distributed arrays. | |

`physical_parameters` |
Module containing the physical parameters | |

`plms_theta` | ||

`power` |
This module handles the writing of the power budget | |

`precalculations` | ||

`precision_mod` |
This module controls the precision used in MagIC | |

`probe_mod` |
Module for artificial sensors to compare time series of physical data with experiments. Probes are located in a radially symmetrical way | |

r | ||

`radial_data` |
This module defines the MPI decomposition in the radial direction. | |

`radial_der` |
Radial derivatives functions | |

`radial_der_even` | ||

`radial_functions` |
This module initiates all the radial functions (transport properties, density, temperature, cheb transforms, etc.) | |

`radial_scheme` |
This is an abstract type that defines the radial scheme used in MagIC | |

`radial_spectra` | ||

`radialloop` | ||

`readcheckpoints` |
This module contains the functions that can help reading and mapping of the restart files | |

`real_matrices` | ||

`riter_mod` |
This module actually handles the loop over the radial levels. It contains the spherical harmonic transforms and the operations on the arrays in physical space.... | |

`riteration` |
This module is used to define an abstract class for the radial loop | |

`rms` |
This module contains the calculation of the RMS force balance and induction terms. | |

`rms_helpers` |
This module contains several useful subroutines required to compute RMS diagnostics | |

s | ||

`sht` | ||

`shtransforms` | ||

`special` |
This module contains all variables for the case of an imposed IC dipole, an imposed external magnetic field and a special boundary forcing to excite inertial modes | |

`spectra` | ||

`start_fields` |
This module is used to set-up the initial starting fields. They can be obtained by reading a starting checkpoint file or by setting some starting conditions. | |

`step_time_mod` | ||

`storecheckpoints` |
This module contains several subroutines that can be used to store the checkpoint_#.tag files | |

t | ||

`time_array` |
This module defines two types that are defined to store the implicit/explicit terms at the different sub-stage/step. | |

`time_schemes` |
This module defines an abstract class type_tscheme which is employed for the time advance of the code. | |

`timing` |
This module contains functions that are used to measure the time spent. | |

`to_arrays_mod` | ||

`torsional_oscillations` |
This module contains information for TO calculation and output | |

`truncation` |
This module defines the grid points and the truncation | |

u | ||

`updateb_mod` |
This module handles the time advance of the magnetic field potentials b and aj as well as the inner core counterparts b_ic and aj_ic. It contains the computation of the implicit terms and the linear | |

`updatephi_mod` |
This module handles the time advance of the phase field phi. It contains the computation of the implicit terms and the linear solves.... | |

`updates_mod` |
This module handles the time advance of the entropy s. It contains the computation of the implicit terms and the linear solves.... | |

`updatewp_mod` |
This module handles the time advance of the poloidal potential w and the pressure p. It contains the computation of the implicit terms and the linear solves. | |

`updatewps_mod` |
This module handles the time advance of the poloidal potential w, the pressure p and the entropy s in one single matrix per degree. It contains the computation of the implicit terms and the linear | |

`updatexi_mod` |
This module handles the time advance of the chemical composition xi. It contains the computation of the implicit terms and the linear solves.... | |

`updatez_mod` |
This module handles the time advance of the toroidal potential z It contains the computation of the implicit terms and the linear solves.... | |

`useful` |
This module contains several useful routines. |