Modules

ModuleSource FileDescription
ambient_modambient.F90

Provides an abstract derived type which can be subtyped in order to specify the temperature and salinity of the ambient ocean.

asymmetric_plume_modasymmetric_plume.F90

Provides a concrete implementation of the basal_surface data type, representing a buoyant plume beneath an ice shelf.

ave_linear_eos_modaveraged_linear_eos.F90

Provides an abstract derived type which can be subtyped in order to implement an equation of state.

ave_one_equation_melt_modaveraged_one_equation_melt.f90

Provides an implementation of melt similar to that used by Dallaston, Hewitt, and Wells (2015), prior to their neglecting certain terms on scaling arguments. This implementation has been modified to account for transverse variation in a horizontally-integrated model.

basal_surface_modbasal_surface.F90

Provides an abstract data type to model the ground or ocean below the glacier.

boundary_types_modboundary_types.f90

Provides parameters which can be used to represent different types of boundary conditions.

coriolis_block_modcoriolis_block.F90

Provides a derived type which representes the operator acting on velocity and its derivative with the Coriolis force. This can be used for preconditioning in the plume solver.

cryosphere_modcryosphere.F90

Provides a data structure representing a system of ice sheets and/or ice shelves, as well as the ground and/or ocean which they interact with. This is the fundamental data type of the ISOFT software suite.

dallaston2015_glacier_boundary_moddallaston2015_glacier.F90

Provides a derived type which specifies the boundary conditions for the ice shelf model used by Dallaston et al. (2015). These are Dirichlet conditions at the lower bound of the first condition as well as, for thickness, the upper bound.

dallaston2015_melt_moddallaston2015_melt.F90

Provides an implementation of abstract_melt_relationship which mimics the simple model used by Dallaston, Hewitt, and Wells (2015) for an ice shelf melting into a vertically integrated plume.

dallaston2015_seasonal_moddallaston2015_seasonal.F90

Provides a derived type which specifies the boundary conditions for a 1-D plume model, when subglacial discharge is oscillating over time. This corresponds to Dirichlet conditions at the grounding line and Neumann conditions (wth a gradient of 0) at the calving front.

entrainment_modentrainment.F90

Provides an abstract data type to model entrainment into a vertically integrated plume.

equation_of_state_modequation_of_state.F90

Provides an abstract derived type which can be subtyped in order to implement an equation of state.

finite_difference_block_modfinite_difference_block.F90

Provides a derived type which representes a finite difference matrix/operator. This can be useful for preconditioning problems which use a spectral discretisation.

glacier_boundary_modglacier_boundary.F90

Provides an abstract derived type which can be subtyped in order to specify the boundary conditions for glacier types.

glacier_modglacier.F90

Provides an abstract type to represent large masses of ice, such as ice sheets and ice shelves.

glens_law_modglens_law.F90

Provides a concrete implementation for the abstract_viscosity type using Glen's flow law.

ground_modground.F90

Provides a concrete implementation of the basal_surface data type, representing solid ground.

ice_sheet_modice_sheet.F90

Provides a concrete implementation of the glacier type, using a vertically integrated model of an ice sheet.

ice_shelf_modice_shelf.F90

Provides a concrete implementation of the glacier type, using a vertically integrated model of an ice shelf.

jacobian_block_modjacobian_block.F90

Provides a derived type which is useful for representing blocks in a Jacobian matrix. This follows the abstract calculus pattern, providing operators for matrix multiplication and for solving the linear(ised) system. See the documentation for the jacobian_block type for more details.

jenkins1991_entrainment_modjenkins1991_entrainment.F90

Provides a concrete implementation of abstract_entrainment in the form of the parameterisation used by Jenkins (1991).

kochergin1987_entrainment_modkochergin1987_entrainment.F90

Provides a concrete implementation of abstract_entrainment in the form of the parameterisation described by Kochergin (1987).

linear_eos_modlinear_eos.F90

Provides an abstract derived type which can be subtyped in order to implement an equation of state.

melt_relationship_modmelt_relationship.F90

Provides an abstract data type to model melting of an ice shelf into a vertically integrated plume.

meta_modmeta.F90

Provides functions specifying the version of ISOFT, time of compilation, etc.

   meta_implementation_modmeta_implementation.F90

Implements functions specifying the version of ISOFT, time of compilation, etc. This is done in a submodule because it should be recompiled with every build (so that compilation time is accurate) but without a submodule that would require every module using it to be recompiled as well.

