constructor Function

private pure function constructor(ref_rho, ref_t, ref_s, beta_t, beta_s, a_DS, a_DT, a_DS_t, a_DT_t) result(this)

Arguments

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

The density for the temperature and salinity about which the equation of state was linearised, .

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

The temperature about which the equation of state was linearised, .

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

The salinity about which the equation of state was linearised, .

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

The thermal contraction coefficient, .

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

The haline contraction coefficient, .

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

The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction. Defualt value is 1.

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

The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction. Defualt value is 1.

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

The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction and Defualt value is 1.

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

The shape coefficient for a horizontally-integrated model. It is defined as where and are the shapes of the variables and in the transverse direction and Defualt value is 1.

Return Value type(ave_linear_eos)


Called by

proc~~constructor~2~~CalledByGraph proc~constructor~2 constructor interface~ave_linear_eos ave_linear_eos interface~ave_linear_eos->proc~constructor~2

Contents

Source Code


Source Code

  pure function constructor(ref_rho, ref_t, ref_s, beta_t, beta_s, a_DS, &
                            a_DT, a_DS_t, a_DT_t) result(this)
    real(r8), intent(in) :: ref_rho
      !! The density for the temperature and salinity about which the
      !! equation of state was linearised, \(\rho_0\).
    real(r8), intent(in) :: ref_t
      !! The temperature about which the equation of state was
      !! linearised, \(T_0\).
    real(r8), intent(in) :: ref_s
      !! The salinity about which the equation of state was
      !! linearised, \(S_0\).
    real(r8), intent(in) :: beta_t
      !! The thermal contraction coefficient, \(\beta_T\).
    real(r8), intent(in) :: beta_s
      !! The haline contraction coefficient, \(\beta_S\).
    real(r8), intent(in), optional :: a_DS
      !! The shape coefficient for a horizontally-integrated model. It
      !! is defined as $$\alpha_{DS} = \frac{1}{y_2 - y_1}
      !! \int^{y_2}_{y_1} f_{D}f_S dy, $$ where \(f_{D}(y)\) and
      !! \(f_S(y)\) are the shapes of the variables \(D\) and \(S\) in
      !! the transverse direction. Defualt value is 1.
    real(r8), intent(in), optional :: a_DT
      !! The shape coefficient for a horizontally-integrated model. It
      !! is defined as $$\alpha_{DT} = \frac{1}{y_2 - y_1}
      !! \int^{y_2}_{y_1} f_{D}f_T dy, $$ where \(f_{D}(y)\) and
      !! \(f_T(y)\) are the shapes of the variables \(D\) and \(T\) in
      !! the transverse direction. Defualt value is 1.
    real(r8), intent(in), optional :: a_DS_t
      !! The shape coefficient for a horizontally-integrated model. It
      !! is defined as $$\tilde{\alpha}_{DS} =
      !! \frac{1}{\alpha_{D^2}(y_2 - y_1)} \int^{y_2}_{y_1} f^2_{D}f_S
      !! dy, $$ where \(f_{D}(y)\) and \(f_S(y)\) are the shapes of
      !! the variables \(D\) and \(S\) in the transverse direction and
      !! $$\alpha_{D^2} = \frac{1}{y_2 -
      !! y_1}\int^{y_2}_{y_1}f_D^2dy.$$ Defualt value is 1.
    real(r8), intent(in), optional :: a_DT_t
      !! The shape coefficient for a horizontally-integrated model. It
      !! is defined as $$\tilde{\alpha}_{DT} =
      !! \frac{1}{\alpha_{D^2}(y_2 - y_1)} \int^{y_2}_{y_1} f^2_{D}f_T
      !! dy, $$ where \(f_{D}(y)\) and \(f_T(y)\) are the shapes of
      !! the variables \(D\) and \(T\) in the transverse direction and
      !! $$\alpha_{D^2} = \frac{1}{y_2 -
      !! y_1}\int^{y_2}_{y_1}f_D^2dy.$$ Defualt value is 1.
    type(ave_linear_eos)     :: this
    this%ref_rho = ref_rho
    this%ref_t   = ref_t
    this%ref_s   = ref_s
    this%beta_t  = beta_t
    this%beta_s  = beta_s
    if (present(a_DS)) this%a_DS = a_DS
    if (present(a_DT)) this%a_DT = a_DT
    if (present(a_DS_t)) this%a_DS_t = a_DS_t
    if (present(a_DT_t)) this%a_DT_t = a_DT_t
  end function constructor