Main program for the Legolas finite element code. Matrices, eigenvalues and left/right eigenvectors are defined here and passed on to the different modules and submodules.

`Legolas` is currently being developed by Niels Claes, Jordi De Jonghe
and Rony Keppens, at the Centre for mathematical Plasma-Astrophysics (CmPA),
KU Leuven, Belgium.

Type | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|

type(matrix_t) | :: | matrix_A | A matrix in eigenvalue problem wBX = AX |
|||

type(matrix_t) | :: | matrix_B | B matrix in eigenvalue problem wBX = AX |
|||

type(timer_t) | :: | timer | timer used by the whole program |
|||

type(settings_t) | :: | settings | dedicated settings type |
|||

type(eigenfunctions_t) | :: | eigenfunctions | ||||

complex(kind=dp), | allocatable | :: | omega(:) | array with eigenvalues |
||

complex(kind=dp), | allocatable | :: | right_eigenvectors(:,:) | matrix with right eigenvectors, column indices correspond to omega indices |

Subroutine responsible for all initialisations. Allocates and initialises main and global variables, then the equilibrium state and eigenfunctions are initialised and the equilibrium is set.

Initialises and calculates the eigenfunctions if requested.

Deallocates all main variables, then calls the cleanup routines of all relevant subroutines to do the same thing.