Procedures

ProcedureLocationProcedure TypeDescription
alpha_d2transverse_coefficients_modInterface
alpha_dstransverse_coefficients_modInterface
alpha_ds_ttransverse_coefficients_modInterface
alpha_dttransverse_coefficients_modInterface
alpha_dt_ttransverse_coefficients_modInterface
alpha_dutransverse_coefficients_modInterface
alpha_du2transverse_coefficients_modInterface
alpha_dustransverse_coefficients_modInterface
alpha_duttransverse_coefficients_modInterface
alpha_duvtransverse_coefficients_modInterface
alpha_dvtransverse_coefficients_modInterface
alpha_uvecttransverse_coefficients_modInterface
alpha_uvecutransverse_coefficients_modInterface
alpha_uvecvtransverse_coefficients_modInterface
assigncoriolis_block_modSubroutine

Safely assigns the value of one coriolis block to another.

asym_plume_data_sizeasymmetric_plume_modFunction

Returns the number of elements in the plume's state vector. This is the size of the vector returned by state_vector and taken as an argument by update.

asym_plume_drag_parameterasymmetric_plume_modFunction

Computes and returns a quantity which may be necessary to determine the frictional drag the plume exerts on the bottom of the ice shelf. The plume would actually tend to exert no drag on the bottom of the ice shelf, but this method is present so that there is a consistent interface with the ground data type.

asym_plume_initialiseasymmetric_plume_modSubroutine

Instantiates an asym_plume object with initial coniditions provided by the arguments.At present only a 1D model is supported. If information is provided for higher dimensions then it will be ignored.

asym_plume_meltasymmetric_plume_modFunction

Computes and returns the melt rate at the bottom of the ice shelf due to interaction with the plume.

asym_plume_read_dataasymmetric_plume_modSubroutine

Reads the state of the plume object from an HDF file in the specified group. This sets the thickness, velocity, temperature, salinity dataset, and parameter values.

asym_plume_solveasymmetric_plume_modSubroutine

Solves the state of the plume for the specified ice properties, at the specified time. This is done using the a quasilinearisation method and a GMRES iterative linear solver.

asym_plume_state_vectorasymmetric_plume_modFunction

Returns the state vector for the current state of the plume. This takes the form of a 1D array.

asym_plume_updateasymmetric_plume_modSubroutine

Updates the state of the plume from its state vector. The state vector is a real array containing the value of each of the plume's properties at each of the locations on the grid used in discretization.

asym_plume_water_densityasymmetric_plume_modFunction

Computes and returns the density of the plume water beneath the ice shelf. The density of this water would vary depending on how much saline ambient water has been entrained into the plume versus how much fresh water has been released due to melting. However, the Boussinesq approximation is used here and only a single reference density is returned.

Read more…
asym_plume_write_dataasymmetric_plume_modSubroutine

Writes the state of the plume object to an HDF file in the specified group. This will consist of a thickness, a velocity, a temperature, and a salinity dataset.

ave_linear_eosave_linear_eos_modInterface
ave_one_equation_meltave_one_equation_melt_modInterface
ave_one_equation_melt_rateave_one_equation_melt_modFunction
bicgstab_solvenitsol_modSubroutine

A wraper for the nitsol implementation of the biconjugate gradient stabilized method (BiCGSTAB) for iteratively solving linear systems. This provides a more general interface not specifically intended for use with Newton iteration. It also uses Fortran 90 features to provide a more convenient call signature.

bis_secantrootfindSubroutine

A root finder using the hybrid bisection-secant algorithm. Returns a computed value of the root within xleft and xright once error < maxerr or has run maximum number of iterations.

bound_arrayglacier_boundary_modFunction

Default implementation of the method getting lower and upper boundary information, which is then passed to the methods for getting and setting raw representations of fields. It returns a 1D array of length 2, indicating free boundaries (the raw data should represent all cells contained in the field, not excluding any near the boundaries).

bound_infoplume_boundary_modSubroutine

Provides information about the type of boundary, and the number of layers of data-points needed to describe it.

bound_typeglacier_boundary_modFunction

Default implementation of the methods getting the boundary types for a glacier. It returns an array which indicates free boundaries.

boundary_residualsglacier_boundary_modFunction

Default implementation of the boundary_residuals method. It returns a zero-length array, effectively indicating free boundaries.

calceispecfun_modSubroutine

************80

Read more…
collect_garbagerksuite_90Interface
collect_garbage_r1rksuite_90Subroutine
compile_infometa_modInterface
compile_timemeta_modInterface
constructorlinear_eos_modFunction
constructorave_linear_eos_modFunction
constructoruniform_gradient_field_modFunction

Creates a new scalar field with a uniform value across all of space but a non-zero gradient.

constructorpreconditioner_modFunction

Create a preconditioner object with the desired tolerance and maximum number of iterations.

constructorpseudospectral_block_modFunction

Builds a Chebyshsev pseudospectral differentiation matrix block which can be used to solve the inverse problem. The result can only be used with fields having the same grid as the template.

constructorjacobian_block_modFunction

Build a block in a Jacobian matrix, with the form where is a scalar field and is the differentiation operator in the -direction. Additionally, a further differentiation operator may be added to the right hand side of this matrix block. Optional arguments allow for handling of boundary conditions. See the end of the documentation of the jacobian_block type for a description of how boundary conditions are treated.

constructorcoriolis_block_modFunction

Builds a Coriolis block which can be used to solve the inverse problem for the linear components of the plume momentum equations. The result can only be used with fields having the same grid as the template.

constructorprescribed_eos_modFunction
constructorground_modFunction

Instantiates a ground object.

constructorice_sheet_modFunction

Creates a new ice_sheet object with initial conditions provided by the arguments. At present only a 1D model is supported. If information is provided for higher dimensions then it will be ignored.

constructorfinite_difference_block_modFunction

Build a tridiagonal matrix block for finite differences. See the end of the documentation of the fin_diff_block type for a description of how boundary conditions are treated.

constructoruniform_ambient_modFunction

Produces an ambient object which will return the specified salinity and temeprature values.

constructorsimple_plume_boundary_modFunction

Constructs a boundary condition object for an ice shelf based on the conditions used in Dallaston et al. (2015).

constructordallaston2015_seasonal_modFunction

Constructs a boundary condition object for an ice shelf based on the conditions used in Dallaston et al. (2015), but with seasonal variations in subglacial discharge.

constructorseasonal_glacier_boundary_modFunction

Constructs a boundary condition object for an ice shelf based on the conditions used in Dallaston et al. (2015), but with the ice flux at the grounding line varying in time.

constructorupstream_plume_modFunction

Constructs a boundary condition object which integrates an IVP from actual boundary values to calculate the staet of the plume a little upstream. This can be used to avoid boundary layers.

constructordallaston2015_glacier_boundary_modFunction

Constructs a boundary condition object for an ice shelf based on the conditions used in Dallaston et al. (2015).

constructorave_one_equation_melt_modFunction
constructornewtonian_viscosity_modFunction
constructorglens_law_modFunction

Instantiates an instance of a viscosity object implementing Glen's flow law.

constructorkochergin1987_entrainment_modFunction
constructorjenkins1991_entrainment_modFunction
constructordallaston2015_melt_modFunction
constructorone_equation_melt_modFunction
coriolis_blockcoriolis_block_modInterface
current_timemeta_modFunction

Returns the current date and time in the same format as the compile_time function.

dallaston2015_glacier_boundarydallaston2015_glacier_boundary_modInterface
dallaston2015_has_heatdallaston2015_melt_modFunction
dallaston2015_has_saltdallaston2015_melt_modFunction
dallaston2015_heatdallaston2015_melt_modFunction
dallaston2015_lower_bounddallaston2015_glacier_boundary_modFunction

