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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r8), | intent(in), | optional | :: | thickness | The plume thickness at the inflowing plume boundary, defaults to 0.1 |
|
real(kind=r8), | intent(in), | optional | :: | frequency | The angular frequency of the oscillations in discharge, defaults to 1.0 |
|
real(kind=r8), | intent(in), | optional | :: | amplitude | The amplitude of the oscillations in discharge, defaults to 1.0 |
|
real(kind=r8), | intent(in), | optional | :: | mean | The time-average of the discharge, about which it oscillates, defaulting to 1.0 |
|
real(kind=r8), | intent(in), | optional | :: | temperature | The water temperature at the inflowing plume boundary, defaults to 0.0 |
pure function constructor(thickness, frequency, amplitude, mean, &
temperature) result(this)
!* Author: Chris MacMackin
! Date: November 2016
!
! 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.
!
real(r8), intent(in), optional :: thickness
!! The plume thickness at the inflowing plume boundary, defaults
!! to 0.1
real(r8), intent(in), optional :: frequency
!! The angular frequency of the oscillations in discharge,
!! defaults to 1.0
real(r8), intent(in), optional :: amplitude
!! The amplitude of the oscillations in discharge, defaults to
!! 1.0
real(r8), intent(in), optional :: mean
!! The time-average of the discharge, about which it oscillates,
!! defaulting to 1.0
real(r8), intent(in), optional :: temperature
!! The water temperature at the inflowing plume boundary,
!! defaults to 0.0
type(dallaston2015_seasonal_boundary) :: this
if (present(thickness)) this%thickness = thickness
if (present(frequency)) this%frequency = frequency
if (present(amplitude)) this%amplitude = amplitude
if (present(mean)) this%mean = mean
if (present(temperature)) this%temperature = temperature
end function constructor