get_residual Abstract Interface

abstract interface
private function get_residual(this, previous_states, melt_rate, basal_drag_parameter, water_density) result(residual)

Arguments

Type IntentOptional AttributesName
class(glacier), intent(in) :: this
class(glacier), intent(in), dimension(:):: previous_states

The states of the glacier in the previous time steps. The first element of the array should be the most recent. The default implementation will only make use of the most recent state, but the fact that this is an array allows overriding methods to use older states for higher-order integration methods.

class(scalar_field), intent(in) :: melt_rate

Thickness of the ice above the glacier

class(scalar_field), intent(in) :: basal_drag_parameter

A paramter, e.g. coefficient of friction, needed to calculate the drag on basal surface of the glacier.

real(kind=r8), intent(in) :: water_density

The density of the water below the glacier

Return Value real(kind=r8), dimension(:),allocatable

The residual of the system of equations describing the glacier