Indicates that one layer of cells at the lower boundary in the first dimension should be omitted. This is appropriate for Dirichlet boundary conditions.

dallaston2015_lower_typedallaston2015_glacier_boundary_modFunction

Specifies that the lower boundary in the first dimension has Dirichlet boundary conditions.

dallaston2015_meltdallaston2015_melt_modInterface
dallaston2015_melt_ratedallaston2015_melt_modFunction
dallaston2015_residualsdallaston2015_glacier_boundary_modFunction

Returns the difference between the glacier conditions of the plume and the Dirichlet conditions prescribed in the model of Dallaston et al. (2015)

dallaston2015_saltdallaston2015_melt_modFunction
dallaston2015_seasonal_boundarydallaston2015_seasonal_modInterface
dallaston2015_solvedallaston2015_melt_modSubroutine
dallaston2015_upper_bounddallaston2015_glacier_boundary_modFunction

Indicates that one layer of cells at the upper boundary in the first dimension should be omitted for thickness. This is appropriate for Dirichlet boundary conditions.

dallaston2015_upper_typedallaston2015_glacier_boundary_modFunction

Specifies that the upper boundary in the first dimension has Neumann boundary conditions.

ddotnitsol_modInterface
dnrm2nitsol_modInterface
dummy_fnitsol_modSubroutine

A dummy subroutine which does not calculate the function.

dummy_jacvnitsol_modSubroutine

A dummy subroutine which does not apply a preconditioner or calculate an analytic Jacobian. This can be passed to nitsol for the argument jacv.

eispecfun_modFunction

************80

Read more…
f_dtransverse_coefficients_modInterface
f_stransverse_coefficients_modInterface
f_s_ptransverse_coefficients_modInterface
f_ttransverse_coefficients_modInterface
f_t_ptransverse_coefficients_modInterface
f_utransverse_coefficients_modInterface
f_u_ptransverse_coefficients_modInterface
f_vtransverse_coefficients_modInterface
f_v_ptransverse_coefficients_modInterface
fin_diff_blockfinite_difference_block_modInterface
fin_diff_block_solve_scalarfinite_difference_block_modFunction

Solves the linear(ised) system represented by this finite difference block, for a given right hand side state vector (represented by a scalar field). Optionally, the differential operator can be augmented by adding an offset, i.e. a scalar field which is added to the operator.

Read more…
fin_diff_block_solve_vectorfinite_difference_block_modFunction

Solves the linear(ised) system represented by this finite difference block, for a given right hand side state vector (represented by a vector field). Optionally, the differential operator can be augmented by adding an offset, i.e. a vector field which is added to the operator.

Read more…
fpbsplsplev.fSubroutine
get_saved_fatalrksuite_90Interface
get_saved_fatal_r1rksuite_90Function
get_saved_state_r1rksuite_90Function
get_stop_on_fatal_r1rksuite_90Function
get_timecryosphere_modFunction

Returns the current time of the cryosphere system.

glacier_integrateglacier_modSubroutine

Integrates the glacier's state to time. This is done using the NITSOL package of iterative Krylov solvers. If a different algorithm for the integration is desired, then this method may be overridden in the concrete implementations of the glacier type.

Read more…
glacier_integrate_layersglacier_modSubroutine

Dummy routine which does nothing.

glens_ice_viscosityglens_law_modFunction

Calculates the viscosity of ice using Glen's flow law. See the documentation of the glens_law_viscosity object for a description of this parameterisation.

glens_law_viscosityglens_law_modInterface
global_bis_secrootfindSubroutine

A subroutine which finds the values of all roots of a function (or as many as will fit into the provided arrays) within a given range of values. This subroutine uses the hybrid bisection-secant root-finding algorithm.

global_bracketsrootfindSubroutine

A global bracket finder. For a given function it finds values on each side of each of the function's roots within a given range.

global_errorrksuite_90Interface
global_error_r1rksuite_90Subroutine
gmres_solvenitsol_modSubroutine

A wraper for the nitsol implementation of the generalised minimal residual method (GMRES) for iteratively solving linear systems. This provides a more general interface not specifically intended for use with Newton iteration. It also uses Fortran 90 features to provide a more convenient call signature.

groundground_modInterface
ground_data_sizeground_modFunction

Returns the number of elements in the ground's state vector. This is the size of the vector returned by state_vector and taken as an argument by update.

ground_drag_parameterground_modFunction

Computes and returns a quantity which may be necessary to determine the frictional drag the ground exerts on the bottom of the ice sheet. An example would be the coefficient of friction. The description of this method is left deliberately vague so that as not to constrain how the drag is parameterized.

ground_meltground_modFunction

Computes and returns the melt rate at the bottom of the ice sheet due to interaction with the ground.

ground_read_dataground_modSubroutine

Reads the state of the ground object from the specified group in an HDF file.

ground_solveground_modSubroutine

Solves the state of the ground for the specified ice properties, at the specified time.

ground_state_vectorground_modFunction

Returns the state vector for the current state of the ground. This takes the form of a 1D array.

ground_updateground_modSubroutine

Updates the state of the ground from its state vector. The state vector is a real array containing the value of each of the ground's properties at each of the locations on the grid used in discretization.

ground_water_densityground_modFunction

Computes and returns the density of the water beneath the ice sheet. This water would be subglacial discharge and would tend to lubricate the motion of the ice sheet. The density probably won't be important in the case of an ice sheet, but is included so that the ground data type can have the same interface as the plume data type.

ground_write_dataground_modSubroutine

Writes the state of the ground object to an HDF file in the specified group.

ice_sheetice_sheet_modInterface
ice_shelf_integrate_layersice_shelf_modSubroutine

Integrate the Taylor coefficients representing the vertical structure of internal reflectors forward to the specified time. This is done using an implicit method, with the resulting linear system solved using GMRES.

increase_time_stepcryosphere_modSubroutine

Increases the time step by a factor of 2, unless doing so would take it above the maximum.

initialisecryosphere_modSubroutine

Initialise a cryosphere object from the provided components. This object will model the evolution of a glacier/ice shelf/ice sheet and its surroundings.

integratecryosphere_modSubroutine

Integrates the cryosphere forward until the specified time is reached.

interpolaterksuite_90Interface
interpolate_r1rksuite_90Subroutine
jacobian_blockjacobian_block_modInterface
jacobian_block_add_blockjacobian_block_modFunction

Produces a Jacobian block which is the sum of two existing blocks. Boundary conditions are set by the first operand (this).

jacobian_block_add_fieldjacobian_block_modFunction

Produces a Jacobian block which has been offset by a scalar field.

Read more…
jacobian_block_add_realjacobian_block_modFunction

Produces a Jacobian block which has been offset by some constant increment.

Read more…
jacobian_block_assignjacobian_block_modSubroutine

Copies the contents of the rhs Jacobian block into this one. It will safely deallocate any data necessary.

jacobian_block_boundsjacobian_block_modSubroutine

A default implementation of the get_boundaries procedure pointer for the jacobian_block type. It corresponds to setting all boundaries to 0 when multiplying a field by the Jacobian block.

jacobian_block_get_tridiagjacobian_block_modSubroutine

Computes the tridiagonal matrix used to solve for this Jacobian block.

jacobian_block_multiplyjacobian_block_modFunction

Provides a matrix multiplication operator between a Jacobian block and a scalar field (which corresponds to a state vector).

jacobian_block_solvejacobian_block_modFunction

Solves the linear(ised) system represented by this Jacobian block, for a given right hand side state vector (represented by a scalar field).

Read more…
jenkins1991_entrainmentjenkins1991_entrainment_modInterface
jenkins1991_ratejenkins1991_entrainment_modFunction

