Provides an abstract data type to model the ground or ocean below the glacier.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=10), | public, | parameter | :: | hdf_type_attr | = | 'basal_type' |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(in) | :: | this |
The value of whatever property of the basal surface is being returned.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(in) | :: | this |
The value of whatever property of the basal surface is being returned.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(in) | :: | this |
The state vector of the basal surface
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(in) | :: | this |
The value of whatever property of the basal surface is being returned.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(inout) | :: | this | |||
real(kind=r8), | intent(in), | dimension(:) | :: | state_vector | A real array containing the data describing the state of the basal surface. |
|
class(scalar_field), | intent(in), | optional | :: | ice_thickness | The ice thickness which, if present, will be used to update the calculation of the melt rate and/or drag parameter. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(inout) | :: | this | |||
real(kind=r8), | intent(in) | :: | time | The time at which the basal surface is in the present state. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(inout) | :: | this | |||
integer(kind=hid_t), | intent(in) | :: | file_id | The identifier for the HDF5 file/group from which the data will be read. |
||
character(len=*), | intent(in) | :: | group_name | The name of the group in the HDF5 file from which to read basal surface's data. |
||
integer, | intent(out) | :: | error | Flag indicating whether routine ran without error. If no error occurs then has value 0. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(in) | :: | this | |||
integer(kind=hid_t), | intent(in) | :: | file_id | The identifier for the HDF5 file/group in which this data is meant to be written. |
||
character(len=*), | intent(in) | :: | group_name | The name to give the group in the HDF5 file storing the basal surface's data. |
||
integer, | intent(out) | :: | error | Flag indicating whether routine ran without error. If no error occurs then has value 0. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(basal_surface), | intent(inout) | :: | this | |||
class(scalar_field), | intent(in) | :: | ice_thickness | Thickness of the ice above the basal surface |
||
real(kind=r8), | intent(in) | :: | ice_density | The density of the ice above the basal surface, assumed uniform |
||
real(kind=r8), | intent(in) | :: | ice_temperature | The temperature of the ice above the basal surface, assumed uniform |
||
real(kind=r8), | intent(in) | :: | time | The time to which the basal surface should be solved |
||
logical, | intent(out) | :: | success | True if the solver is successful, false otherwise |
An abstract data type which represents whatever lies below a glacier. This could be the ground, a plume, or a fully dynamic ocean model. Methods are available to provide the coupling information between the glacier and the basal surface.
procedure(get_scalar), public :: basal_melt | Returns the basal melt rate. |
procedure(get_scalar), public :: basal_drag_parameter | Returns a value which may be needed to calculate basal drag, such as the coefficient of friction. |
procedure(get_real), public :: water_density | Density of the water at the basal surface. |
procedure(setter), public :: update | Sets the state of the basal surface |
procedure(get_i), public :: data_size | Returns the number of elements in the basal surface's state vector |
procedure(get_r81d), public :: state_vector | Returns the basal surface's state vector, a 1D array with all necessary data to describe its state. |
procedure(read_dat), public :: read_data | Read the basal surface data from an HDF5 file on the disc. |
procedure(write_dat), public :: write_data | Writes the data describing the basal surface to the disc as an HDF5 file. |
procedure(surface_solve), public :: solve | Solves for the state of the basal surface given a particular ice shelf geometry. |