newtonian_viscosity_modnewtonian_viscosity.F90

Provides a simple concrete implementation for the abstract_viscosity type, for a Newtonian fluid.

nitsol_modnitsol.f90

Provides an explicit interface to the NITSOL package. Variables held in common blocks which can be used to control NITSOL are also provided here. At some point I may produce a proper object oriented interface for it.

Read more…
ode_solvers_modode_solvers.f90

Provides routines to solve systems of ODEs.

one_equation_melt_modone_equation_melt.F90

Provides an implementation of melt similar to that used by Dallaston, Hewitt, and Wells (2015), prior to their neglecting certain terms on scaling arguments.

plume_boundary_modplume_boundary.F90

Provides an abstract derived type which can be subtyped in order to specify the boundary conditions for plume types.

plume_modplume.F90

Provides a concrete implementation of the basal_surface data type, representing a buoyant plume beneath an ice shelf.

preconditioner_modpreconditioner.F90

Provides a type for preconditioning fields in an iterative solver using Picard iteration.

prescribed_eos_modprescribed_salinity_eos.F90

Provides an equation of state where the salinity is prescribed such that . This is useful for testing and debugging the plume model.

pseudospectral_block_modpseudospectral_block.F90

Provides a derived type which representes a finite difference matrix/operator. This can be useful for preconditioning problems which use a spectral discretisation.

rksuite_90rksuite_90.f90
rksuite_90_precrksuite_90.f90
rootfindrootfind.f90

Provides subroutines implementing various root-finding algorithms, as well as a global bracket finder.

seasonal_glacier_boundary_modseasonal_glacier.F90

Provides a derived type which specifies the boundary conditions for the ice shelf model used by Dallaston et al. (2015), except that the ice flux at the grounding line varies sinusoidally in time. There are Dirichlet conditions at the lower bound of the first condition as well as, for thickness, the upper bound.

simple_plume_boundary_modsimple_plume.F90

Provides a derived type which specifies the boundary conditions for a 1-D plume model. Dirichlet boundary conditions are used at the grounding line, while an outflow condition is used at the end of the domain.

specfun_modspecfun.f90

SPECFUN is a FORTRAN90 library which evaluates certain special functions, by William Cody and Laura Stoltz.

Read more…
static_plume_modstatic_plume.F90

Provides a concrete implementation of the basal_surface data type, representing a buoyant plume beneath an ice shelf. This implementation does not evolve the plume.

transverse_coefficients_modtransverse_coefficients.f90

Provides functions to calculate the coefficients for the horizontally-integrated [asymmetric_plume] from the basal slope of the ice shelf. This module just provides the interface. The implmentation is automatically generated by the Python script XXXXXXXX based on various parameter choices, approximating the coefficients using interpolation.

uniform_ambient_moduniform.F90

Provides a derived type specifying uniform ambient temperature and salinity conditions beneath an ice shelf.

uniform_gradient_field_moduniform_gradient_field.f90

Provides an extension of the uniform field type which also appears to have a uniform gradient. This was written to allow some of the same code used when solving the plume in a Runge-Kutta solver, where I pass in uniform fields rather than ones using a Chebyshev grid.

upstream_plume_modupstream_plume.F90

Provides a derived type which specifies the boundary conditions for a 1-D plume model. In order to avoid boundary layer effects, an ODE solver is used to integrate the plume a little way upstream, past the boundary layer.

viscosity_modviscosity.F90

Provides an abstract data type to model viscosity into a vertically integrated plume.