Here, is a coefficient typically taken to be 0.036 (the default value), is the velocity of the plume, is the angle of slope of the ice shelf base, and is the basal depth of the ice shelf.

Read more…
kochergin1987_entrainmentkochergin1987_entrainment_modInterface
kochergin1987_ratekochergin1987_entrainment_modFunction

Here, is an entrainment coefficient, is the velocity of the plume, is the reduced gravity, and is the turbulent Schmidt number. The Schmidt number is a function of the Richardson number :

linear_eoslinear_eos_modInterface
linear_haline_contractionlinear_eos_modFunction

Returns the haline contraction coefficient.

linear_haline_contractionave_linear_eos_modFunction

Returns the haline contraction coefficient.

linear_thermal_contractionlinear_eos_modFunction

Returns the thermal contraction coefficient.

linear_thermal_contractionave_linear_eos_modFunction

Returns the thermal contraction coefficient.

linear_water_densitylinear_eos_modFunction

Calculates the density of the water from the temperature and salinity, using a linear equatino of state,

linear_water_densityave_linear_eos_modFunction

Calculates the density of the water from the temperature and salinity, using a linear equation of state,

linear_water_density_ave1ave_linear_eos_modFunction

Calculates one form of the horizontally-averaged density of the water from the temperature and salinity, using a linear equation of state,

linear_water_density_ave2ave_linear_eos_modFunction

Calculates another form of the horizontally-averaged density of the water from the temperature and salinity, using a linear equation of state,

linear_water_derivlinear_eos_modFunction

Calculates the derivative of the water density from the temperature and salinity, using a linear equatino of state,

linear_water_derivave_linear_eos_modFunction

Calculates the derivative of the average water density from the temperature and salinity, using a linear equation of state with the second type of averaging,

machine_constrksuite_90Subroutine
method_constrksuite_90Subroutine
newtonian_ice_viscositynewtonian_viscosity_modFunction
newtonian_viscositynewtonian_viscosity_modInterface
nitgm2nitgm2.fSubroutine

FCNRM is no longer an argument, as it needs to be calculated from the residual, which isn't known until a little way into this routine. It could be calculated by the calling routine, but that would mean doing the calculation twice.

Read more…
nitgm2nitsol_modInterface
nitsolnitsol_modInterface
nitstb2nitstb2.fSubroutine

FCNRM is no longer an argument, as it needs to be calculated from the residual, which isn't known until a little way into this routine. It could be calculated by the calling routine, but that would mean doing the calculation twice.

Read more…
nitstb2nitsol_modInterface
nittfq2nittfq2.fSubroutine

FCNRM is no longer an argument, as it needs to be calculated from the residual, which isn't known until a little way into this routine. It could be calculated by the calling routine, but that would mean doing the calculation twice.

Read more…
nittfq2nitsol_modInterface
one_equation_has_heatave_one_equation_melt_modFunction
one_equation_has_heatone_equation_melt_modFunction
one_equation_has_saltave_one_equation_melt_modFunction
one_equation_has_saltone_equation_melt_modFunction
one_equation_heatave_one_equation_melt_modFunction
one_equation_heatone_equation_melt_modFunction
one_equation_meltone_equation_melt_modInterface
one_equation_melt_rateone_equation_melt_modFunction
one_equation_saltave_one_equation_melt_modFunction
one_equation_saltone_equation_melt_modFunction
one_equation_solveave_one_equation_melt_modSubroutine
one_equation_solveone_equation_melt_modSubroutine
plume_data_sizeplume_modFunction

Returns the number of elements in the plume's state vector. This is the size of the vector returned by state_vector and taken as an argument by update.

plume_drag_parameterplume_modFunction

Computes and returns a quantity which may be necessary to determine the frictional drag the plume exerts on the bottom of the ice shelf. The plume would actually tend to exert no drag on the bottom of the ice shelf, but this method is present so that there is a consistent interface with the ground data type.

plume_initialiseplume_modSubroutine

Instantiates a plume object with initial coniditions provided by the arguments.At present only a 1D model is supported. If information is provided for higher dimensions then it will be ignored.

plume_meltplume_modFunction

Computes and returns the melt rate at the bottom of the ice shelf due to interaction with the plume.

plume_read_dataplume_modSubroutine

Reads the state of the plume object from an HDF file in the specified group. This sets the thickness, velocity, temperature, salinity dataset, and parameter values.

plume_solveplume_modSubroutine

Solves the state of the plume for the specified ice properties, at the specified time. This is done using the a quasilinearisation method and a GMRES iterative linear solver.

plume_state_vectorplume_modFunction

Returns the state vector for the current state of the plume. This takes the form of a 1D array.

plume_updateplume_modSubroutine

Updates the state of the plume from its state vector. The state vector is a real array containing the value of each of the plume's properties at each of the locations on the grid used in discretization.

plume_water_densityplume_modFunction

Computes and returns the density of the plume water beneath the ice shelf. The density of this water would vary depending on how much saline ambient water has been entrained into the plume versus how much fresh water has been released due to melting. However, the Boussinesq approximation is used here and only a single reference density is returned.

Read more…
plume_write_dataplume_modSubroutine

Writes the state of the plume object to an HDF file in the specified group. This will consist of a thickness, a velocity, a temperature, and a salinity dataset.

preconditionerpreconditioner_modInterface
preconditioner_applypreconditioner_modSubroutine

Use Picard iteration to approximately multiply the state vector by the inverse Jacobian. The details for this procedure are in the documentation of the preconditioner type.

prescribed_assignprescribed_eos_modSubroutine

Assigns this object to another equation of state object, allowing the definided assignment for the precalculated density field to work correctly.

prescribed_eosprescribed_eos_modInterface
prescribed_haline_contractionprescribed_eos_modFunction

Returns the haline contraction coefficient.

prescribed_thermal_contractionprescribed_eos_modFunction

Returns the thermal contraction coefficient.

prescribed_water_densityprescribed_eos_modFunction

Returns the density corresponding to the prescribed salinity, as calculated in the constructor.

prescribed_water_derivprescribed_eos_modFunction

Calculates the derivative of the water density.

pseudospec_blockpseudospectral_block_modInterface
pseudospec_block_solve_scalarpseudospectral_block_modFunction

Solves the linear(ised) system represented by this finite difference block, for a given right hand side state vector (represented by a scalar field).

Read more…
pseudospec_block_solve_vectorpseudospectral_block_modFunction

Solves the linear(ised) system represented by this finite difference block, for a given right hand side state vector (represented by a vector field).

Read more…
quasilinear_solveode_solvers_modSubroutine

This is an iterative method to solve nonlinear systems of ODEs. Consider For a domain from , boundary conditions are specified by Here, is an th order ordinary differential operator, and are nonlinear functions of and its first derivatives.

Read more…
range_integraterksuite_90Interface
range_integrate_r1rksuite_90Subroutine
read_datacryosphere_modSubroutine

Reads the data describing the cryosphere from an HDF5 file on the disc. h5open_f must have been called once prior to using this method. After the method has been used, h5close_f must be called once before the end of the program.

read_icecryosphere_modSubroutine

Reads the data describing the ice component of the cryosphere from an HDF5 file on the disc. Data on anything below the ice is ignored. h5open_f must have been called once prior to using this method. After the method has been used, h5close_f must be called once before the end of the program.

read_sub_icecryosphere_modSubroutine

Reads the data describing the part of the cryosphere beneath the ice from an HDF5 file on the disc. Data on the ice itself is ignored. h5open_f must have been called once prior to using this method. After the method has been used, h5close_f must be called once before the end of the program.

reduce_time_stepcryosphere_modSubroutine

Reuces the time step by a factor of 2, unless doing so would take it below the minimum value.

reset_t_endrksuite_90Interface
reset_t_end_r1rksuite_90Subroutine
rkmsg_r1rksuite_90Subroutine
scalar_boundplume_boundary_modFunction

