constructor Function

private pure function constructor(coef1, coef2, fresh_sal, melt_temp) result(this)

Arguments

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

The unitless multiplier on the thermal forcing term, .

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

The unitless multiplier applied to the theram forcing term to get the melt rate, .

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

The salinity of fresh water. Defaults to 0.

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

The melting point of the ice. Defaults to 0.

Return Value type(one_equation_melt)

The newly created object representing the melt relationship.


Called by

proc~~constructor~24~~CalledByGraph proc~constructor~24 constructor interface~one_equation_melt one_equation_melt interface~one_equation_melt->proc~constructor~24

Contents

Source Code


Source Code

  pure function constructor(coef1, coef2, fresh_sal, melt_temp) result(this)
    real(r8), intent(in)           :: coef1
      !! The unitless multiplier on the thermal forcing term,
      !! \(\Gamma_Tx_0/D_0\).
    real(r8), intent(in)           :: coef2
      !! The unitless multiplier applied to the theram forcing term to
      !! get the melt rate, \(c_oT_0/L\).
    real(r8), intent(in), optional :: fresh_sal
      !! The salinity of fresh water. Defaults to 0.
    real(r8), intent(in), optional :: melt_temp
      !! The melting point of the ice. Defaults to 0.
    type(one_equation_melt) :: this
      !! The newly created object representing the melt relationship.
    this%coef1 = coef1
    this%coef2 = coef2
    if (present(fresh_sal)) this%sal_forcing = -fresh_sal*coef2
    if (present(melt_temp)) this%melt_temp = melt_temp
  end function constructor