constructor Function

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

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.

Arguments

Type IntentOptional AttributesName
real(kind=r8), intent(in), optional :: thickness

The ice thickness at the inflowing ice shelf boundary, defaults to 1.0

real(kind=r8), intent(in), optional :: frequency

The angular frequency of the oscillations in ice flux, defaults to 0.5

real(kind=r8), intent(in), optional :: amplitude

The amplitude of the oscillations in ice flux, 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 :: chi

The dimensionless ratio , defaults to 1.0

logical, intent(in), optional :: square

If present and true, produce a square wave. Otherwise produce a sinusoid.

Return Value type(seasonal_glacier_boundary)


Called by

proc~~constructor~15~~CalledByGraph proc~constructor~15 constructor interface~seasonal_glacier_boundary seasonal_glacier_boundary interface~seasonal_glacier_boundary->proc~constructor~15

Contents

Source Code


Source Code

  pure function constructor(thickness, frequency, amplitude, mean, chi, &
                            square) result(this)
    !* Author: Chris MacMackin
    !  Date: October 2017
    !
    ! 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.
    !
    real(r8), intent(in), optional :: thickness
      !! The ice thickness at the inflowing ice shelf boundary,
      !! defaults to 1.0
    real(r8), intent(in), optional :: frequency
      !! The angular frequency of the oscillations in ice flux,
      !! defaults to 0.5
    real(r8), intent(in), optional :: amplitude
      !! The amplitude of the oscillations in ice flux, 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 :: chi
      !! The dimensionless ratio \(\chi \equiv
      !! \frac{\rho_igh_0x_x}{2\eta_0u_0}\), defaults to 1.0
    logical, intent(in), optional  :: square
      !! If present and true, produce a square wave. Otherwise produce
      !! a sinusoid.
    type(seasonal_glacier_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(chi)) this%chi = chi
    if (present(square)) this%square = square
  end function constructor