Returns a field containing the boundary values for the specified boundary location.

seasonal_glacier_boundaryseasonal_glacier_boundary_modInterface
seasonal_infodallaston2015_seasonal_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is Neumann.

seasonal_lower_boundseasonal_glacier_boundary_modFunction

Indicates that one layer of cells at the lower boundary in the first dimension should be omitted. This is appropriate for Dirichlet boundary conditions.

seasonal_lower_typeseasonal_glacier_boundary_modFunction

Specifies that the lower boundary in the first dimension has Dirichlet boundary conditions.

seasonal_residualsseasonal_glacier_boundary_modFunction

Returns the difference between the glacier conditions of the plume and the Dirichlet conditions prescribed in the model of Dallaston et al. (2015)

seasonal_salinity_bounddallaston2015_seasonal_modFunction

Returns a field containing the salinity boundary values for the specified boundary location.

seasonal_set_timedallaston2015_seasonal_modSubroutine

Sets the time at which boundary conditions are to be calculated.

seasonal_temperature_bounddallaston2015_seasonal_modFunction

Returns a field containing the temperature boundary values for the specified boundary location.

seasonal_thickness_bounddallaston2015_seasonal_modFunction

Returns a field containing the thickness boundary values for the specified boundary location.

seasonal_thickness_infodallaston2015_seasonal_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is free.

seasonal_upper_boundseasonal_glacier_boundary_modFunction

Indicates that one layer of cells at the upper boundary in the first dimension should be omitted for thickness. This is appropriate for Dirichlet boundary conditions.

seasonal_upper_typeseasonal_glacier_boundary_modFunction

Specifies that the upper boundary in the first dimension has Neumann boundary conditions.

seasonal_velocity_bounddallaston2015_seasonal_modFunction

Returns a field containing the velocity boundary values for the specified boundary location.

set_saved_state_r1rksuite_90Subroutine
set_stop_on_fatalrksuite_90Interface
set_stop_on_fatal_r1rksuite_90Subroutine
set_timeplume_boundary_modSubroutine

Sets the time at which boundary conditions are to be calculated.

setuprksuite_90Interface
setup_r1rksuite_90Subroutine
sheet_assignice_sheet_modSubroutine

Copies the data from one ice sheet into another. This is only needed due to a bug in gfortran which means that the intrinsic assignment for glacier types is not using the appropriate defined assignment for the field components.

Read more…
sheet_data_sizeice_sheet_modFunction

Returns the number of elements in the ice sheet's state vector. This is the size of the vector returned by residual and state_vector and taken as an argument by update.

sheet_densityice_sheet_modFunction

Returns the density of the ice in the sheet, which is assumed to be uniform across its domain.

sheet_preconditionice_sheet_modFunction

Provides a preconditioner for the nonlinear solver trying to bring the residual to zero. The Jacobian is approximated as a block matrix, where each block is a tridiagonal matrix using a finite difference method for differentiation.

sheet_read_dataice_sheet_modSubroutine

Reads the state of the ice shelf object from the specified group in an HDF5 file. This sets the thickness, the velocity, and parameter values.

sheet_residualice_sheet_modFunction

Returns the residual when the current state of the glacier is run through the system of equations describing it. The residual takes the form of a 1D array, with each element respresenting the residual for one of the equations in the system.

sheet_set_timeice_sheet_modSubroutine

Sets the time information held by the ice sheet object. This is the time at which the ice sheet is in its current state.

sheet_solve_velocityice_sheet_modSubroutine

Computes the ice sheet velocity at the current time with the current ice thickness.

sheet_state_vectorice_sheet_modFunction

Returns the state vector for the current state of the ice sheet. This takes the form of a 1D array.

sheet_temperatureice_sheet_modFunction

Returns the density of the ice in the sheet, which is assumed to be uniform across its domain.

sheet_thicknessice_sheet_modFunction

Returns the thickness of the ice sheet across its domain.

sheet_time_stepice_sheet_modFunction

Calculates the time step for integrating the ice sheet, using the CFL condition.

sheet_updateice_sheet_modSubroutine

Updates the state of the ice sheet from its state vector. The state vector is a real array containing the value of each of the ice sheet's properties at each of the locations on the grid used in descretization.

sheet_velocityice_sheet_modFunction

Returns the velocity of the ice sheet across its domain.

sheet_write_dataice_sheet_modSubroutine

Writes the state of the ice sheet object to an HDF file in the specified group. This will consist of a thickness and a velocity dataset.

shelf_assignice_shelf_modSubroutine

Copies the data from one ice shelf into another. This is only needed due to a bug in gfortran which means that the intrinsic assignment for glacier types is not using the appropriate defined assignment for the field components.

Read more…
shelf_data_sizeice_shelf_modFunction

Returns the number of elements in the ice shelf's state vector. This is the size of the vector returned by residual and state_vector and taken as an argument by update.

shelf_densityice_shelf_modFunction

Returns the density of the ice in the shelf, which is assumed to be uniform across its domain.

Read more…
shelf_initialiseice_shelf_modSubroutine

Initialises an ice_shelf object with initial conditions provided by the arguments. At present only a 1D model is supported. If information is provided for higher dimensions then it will be ignored.

shelf_integrateice_shelf_modSubroutine

Integrates the glacier's state forward to time. This is done using an explicit method for the thickness and a Newton's solver for velocity.

shelf_kappa_vectorice_shelf_modFunction

Returns the a vector representing the current state of the internal reflectors in the ice shelf. This takes the form of a 1D array. The routien is only used for debugging purposes.

shelf_preconditionice_shelf_modFunction

Provides a preconditioner for the nonlinear solver trying to bring the residual to zero. The Jacobian is approximated as a block matrix, where each block is a tridiagonal matrix using a finite difference method for differentiation.

shelf_read_dataice_shelf_modSubroutine

Reads the state of the ice shelf object from the specified group in an HDF5 file. This sets the thickness, the velocity, and parameter values.

shelf_residualice_shelf_modFunction

Returns the residual when the current state of the glacier is run through the system of equations describing it. The residual takes the form of a 1D array, with each element respresenting the residual for one of the equations in the system.

shelf_set_timeice_shelf_modSubroutine

Sets the time information held by the ice shelf object. This is the time at which the ice sheet is in its current state.

shelf_solve_velocityice_shelf_modSubroutine

Computes the ice shelf velocity at the current time with the current ice thickness.

shelf_state_vectorice_shelf_modFunction

Returns the state vector for the current state of the ice shelf. This takes the form of a 1D array.

shelf_temperatureice_shelf_modFunction

Returns the density of the ice in the shelf, which is assumed to be uniform across its domain.

shelf_thicknessice_shelf_modFunction

Returns the thickness of the ice shelf across its domain.

shelf_time_stepice_shelf_modFunction

Calculates the time step for integrating the ice shelf, using the CFL condition.

shelf_updateice_shelf_modSubroutine

Updates the state of the ice shelf from its state vector. The state vector is a real array containing the value of each of the ice shelf's properties at each of the locations on the grid used in discretization.

shelf_velocityice_shelf_modFunction

Returns the velocity of the ice shelf across its domain.

shelf_write_dataice_shelf_modSubroutine

Writes the state of the ice shelf object to an HDF file in the specified group. This will consist of a thickness and a velocity dataset.

simple_infosimple_plume_boundary_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is Neumann.

simple_plume_boundarysimple_plume_boundary_modInterface
simple_salinity_boundsimple_plume_boundary_modFunction

Returns a field containing the salinity boundary values for the specified boundary location.

simple_temperature_boundsimple_plume_boundary_modFunction

Returns a field containing the temperature boundary values for the specified boundary location.