module~~graph~~ModuleGraph module~kochergin1987_entrainment_mod kochergin1987_entrainment_mod module~entrainment_mod entrainment_mod module~kochergin1987_entrainment_mod->module~entrainment_mod factual_mod factual_mod module~kochergin1987_entrainment_mod->factual_mod iso_fortran_env iso_fortran_env module~kochergin1987_entrainment_mod->iso_fortran_env module~jenkins1991_entrainment_mod jenkins1991_entrainment_mod module~jenkins1991_entrainment_mod->module~entrainment_mod module~jenkins1991_entrainment_mod->factual_mod module~jenkins1991_entrainment_mod->iso_fortran_env module~prescribed_eos_mod prescribed_eos_mod module~equation_of_state_mod equation_of_state_mod module~prescribed_eos_mod->module~equation_of_state_mod module~prescribed_eos_mod->factual_mod module~prescribed_eos_mod->iso_fortran_env module~uniform_gradient_field_mod uniform_gradient_field_mod utils_mod utils_mod module~uniform_gradient_field_mod->utils_mod module~uniform_gradient_field_mod->factual_mod module~uniform_gradient_field_mod->iso_fortran_env module~glacier_boundary_mod glacier_boundary_mod module~boundary_types_mod boundary_types_mod module~glacier_boundary_mod->module~boundary_types_mod module~glacier_boundary_mod->factual_mod module~glacier_boundary_mod->iso_fortran_env module~ground_mod ground_mod module~basal_surface_mod basal_surface_mod module~ground_mod->module~basal_surface_mod module~ground_mod->factual_mod hdf5 hdf5 module~ground_mod->hdf5 module~ground_mod->iso_fortran_env module~ode_solvers_mod ode_solvers_mod module~nitsol_mod nitsol_mod module~ode_solvers_mod->module~nitsol_mod logger_mod logger_mod module~ode_solvers_mod->logger_mod module~ode_solvers_mod->iso_fortran_env penf penf module~ode_solvers_mod->penf module~dallaston2015_glacier_boundary_mod dallaston2015_glacier_boundary_mod module~dallaston2015_glacier_boundary_mod->module~glacier_boundary_mod module~dallaston2015_glacier_boundary_mod->module~boundary_types_mod module~dallaston2015_glacier_boundary_mod->factual_mod module~dallaston2015_glacier_boundary_mod->iso_fortran_env module~glens_law_mod glens_law_mod module~viscosity_mod viscosity_mod module~glens_law_mod->module~viscosity_mod module~glens_law_mod->factual_mod module~glens_law_mod->iso_fortran_env module~dallaston2015_seasonal_mod dallaston2015_seasonal_mod module~plume_boundary_mod plume_boundary_mod module~dallaston2015_seasonal_mod->module~plume_boundary_mod module~dallaston2015_seasonal_mod->module~boundary_types_mod module~dallaston2015_seasonal_mod->factual_mod module~dallaston2015_seasonal_mod->iso_fortran_env module~rksuite_90_prec rksuite_90_prec module~rksuite_90_prec->iso_fortran_env module~upstream_plume_mod upstream_plume_mod module~upstream_plume_mod->module~uniform_gradient_field_mod module~upstream_plume_mod->module~plume_boundary_mod module~upstream_plume_mod->module~boundary_types_mod module~rksuite_90 rksuite_90 module~upstream_plume_mod->module~rksuite_90 module~upstream_plume_mod->logger_mod module~upstream_plume_mod->factual_mod module~upstream_plume_mod->iso_fortran_env module~upstream_plume_mod->penf module~static_plume_mod static_plume_mod module~static_plume_mod->module~jenkins1991_entrainment_mod module~static_plume_mod->module~ode_solvers_mod module~static_plume_mod->module~upstream_plume_mod module~static_plume_mod->module~plume_boundary_mod module~static_plume_mod->module~boundary_types_mod module~uniform_ambient_mod uniform_ambient_mod module~static_plume_mod->module~uniform_ambient_mod module~melt_relationship_mod melt_relationship_mod module~static_plume_mod->module~melt_relationship_mod module~static_plume_mod->module~equation_of_state_mod module~simple_plume_boundary_mod simple_plume_boundary_mod module~static_plume_mod->module~simple_plume_boundary_mod module~ambient_mod ambient_mod module~static_plume_mod->module~ambient_mod module~dallaston2015_melt_mod dallaston2015_melt_mod module~static_plume_mod->module~dallaston2015_melt_mod module~static_plume_mod->module~entrainment_mod module~static_plume_mod->module~basal_surface_mod module~pseudospectral_block_mod pseudospectral_block_mod module~static_plume_mod->module~pseudospectral_block_mod module~linear_eos_mod linear_eos_mod module~static_plume_mod->module~linear_eos_mod module~static_plume_mod->logger_mod h5lt h5lt module~static_plume_mod->h5lt module~static_plume_mod->factual_mod module~static_plume_mod->hdf5 module~static_plume_mod->iso_fortran_env module~static_plume_mod->penf module~newtonian_viscosity_mod newtonian_viscosity_mod module~newtonian_viscosity_mod->module~viscosity_mod module~newtonian_viscosity_mod->factual_mod module~newtonian_viscosity_mod->iso_fortran_env module~ice_sheet_mod ice_sheet_mod module~glacier_mod glacier_mod module~ice_sheet_mod->module~glacier_mod module~ice_sheet_mod->module~viscosity_mod module~jacobian_block_mod jacobian_block_mod module~ice_sheet_mod->module~jacobian_block_mod module~ice_sheet_mod->logger_mod module~ice_sheet_mod->factual_mod module~ice_sheet_mod->hdf5 module~ice_sheet_mod->iso_fortran_env module~ave_one_equation_melt_mod ave_one_equation_melt_mod module~ave_one_equation_melt_mod->module~melt_relationship_mod module~ave_one_equation_melt_mod->factual_mod module~ave_one_equation_melt_mod->iso_fortran_env module~glacier_mod->module~nitsol_mod module~glacier_mod->logger_mod module~glacier_mod->factual_mod module~glacier_mod->hdf5 module~glacier_mod->iso_fortran_env module~glacier_mod->penf module~viscosity_mod->factual_mod module~viscosity_mod->iso_fortran_env module~plume_boundary_mod->module~boundary_types_mod module~plume_boundary_mod->factual_mod module~plume_boundary_mod->iso_fortran_env module~uniform_ambient_mod->module~ambient_mod module~uniform_ambient_mod->factual_mod module~uniform_ambient_mod->iso_fortran_env module~seasonal_glacier_boundary_mod seasonal_glacier_boundary_mod module~seasonal_glacier_boundary_mod->module~glacier_boundary_mod module~seasonal_glacier_boundary_mod->module~boundary_types_mod module~seasonal_glacier_boundary_mod->factual_mod module~seasonal_glacier_boundary_mod->iso_fortran_env module~coriolis_block_mod coriolis_block_mod module~coriolis_block_mod->module~pseudospectral_block_mod module~coriolis_block_mod->logger_mod module~coriolis_block_mod->factual_mod f95_lapack f95_lapack module~coriolis_block_mod->f95_lapack module~coriolis_block_mod->iso_fortran_env module~coriolis_block_mod->penf module~melt_relationship_mod->factual_mod module~melt_relationship_mod->iso_fortran_env module~meta_mod meta_mod module~meta_mod->iso_fortran_env module~ice_shelf_mod ice_shelf_mod module~ice_shelf_mod->module~glacier_boundary_mod module~ice_shelf_mod->module~dallaston2015_glacier_boundary_mod module~ice_shelf_mod->module~newtonian_viscosity_mod module~ice_shelf_mod->module~glacier_mod module~ice_shelf_mod->module~viscosity_mod module~ice_shelf_mod->module~boundary_types_mod module~ice_shelf_mod->module~jacobian_block_mod module~ice_shelf_mod->module~nitsol_mod module~ice_shelf_mod->logger_mod module~ice_shelf_mod->h5lt module~ice_shelf_mod->factual_mod module~ice_shelf_mod->hdf5 module~ice_shelf_mod->iso_fortran_env module~ice_shelf_mod->penf module~equation_of_state_mod->factual_mod module~equation_of_state_mod->iso_fortran_env module~simple_plume_boundary_mod->module~plume_boundary_mod module~simple_plume_boundary_mod->module~boundary_types_mod module~simple_plume_boundary_mod->factual_mod module~simple_plume_boundary_mod->iso_fortran_env module~ambient_mod->factual_mod module~ambient_mod->iso_fortran_env module~ave_linear_eos_mod ave_linear_eos_mod module~ave_linear_eos_mod->module~equation_of_state_mod module~ave_linear_eos_mod->factual_mod module~ave_linear_eos_mod->iso_fortran_env module~dallaston2015_melt_mod->module~melt_relationship_mod module~dallaston2015_melt_mod->factual_mod module~dallaston2015_melt_mod->iso_fortran_env module~jacobian_block_mod->module~boundary_types_mod module~jacobian_block_mod->logger_mod module~jacobian_block_mod->factual_mod module~jacobian_block_mod->f95_lapack module~jacobian_block_mod->iso_fortran_env module~jacobian_block_mod->penf module~entrainment_mod->factual_mod module~entrainment_mod->iso_fortran_env module~meta_implementation_mod meta_implementation_mod module~meta_implementation_mod->module~meta_mod module~preconditioner_mod preconditioner_mod module~preconditioner_mod->module~jacobian_block_mod module~preconditioner_mod->logger_mod module~preconditioner_mod->factual_mod module~preconditioner_mod->iso_fortran_env module~preconditioner_mod->penf module~nitsol_mod->iso_fortran_env module~one_equation_melt_mod one_equation_melt_mod module~one_equation_melt_mod->module~melt_relationship_mod module~one_equation_melt_mod->factual_mod module~one_equation_melt_mod->iso_fortran_env module~basal_surface_mod->module~nitsol_mod module~basal_surface_mod->factual_mod module~basal_surface_mod->hdf5 module~basal_surface_mod->iso_fortran_env module~pseudospectral_block_mod->logger_mod module~pseudospectral_block_mod->factual_mod chebyshev_mod chebyshev_mod module~pseudospectral_block_mod->chebyshev_mod module~pseudospectral_block_mod->iso_fortran_env module~pseudospectral_block_mod->penf module~asymmetric_plume_mod asymmetric_plume_mod module~asymmetric_plume_mod->module~jenkins1991_entrainment_mod module~asymmetric_plume_mod->module~ode_solvers_mod module~asymmetric_plume_mod->module~upstream_plume_mod module~asymmetric_plume_mod->module~plume_boundary_mod module~asymmetric_plume_mod->module~boundary_types_mod module~asymmetric_plume_mod->module~uniform_ambient_mod module~asymmetric_plume_mod->module~coriolis_block_mod module~asymmetric_plume_mod->module~melt_relationship_mod module~asymmetric_plume_mod->module~equation_of_state_mod module~asymmetric_plume_mod->module~simple_plume_boundary_mod module~asymmetric_plume_mod->module~ambient_mod module~asymmetric_plume_mod->module~ave_linear_eos_mod module~asymmetric_plume_mod->module~dallaston2015_melt_mod module~asymmetric_plume_mod->module~entrainment_mod module~asymmetric_plume_mod->module~basal_surface_mod module~asymmetric_plume_mod->module~pseudospectral_block_mod module~asymmetric_plume_mod->module~linear_eos_mod module~asymmetric_plume_mod->logger_mod module~asymmetric_plume_mod->h5lt module~asymmetric_plume_mod->factual_mod module~asymmetric_plume_mod->hdf5 module~asymmetric_plume_mod->iso_fortran_env module~asymmetric_plume_mod->penf module~rksuite_90->module~rksuite_90_prec module~cryosphere_mod cryosphere_mod module~cryosphere_mod->module~glacier_mod module~cryosphere_mod->module~meta_mod module~cryosphere_mod->module~nitsol_mod module~cryosphere_mod->module~basal_surface_mod module~cryosphere_mod->logger_mod module~cryosphere_mod->h5lt module~cryosphere_mod->hdf5 module~cryosphere_mod->iso_fortran_env module~cryosphere_mod->penf module~rootfind rootfind module~specfun_mod specfun_mod module~linear_eos_mod->module~equation_of_state_mod module~linear_eos_mod->factual_mod module~linear_eos_mod->iso_fortran_env module~transverse_coefficients_mod transverse_coefficients_mod module~transverse_coefficients_mod->factual_mod module~transverse_coefficients_mod->iso_fortran_env module~plume_mod plume_mod module~plume_mod->module~jenkins1991_entrainment_mod module~plume_mod->module~ode_solvers_mod module~plume_mod->module~upstream_plume_mod module~plume_mod->module~plume_boundary_mod module~plume_mod->module~boundary_types_mod module~plume_mod->module~uniform_ambient_mod module~plume_mod->module~melt_relationship_mod module~plume_mod->module~equation_of_state_mod module~plume_mod->module~simple_plume_boundary_mod module~plume_mod->module~ambient_mod module~plume_mod->module~dallaston2015_melt_mod module~plume_mod->module~entrainment_mod module~plume_mod->module~basal_surface_mod module~plume_mod->module~pseudospectral_block_mod module~plume_mod->module~linear_eos_mod module~plume_mod->logger_mod module~plume_mod->h5lt module~plume_mod->factual_mod module~plume_mod->hdf5 module~plume_mod->iso_fortran_env module~plume_mod->penf module~finite_difference_block_mod finite_difference_block_mod module~finite_difference_block_mod->module~boundary_types_mod module~finite_difference_block_mod->module~nitsol_mod module~finite_difference_block_mod->logger_mod module~finite_difference_block_mod->factual_mod module~finite_difference_block_mod->f95_lapack module~finite_difference_block_mod->iso_fortran_env module~finite_difference_block_mod->penf
Help