AxiSEM
Git Revision 618003bbeeddfe96c7d0aab04379d566fe9d9abf
AxiSEM

analytic_mapping  
analytic_semi_mapping  
analytic_spheroid_mapping  
apply_masks  
attenuation  
background_models  This module is identical in the mesher and solver. Function "velocity" retrieves the velocity (or density) of the given background model (see different cases and respective routines below) for radius r0 given its subdomain identification number idom (determined respectively in mesher and solver) 
clocks_mod  
clocks_wrapper_mesher  Module to do the MESHERspecific initialization of the clocks module i.e. defining the MESHERspecific clocks 
clocks_wrapper_solver  Module to do the SOLVERspecific initialization of the clocks module i.e. defining the SOLVERspecific clocks 
commpi  
commun  This is the communication module which loads/sorts data to exchange/examine over the processors 
data_all  
data_bkgrdmodel  
data_coarse  
data_comm  Messagepassing communication variables Note: For the easy serialization of the code (see commun.f90 and commpi.f90), one still needs this module as these quantities are read in from the mesher 
data_diag  
data_gllmesh  
data_grid  
data_heterogeneous  
data_io  Miscellaneous variables relevant to any read/write process such as paths, logicals describing what to save, sampling rate of dumps 
data_matr  
data_mesh  
data_numbering  
data_pdb  
data_pointwise  This module is only known during the time loop if the strain tensor is computed onthefly. The fluid section is additionally known if global snapshots are dumped (to compute the displacement in the fluid) 
data_proc  General variables pertaining to process identification 
data_source  Variables describing anything related to the source 
data_spec  Variables concerned with elemental & spectral aspects only (e.g. GLL points, Lagrange interpolant derivatives, quadrature weights) 
data_time  Various variables around timing 
def_grid  
def_precomp_terms  Read elastic information of the background model, define precomputable matrices for mass, stiffness, boundary terms, pointwise derivatives 
discont_meshing  
get_mesh  
get_model  
gllmeshgen  
global_par  
global_parameters  This determines the precision for the memory/CPUintensive time loop. Set the parameter realkind to either sp: single precision (half memory compared to 8, faster on many systems) dp: double precision (more expensive (double memory), but more precise. The mesher is intrinsically double precision, as are all precomputed, mesh related variables. This distinction is only relevant for the global arrays used in the time evolution 
input  
interpolation  
interpolation_data  
kdtree2_module  
interval  
kdtree2  
tree_node  
tree_search_record  
kdtree2_precision_module  
kdtree2_priority_queue_module  
kdtree2_result  
pq  
lateral_heterogeneities  
linked_list  
mesh_info  
meshes_io  This module contains routines that compute and dump the respective meshes underlying the actual wavefields to be dumped in the time loop which is done in wavefields_io. This module needs preloop variables such as mesh coordinates and is therefore cut off from the dumping module 
meshgen  
model_discontinuities  
nc_helpers  Contains some routines to ease interaction with netcdf files 
nc_postroutines  
ncparamtype  
nc_routines  Contains all the routines for NetCDF handling 
nc_snapshots  Contains some routines to ease interaction with netcdf files 
numbering  
parallelization  
parameters  Read parameters for the general solver (i.e. NOT mesh, sources, receivers); compute other parameters for the simulation; write out summaries of all relevant simulation settings 
pdb  
pointwise_derivatives  
rotations  
seismograms  Various subroutines for seismogram preparation and dumping 
sorting  
source  
splib  Core of the spectral method 
stiffness_di  
stiffness_fluid  
stiffness_mono  
stiffness_quad  
subpar_mapping  
test_bkgrdmodel  
time_evol_wave  Contains all functions for the wave propagation. prepare_waves has to be called beforehand and then time_loop is the only allowed entry point to start wave propagation 
unrolled_loops  Routines for general matrixmatrix and matrixvector multiplication. Called a bazillion times, presumably fast 
utlity  
wavefields_io  Contains all routines that dump entire wavefields during the time loop. Optimization of I/O therefore happens here and nowhere else. The corresponding meshes are dumped in meshes_io 
xdmf 