simple_thickness_boundsimple_plume_boundary_modFunction

Returns a field containing the thickness boundary values for the specified boundary location.

simple_thickness_infosimple_plume_boundary_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is free.

simple_velocity_boundsimple_plume_boundary_modFunction

Returns a field containing the velocity boundary values for the specified boundary location.

solve_forcoriolis_block_modSubroutine

Inverts the linear portions of the plume momentum equation with the provided data. This is done by solving the linear ODE described in the documentation for the coriolis_block type. The block object must first have been initialised using the constructor.

Read more…
splevsplev.fSubroutine
splevtransverse_coefficients_modInterface
state_vectorcryosphere_modFunction

Returns the state vector for the current state of the cryosphere. This takes the form of a 1D array. This routine is mainly useful for unit-testing.

static_plume_data_sizestatic_plume_modFunction

Returns the number of elements in the plume's state vector. This is the size of the vector returned by state_vector and taken as an argument by update.

static_plume_drag_parameterstatic_plume_modFunction

Computes and returns a quantity which may be necessary to determine the frictional drag the plume exerts on the bottom of the ice shelf. The plume would actually tend to exert no drag on the bottom of the ice shelf, but this method is present so that there is a consistent interface with the ground data type.

static_plume_initialisestatic_plume_modSubroutine

Instantiates a plume object with initial coniditions provided by the arguments.At present only a 1D model is supported. If information is provided for higher dimensions then it will be ignored.

static_plume_meltstatic_plume_modFunction

Computes and returns the melt rate at the bottom of the ice shelf due to interaction with the plume.

static_plume_read_datastatic_plume_modSubroutine

Reads the state of the plume object from an HDF file in the specified group. This sets the thickness, velocity, temperature, salinity dataset, and parameter values.

static_plume_solvestatic_plume_modSubroutine

Would normally solve, but for this static implementation of the plume it does nothing.

static_plume_state_vectorstatic_plume_modFunction

Returns the state vector for the current state of the plume. This takes the form of a 1D array.

static_plume_updatestatic_plume_modSubroutine

Updates the state of the plume from its state vector. The state vector is a real array containing the value of each of the plume's properties at each of the locations on the grid used in discretization.

static_plume_water_densitystatic_plume_modFunction

Computes and returns the density of the plume water beneath the ice shelf. The density of this water would vary depending on how much saline ambient water has been entrained into the plume versus how much fresh water has been released due to melting. However, the Boussinesq approximation is used here and only a single reference density is returned.

Read more…
static_plume_write_datastatic_plume_modSubroutine

Writes the state of the plume object to an HDF file in the specified group. This will consist of a thickness, a velocity, a temperature, and a salinity dataset.

statisticsrksuite_90Interface
statistics_r1rksuite_90Subroutine
step_integraterksuite_90Interface
step_integrate_r1rksuite_90Subroutine
step_r1rksuite_90Subroutine
stiff_r1rksuite_90Subroutine
tfqmr_solvenitsol_modSubroutine

A wraper for the nitsol implementation of the transpose-free quasi-minimal residual method (TFQMR) for iteratively solving linear systems. This provides a more general interface not specifically intended for use with Newton iteration. It also uses Fortran 90 features to provide a more convenient call signature.

time_stepcryosphere_modFunction

Calculates an appropriate time step with which to integrate the cryosphere so as not to cause numerical instability.

truerr_r1rksuite_90Subroutine
uniform_ambient_conditionsuniform_ambient_modInterface
uniform_gradient_assignuniform_gradient_field_modSubroutine

uniform_gradient_d_dxuniform_gradient_field_modFunction

uniform_gradient_fielduniform_gradient_field_modInterface
uniform_gradient_gradientuniform_gradient_field_modFunction

uniform_gradient_is_equaluniform_gradient_field_modFunction

Evaluates whether two scalar fields are equal within a tolerance, specified by set_tol.

uniform_salinityuniform_ambient_modFunction

Returns the ambient ocean salinity.

uniform_temperatureuniform_ambient_modFunction

Returns the ambient ocean temperature.

upstream_calculateupstream_plume_modSubroutine

Calculates the boundary values to use at the current time with the current ice thickness.

upstream_infoupstream_plume_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is Neumann.

upstream_plume_boundaryupstream_plume_modInterface
upstream_salinity_boundupstream_plume_modFunction

Returns a field containing the salinity boundary values for the specified boundary location.

upstream_temperature_boundupstream_plume_modFunction

Returns a field containing the temperature boundary values for the specified boundary location.

upstream_thickness_boundupstream_plume_modFunction

Returns a field containing the thickness boundary values for the specified boundary location.

upstream_thickness_infoupstream_plume_modSubroutine

Indicates that the lower boundary is Dirichlet and the upper boundary is free.

upstream_velocity_boundupstream_plume_modFunction

Returns a field containing the velocity boundary values for the specified boundary location.

vector_boundplume_boundary_modFunction

Returns a field containing the boundary values for the specified boundary location.

versionmeta_modInterface
write_datacryosphere_modSubroutine

Writes the data describing the cryosphere to the disc as an HDF5 file. h5open_f must have been called once prior to using this method. After the method has been used, h5close_f must be called once before the end of the program.

