constructor Function

private pure function constructor(thickness, frequency, amplitude, mean, temperature) result(this)

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.

Arguments

Type IntentOptional AttributesName
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

Return Value type(dallaston2015_seasonal_boundary)


Called by

proc~~constructor~14~~CalledByGraph proc~constructor~14 constructor interface~dallaston2015_seasonal_boundary dallaston2015_seasonal_boundary interface~dallaston2015_seasonal_boundary->proc~constructor~14

Contents

Source Code


Source Code

  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