call~~graph~~CallGraph proc~ground_state_vector ground_state_vector proc~sheet_solve_velocity sheet_solve_velocity proc~sheet_read_data sheet_read_data interface~nittfq2 nittfq2 proc~sheet_residual sheet_residual proc~simple_salinity_bound simple_salinity_bound uniform_scalar_field uniform_scalar_field proc~simple_salinity_bound->uniform_scalar_field proc~seasonal_salinity_bound seasonal_salinity_bound proc~seasonal_salinity_bound->uniform_scalar_field proc~ground_drag_parameter ground_drag_parameter interface~dallaston2015_glacier_boundary dallaston2015_glacier_boundary proc~constructor~17 constructor interface~dallaston2015_glacier_boundary->proc~constructor~17 interface~dallaston2015_melt dallaston2015_melt proc~constructor~23 constructor interface~dallaston2015_melt->proc~constructor~23 interface~prescribed_eos prescribed_eos proc~constructor~8 constructor interface~prescribed_eos->proc~constructor~8 interface~dnrm2 dnrm2 interface~jenkins1991_entrainment jenkins1991_entrainment proc~constructor~22 constructor interface~jenkins1991_entrainment->proc~constructor~22 proc~splev splev proc~shelf_state_vector shelf_state_vector proc~step_r1 step_r1 proc~static_plume_state_vector static_plume_state_vector proc~sheet_update sheet_update proc~dallaston2015_lower_bound dallaston2015_lower_bound proc~fpbspl fpbspl interface~range_integrate range_integrate proc~range_integrate_r1 range_integrate_r1 interface~range_integrate->proc~range_integrate_r1 proc~ground_water_density ground_water_density proc~initialise initialise proc~sheet_write_data sheet_write_data proc~constructor~14 constructor interface~dallaston2015_seasonal_boundary dallaston2015_seasonal_boundary interface~dallaston2015_seasonal_boundary->proc~constructor~14 proc~asym_plume_drag_parameter asym_plume_drag_parameter proc~asym_plume_drag_parameter->uniform_scalar_field proc~linear_haline_contraction linear_haline_contraction proc~linear_haline_contraction->uniform_scalar_field interface~ddot ddot proc~static_plume_read_data static_plume_read_data h5gopen_f h5gopen_f proc~static_plume_read_data->h5gopen_f str str proc~static_plume_read_data->str h5ltget_attribute_string_f h5ltget_attribute_string_f proc~static_plume_read_data->h5ltget_attribute_string_f h5gclose_f h5gclose_f proc~static_plume_read_data->h5gclose_f proc~prescribed_haline_contraction prescribed_haline_contraction proc~prescribed_haline_contraction->uniform_scalar_field proc~prescribed_thermal_contraction prescribed_thermal_contraction proc~prescribed_thermal_contraction->uniform_scalar_field proc~set_time set_time proc~reduce_time_step reduce_time_step proc~reduce_time_step->str proc~seasonal_set_time seasonal_set_time proc~dallaston2015_upper_bound dallaston2015_upper_bound proc~time_step time_step proc~jacobian_block_solve jacobian_block_solve proc~jacobian_block_solve->str la_gtsvx la_gtsvx proc~jacobian_block_solve->la_gtsvx proc~seasonal_temperature_bound seasonal_temperature_bound proc~seasonal_temperature_bound->uniform_scalar_field interface~simple_plume_boundary simple_plume_boundary proc~constructor~13 constructor interface~simple_plume_boundary->proc~constructor~13 proc~ground_update ground_update proc~sheet_state_vector sheet_state_vector proc~seasonal_thickness_info seasonal_thickness_info proc~asym_plume_water_density asym_plume_water_density proc~sheet_time_step sheet_time_step proc~asym_plume_melt asym_plume_melt interface~ice_sheet ice_sheet proc~constructor~10 constructor interface~ice_sheet->proc~constructor~10 proc~shelf_kappa_vector shelf_kappa_vector proc~simple_thickness_info simple_thickness_info proc~dummy_jacv dummy_jacv proc~static_plume_solve static_plume_solve proc~shelf_density shelf_density proc~shelf_read_data shelf_read_data proc~shelf_read_data->h5gopen_f proc~shelf_read_data->str proc~shelf_read_data->h5ltget_attribute_string_f h5ltget_attribute_double_f h5ltget_attribute_double_f proc~shelf_read_data->h5ltget_attribute_double_f proc~shelf_read_data->h5gclose_f h5ltget_attribute_int_f h5ltget_attribute_int_f proc~shelf_read_data->h5ltget_attribute_int_f proc~sheet_thickness sheet_thickness proc~constructor~16 constructor proc~constructor~21 constructor proc~gmres_solve gmres_solve interface~nitgm2 nitgm2 proc~gmres_solve->interface~nitgm2 proc~shelf_initialise shelf_initialise cheb1d_scalar_field cheb1d_scalar_field proc~shelf_initialise->cheb1d_scalar_field cheb1d_vector_field cheb1d_vector_field proc~shelf_initialise->cheb1d_vector_field proc~jacobian_block_add_field jacobian_block_add_field proc~sheet_precondition sheet_precondition proc~nittfq2 nittfq2 daxpy daxpy proc~nittfq2->daxpy dscal dscal proc~nittfq2->dscal dlamch dlamch proc~nittfq2->dlamch dswap dswap proc~nittfq2->dswap dcopy dcopy proc~nittfq2->dcopy nitjv nitjv proc~nittfq2->nitjv proc~jacobian_block_get_tridiag jacobian_block_get_tridiag proc~sheet_velocity sheet_velocity proc~jacobian_block_multiply jacobian_block_multiply proc~sheet_set_time sheet_set_time interface~kochergin1987_entrainment kochergin1987_entrainment interface~kochergin1987_entrainment->proc~constructor~21 proc~dallaston2015_salt dallaston2015_salt proc~ground_data_size ground_data_size proc~dummy_f dummy_f proc~kochergin1987_rate kochergin1987_rate proc~get_saved_state_r1 get_saved_state_r1 interface~preconditioner preconditioner proc~constructor~4 constructor interface~preconditioner->proc~constructor~4 proc~dallaston2015_lower_type dallaston2015_lower_type proc~set_saved_state_r1 set_saved_state_r1 proc~shelf_write_data shelf_write_data h5ltset_attribute_double_f h5ltset_attribute_double_f proc~shelf_write_data->h5ltset_attribute_double_f proc~shelf_write_data->str h5ltset_attribute_int_f h5ltset_attribute_int_f proc~shelf_write_data->h5ltset_attribute_int_f h5ltset_attribute_string_f h5ltset_attribute_string_f proc~shelf_write_data->h5ltset_attribute_string_f h5gcreate_f h5gcreate_f proc~shelf_write_data->h5gcreate_f proc~shelf_write_data->h5gclose_f interface~global_error global_error proc~global_error_r1 global_error_r1 interface~global_error->proc~global_error_r1 proc~prescribed_water_density prescribed_water_density proc~prescribed_water_density->uniform_scalar_field proc~increase_time_step increase_time_step proc~sheet_data_size sheet_data_size proc~asym_plume_update asym_plume_update proc~shelf_velocity shelf_velocity proc~prescribed_assign prescribed_assign proc~shelf_thickness shelf_thickness proc~shelf_temperature shelf_temperature proc~shelf_residual shelf_residual proc~dallaston2015_upper_type dallaston2015_upper_type proc~global_bis_sec global_bis_sec proc~global_brackets global_brackets proc~global_bis_sec->proc~global_brackets proc~simple_velocity_bound simple_velocity_bound uniform_vector_field uniform_vector_field proc~simple_velocity_bound->uniform_vector_field proc~ground_read_data ground_read_data proc~seasonal_velocity_bound seasonal_velocity_bound proc~seasonal_velocity_bound->uniform_vector_field proc~linear_thermal_contraction linear_thermal_contraction proc~linear_thermal_contraction->uniform_scalar_field proc~integrate integrate proc~integrate->str proc~get_time get_time proc~read_ice read_ice interface~version version proc~read_ice->interface~version proc~read_ice->str h5fclose_f h5fclose_f proc~read_ice->h5fclose_f proc~read_ice->h5ltget_attribute_string_f proc~read_ice->h5ltget_attribute_double_f h5fopen_f h5fopen_f proc~read_ice->h5fopen_f proc~shelf_time_step shelf_time_step proc~shelf_time_step->str proc~one_equation_solve~2 one_equation_solve interface~step_integrate step_integrate proc~step_integrate_r1 step_integrate_r1 interface~step_integrate->proc~step_integrate_r1 proc~simple_info simple_info proc~seasonal_info seasonal_info proc~state_vector state_vector proc~sheet_assign sheet_assign proc~dallaston2015_residuals dallaston2015_residuals proc~dallaston2015_has_heat dallaston2015_has_heat proc~global_error_r1->proc~get_saved_state_r1 proc~rkmsg_r1 rkmsg_r1 proc~global_error_r1->proc~rkmsg_r1 proc~interpolate_r1 interpolate_r1 proc~interpolate_r1->proc~get_saved_state_r1 proc~interpolate_r1->proc~rkmsg_r1 proc~dallaston2015_has_salt dallaston2015_has_salt interface~one_equation_melt one_equation_melt proc~constructor~24 constructor interface~one_equation_melt->proc~constructor~24 proc~compile_info compile_info interface~reset_t_end reset_t_end proc~reset_t_end_r1 reset_t_end_r1 interface~reset_t_end->proc~reset_t_end_r1 proc~asym_plume_state_vector asym_plume_state_vector proc~ground_solve ground_solve proc~jacobian_block_add_real jacobian_block_add_real proc~quasilinear_solve quasilinear_solve proc~quasilinear_solve->interface~dnrm2 proc~quasilinear_solve->proc~gmres_solve proc~quasilinear_solve->str interface~interpolate interpolate interface~interpolate->proc~interpolate_r1 proc~static_plume_write_data static_plume_write_data proc~static_plume_write_data->h5ltset_attribute_double_f proc~static_plume_write_data->str proc~static_plume_write_data->h5ltset_attribute_string_f proc~static_plume_write_data->h5gcreate_f proc~static_plume_write_data->h5gclose_f interface~ave_linear_eos ave_linear_eos proc~constructor~2 constructor interface~ave_linear_eos->proc~constructor~2 proc~step_integrate_r1->proc~step_r1 proc~step_integrate_r1->proc~get_saved_state_r1 proc~step_integrate_r1->proc~set_saved_state_r1 proc~step_integrate_r1->proc~rkmsg_r1 proc~truerr_r1 truerr_r1 proc~step_integrate_r1->proc~truerr_r1 proc~stiff_r1 stiff_r1 proc~step_integrate_r1->proc~stiff_r1 proc~preconditioner_apply preconditioner_apply proc~preconditioner_apply->str proc~plume_initialise plume_initialise proc~plume_initialise->cheb1d_scalar_field proc~plume_initialise->cheb1d_vector_field interface~set_stop_on_fatal set_stop_on_fatal proc~set_stop_on_fatal_r1 set_stop_on_fatal_r1 interface~set_stop_on_fatal->proc~set_stop_on_fatal_r1 proc~prescribed_water_deriv prescribed_water_deriv proc~prescribed_water_deriv->uniform_scalar_field proc~sheet_density sheet_density proc~shelf_update shelf_update proc~one_equation_heat~2 one_equation_heat interface~statistics statistics proc~statistics_r1 statistics_r1 interface~statistics->proc~statistics_r1 proc~static_plume_update static_plume_update proc~read_data read_data proc~read_data->interface~version proc~read_data->str proc~read_data->h5fclose_f proc~read_data->h5ltget_attribute_string_f proc~read_data->h5ltget_attribute_double_f proc~read_data->h5fopen_f interface~get_saved_fatal get_saved_fatal proc~get_saved_fatal_r1 get_saved_fatal_r1 interface~get_saved_fatal->proc~get_saved_fatal_r1 proc~asym_plume_data_size asym_plume_data_size proc~linear_water_density~2 linear_water_density proc~constructor~7 constructor proc~constructor~7->cheb1d_scalar_field proc~constructor~7->str vinv_i vinv_i proc~constructor~7->vinv_i emdx_i emdx_i proc~constructor~7->emdx_i proc~constructor~7->uniform_scalar_field vinv_r vinv_r proc~constructor~7->vinv_r emdx_r emdx_r proc~constructor~7->emdx_r la_gesvx la_gesvx proc~constructor~7->la_gesvx interface~coriolis_block coriolis_block interface~coriolis_block->proc~constructor~7 proc~ground_write_data ground_write_data proc~ground_write_data->h5gcreate_f proc~ground_write_data->h5gclose_f interface~ground ground proc~constructor~9 constructor interface~ground->proc~constructor~9 proc~linear_water_density_ave1 linear_water_density_ave1 interface~compile_info compile_info interface~compile_info->proc~compile_info proc~bis_secant bis_secant proc~solve_for solve_for emdxvinvf_r emdxvinvf_r proc~solve_for->emdxvinvf_r emdxvinvf_i emdxvinvf_i proc~solve_for->emdxvinvf_i m_i m_i proc~solve_for->m_i c_r c_r proc~solve_for->c_r c_i c_i proc~solve_for->c_i proc~solve_for->la_gesvx m_r m_r proc~solve_for->m_r proc~simple_thickness_bound simple_thickness_bound proc~simple_thickness_bound->uniform_scalar_field proc~seasonal_thickness_bound seasonal_thickness_bound proc~seasonal_thickness_bound->uniform_scalar_field proc~bound_array bound_array proc~dallaston2015_melt_rate dallaston2015_melt_rate proc~fin_diff_block_solve_vector fin_diff_block_solve_vector proc~fin_diff_block_solve_vector->str proc~write_data write_data proc~current_time current_time proc~write_data->proc~current_time proc~write_data->interface~version interface~compile_time compile_time proc~write_data->interface~compile_time proc~write_data->h5ltset_attribute_double_f proc~write_data->str h5fcreate_f h5fcreate_f proc~write_data->h5fcreate_f proc~write_data->h5fclose_f proc~jacobian_block_add_block jacobian_block_add_block proc~assign assign proc~plume_drag_parameter plume_drag_parameter proc~plume_drag_parameter->uniform_scalar_field proc~boundary_residuals boundary_residuals proc~ground_melt ground_melt proc~asym_plume_initialise asym_plume_initialise proc~asym_plume_initialise->cheb1d_scalar_field proc~asym_plume_initialise->cheb1d_vector_field proc~jacobian_block_assign jacobian_block_assign proc~sheet_temperature sheet_temperature proc~asym_plume_read_data asym_plume_read_data proc~asym_plume_read_data->h5gopen_f proc~asym_plume_read_data->str proc~asym_plume_read_data->h5ltget_attribute_string_f proc~asym_plume_read_data->h5gclose_f proc~linear_water_density_ave2 linear_water_density_ave2 interface~upstream_plume_boundary upstream_plume_boundary interface~upstream_plume_boundary->proc~constructor~16 proc~plume_water_density plume_water_density interface~nitstb2 nitstb2 proc~version version interface~version->proc~version proc~statistics_r1->proc~get_saved_state_r1 proc~statistics_r1->proc~rkmsg_r1 proc~static_plume_data_size static_plume_data_size proc~compile_time compile_time interface~compile_time->proc~compile_time proc~glacier_integrate glacier_integrate interface~nitsol nitsol proc~glacier_integrate->interface~nitsol proc~glacier_integrate->str proc~read_sub_ice read_sub_ice proc~read_sub_ice->interface~version proc~read_sub_ice->str proc~read_sub_ice->h5fclose_f proc~read_sub_ice->h5ltget_attribute_string_f proc~read_sub_ice->h5ltget_attribute_double_f proc~read_sub_ice->h5fopen_f proc~bound_type bound_type proc~glacier_integrate_layers glacier_integrate_layers proc~rkmsg_r1->proc~set_saved_state_r1 proc~get_stop_on_fatal_r1 get_stop_on_fatal_r1 proc~rkmsg_r1->proc~get_stop_on_fatal_r1 proc~ei ei proc~calcei calcei proc~ei->proc~calcei proc~constructor~6 constructor interface~jacobian_block jacobian_block interface~jacobian_block->proc~constructor~6 proc~plume_melt plume_melt interface~newtonian_viscosity newtonian_viscosity proc~constructor~19 constructor interface~newtonian_viscosity->proc~constructor~19 interface~alpha_du alpha_du proc~nitstb2 nitstb2 proc~nitstb2->daxpy proc~nitstb2->dscal proc~nitstb2->dlamch proc~nitstb2->dcopy proc~nitstb2->nitjv proc~nitgm2 nitgm2 proc~nitgm2->daxpy dfloat dfloat proc~nitgm2->dfloat proc~nitgm2->dscal proc~nitgm2->dlamch 2 2 proc~nitgm2->2 proc~nitgm2->dcopy dsin dsin proc~nitgm2->dsin dacos dacos proc~nitgm2->dacos interface~uniform_gradient_field uniform_gradient_field proc~constructor~3 constructor interface~uniform_gradient_field->proc~constructor~3 proc~upstream_thickness_info upstream_thickness_info proc~machine_const machine_const interface~alpha_du2 alpha_du2 proc~collect_garbage_r1 collect_garbage_r1 interface~collect_garbage collect_garbage interface~collect_garbage->proc~collect_garbage_r1 proc~ice_shelf_integrate_layers ice_shelf_integrate_layers proc~ice_shelf_integrate_layers->str proc~constructor~3->uniform_scalar_field proc~constructor~12 constructor proc~constructor~12->uniform_scalar_field proc~newtonian_ice_viscosity newtonian_ice_viscosity proc~newtonian_ice_viscosity->uniform_scalar_field proc~uniform_gradient_d_dx uniform_gradient_d_dx proc~uniform_gradient_d_dx->uniform_scalar_field proc~uniform_temperature uniform_temperature proc~upstream_velocity_bound upstream_velocity_bound proc~upstream_velocity_bound->uniform_vector_field interface~alpha_d2 alpha_d2 interface~uniform_ambient_conditions uniform_ambient_conditions interface~uniform_ambient_conditions->proc~constructor~12 interface~alpha_dv alpha_dv proc~plume_update plume_update interface~alpha_duv alpha_duv interface~alpha_uvecu alpha_uvecu proc~linear_thermal_contraction~2 linear_thermal_contraction proc~linear_thermal_contraction~2->uniform_scalar_field interface~alpha_uvecv alpha_uvecv interface~alpha_dus alpha_dus proc~shelf_assign shelf_assign interface~seasonal_glacier_boundary seasonal_glacier_boundary proc~constructor~15 constructor interface~seasonal_glacier_boundary->proc~constructor~15 interface~alpha_dut alpha_dut proc~upstream_info upstream_info interface~glens_law_viscosity glens_law_viscosity proc~constructor~20 constructor interface~glens_law_viscosity->proc~constructor~20 interface~alpha_uvect alpha_uvect proc~tfqmr_solve tfqmr_solve interface~alpha_ds alpha_ds interface~alpha_dt alpha_dt interface~alpha_ds_t alpha_ds_t proc~seasonal_upper_bound seasonal_upper_bound interface~alpha_dt_t alpha_dt_t interface~f_d f_d interface~f_u f_u proc~uniform_gradient_gradient uniform_gradient_gradient proc~uniform_gradient_gradient->uniform_vector_field proc~truerr_r1->proc~step_r1 interface~f_v f_v proc~plume_state_vector plume_state_vector interface~f_s f_s interface~f_t f_t interface~f_u_p f_u_p proc~shelf_precondition shelf_precondition proc~method_const method_const interface~f_v_p f_v_p proc~shelf_set_time shelf_set_time interface~f_s_p f_s_p proc~one_equation_salt~2 one_equation_salt interface~f_t_p f_t_p proc~asym_plume_write_data asym_plume_write_data proc~asym_plume_write_data->h5ltset_attribute_double_f proc~asym_plume_write_data->str proc~asym_plume_write_data->h5ltset_attribute_string_f proc~asym_plume_write_data->h5gcreate_f proc~asym_plume_write_data->h5gclose_f proc~jenkins1991_rate jenkins1991_rate proc~plume_data_size plume_data_size proc~constructor~11 constructor proc~uniform_salinity uniform_salinity proc~upstream_thickness_bound upstream_thickness_bound proc~upstream_thickness_bound->uniform_scalar_field proc~one_equation_has_heat~2 one_equation_has_heat proc~upstream_temperature_bound upstream_temperature_bound proc~upstream_temperature_bound->uniform_scalar_field interface~fin_diff_block fin_diff_block interface~fin_diff_block->proc~constructor~11 proc~one_equation_salt one_equation_salt proc~dallaston2015_heat dallaston2015_heat proc~static_plume_initialise static_plume_initialise proc~static_plume_initialise->cheb1d_scalar_field proc~static_plume_initialise->cheb1d_vector_field proc~setup_r1 setup_r1 proc~setup_r1->proc~rkmsg_r1 proc~setup_r1->proc~machine_const proc~setup_r1->proc~method_const proc~one_equation_melt_rate one_equation_melt_rate proc~linear_haline_contraction~2 linear_haline_contraction proc~linear_haline_contraction~2->uniform_scalar_field proc~fin_diff_block_solve_scalar fin_diff_block_solve_scalar proc~fin_diff_block_solve_scalar->str proc~fin_diff_block_solve_scalar->la_gtsvx proc~one_equation_has_heat one_equation_has_heat proc~uniform_gradient_assign uniform_gradient_assign proc~plume_read_data plume_read_data proc~plume_read_data->h5gopen_f proc~plume_read_data->str proc~plume_read_data->h5ltget_attribute_string_f proc~plume_read_data->h5gclose_f proc~constructor~5 constructor collocation_points collocation_points proc~constructor~5->collocation_points proc~upstream_salinity_bound upstream_salinity_bound proc~upstream_salinity_bound->uniform_scalar_field proc~ave_one_equation_melt_rate ave_one_equation_melt_rate proc~one_equation_has_salt~2 one_equation_has_salt proc~static_plume_drag_parameter static_plume_drag_parameter proc~static_plume_drag_parameter->uniform_scalar_field proc~uniform_gradient_is_equal uniform_gradient_is_equal is_nan is_nan proc~uniform_gradient_is_equal->is_nan get_tol get_tol proc~uniform_gradient_is_equal->get_tol interface~pseudospec_block pseudospec_block interface~pseudospec_block->proc~constructor~5 interface~linear_eos linear_eos proc~constructor constructor interface~linear_eos->proc~constructor proc~plume_solve plume_solve proc~plume_solve->str proc~seasonal_lower_bound seasonal_lower_bound proc~range_integrate_r1->proc~get_saved_state_r1 proc~range_integrate_r1->proc~set_saved_state_r1 proc~range_integrate_r1->interface~step_integrate proc~range_integrate_r1->interface~reset_t_end proc~range_integrate_r1->interface~interpolate proc~range_integrate_r1->proc~rkmsg_r1 proc~range_integrate_r1->proc~get_saved_fatal_r1 proc~constructor~18 constructor interface~ave_one_equation_melt ave_one_equation_melt interface~ave_one_equation_melt->proc~constructor~18 proc~dallaston2015_solve dallaston2015_solve proc~static_plume_water_density static_plume_water_density proc~pseudospec_block_solve_vector pseudospec_block_solve_vector proc~linear_water_deriv~2 linear_water_deriv proc~glens_ice_viscosity glens_ice_viscosity proc~linear_water_density linear_water_density proc~static_plume_melt static_plume_melt proc~seasonal_lower_type seasonal_lower_type proc~one_equation_has_salt one_equation_has_salt proc~asym_plume_solve asym_plume_solve proc~asym_plume_solve->str proc~plume_write_data plume_write_data proc~plume_write_data->h5ltset_attribute_double_f proc~plume_write_data->str proc~plume_write_data->h5ltset_attribute_string_f proc~plume_write_data->h5gcreate_f proc~plume_write_data->h5gclose_f proc~one_equation_solve one_equation_solve interface~setup setup interface~setup->proc~setup_r1 proc~linear_water_deriv linear_water_deriv interface~splev splev proc~pseudospec_block_solve_scalar pseudospec_block_solve_scalar integrate_1d integrate_1d proc~pseudospec_block_solve_scalar->integrate_1d proc~upstream_calculate upstream_calculate proc~upstream_calculate->interface~range_integrate proc~upstream_calculate->interface~collect_garbage proc~upstream_calculate->interface~setup proc~upstream_calculate->str proc~shelf_data_size shelf_data_size proc~shelf_solve_velocity shelf_solve_velocity proc~shelf_solve_velocity->interface~nitsol proc~shelf_solve_velocity->str proc~one_equation_heat one_equation_heat proc~simple_temperature_bound simple_temperature_bound proc~simple_temperature_bound->uniform_scalar_field proc~shelf_integrate shelf_integrate proc~reset_t_end_r1->proc~get_saved_state_r1 proc~reset_t_end_r1->proc~rkmsg_r1 proc~seasonal_upper_type seasonal_upper_type proc~bound_info bound_info proc~jacobian_block_bounds jacobian_block_bounds proc~scalar_bound scalar_bound proc~scalar_bound->uniform_scalar_field proc~bicgstab_solve bicgstab_solve proc~vector_bound vector_bound proc~vector_bound->uniform_vector_field proc~seasonal_residuals seasonal_residuals
Help