Returns a spectrum instance with the wave dissipation tendency due to bottom friction and percolation, formulated by Donelan et al. (2012).
The result instance has the units of 1/s. If the mean water depth and wavenumber arrays are constant, this source function can be evaluated once and stored. Otherwise, the function must be re-evaluated if the mean water depth or wavenumber array change.
References:
Donelan, M. A., M. Curcic, S. S. Chen, and A. K. Magnusson, 2012: Modeling waves and wind stress, J. Geophys. Res. Oceans, 117, C00J23, doi:10.1029/2011JC007787.
Shemdin, P., K. Hasselmann, S. V. Hsiao, and K. Herterich, 1978: Non-linear and linear bottom interaction effects in shallow water, p347-372 in: Turbulent fluxes through the sea surface, wave dynamics and prediction, A. Favre and K. Hasselmann (eds), Plenum, New York, 677p.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(spectrum_type), | intent(in) | :: | spectrum | Spectrum instance |
||
real(kind=rk), | intent(in) | :: | friction_coefficient | Bottom friction coefficient [m/s] |
||
real(kind=rk), | intent(in) | :: | percolation_coefficient | Bottom permeability coefficient [m/s] |
Result tendency instance
pure elemental function sbf_DCCM2012(spectrum,friction_coefficient,&
percolation_coefficient) result(tendency)
!! Returns a spectrum instance with the wave dissipation tendency due to
!! bottom friction and percolation, formulated by Donelan et al. (2012).
!!
!! The result instance has the units of 1/s. If the mean water depth and
!! wavenumber arrays are constant, this source function can be evaluated once
!! and stored. Otherwise, the function must be re-evaluated if the mean water
!! depth or wavenumber array change.
!!
!! References:
!!
!! Donelan, M. A., M. Curcic, S. S. Chen, and A. K. Magnusson, 2012: Modeling
!! waves and wind stress, *J. Geophys. Res. Oceans*, **117**, C00J23,
!! doi:10.1029/2011JC007787.
!!
!! Shemdin, P., K. Hasselmann, S. V. Hsiao, and K. Herterich, 1978: Non-linear
!! and linear bottom interaction effects in shallow water, p347-372 in:
!! Turbulent fluxes through the sea surface, wave dynamics and prediction, A.
!! Favre and K. Hasselmann (eds), Plenum, New York, 677p.
use mod_spectrum,only:spectrum_type
type(spectrum_type),intent(in) :: spectrum
!! Spectrum instance
real(kind=rk),intent(in) :: friction_coefficient
!! Bottom friction coefficient [m/s]
real(kind=rk),intent(in) :: percolation_coefficient
!! Bottom permeability coefficient [m/s]
type(spectrum_type) :: tendency
!! Result tendency instance
real(kind=rk) :: d
real(kind=rk),dimension(:,:),allocatable :: k
d = spectrum % getDepth()
k = spectrum % getWavenumber2d()
tendency = friction_coefficient * k / sinh(2*k*d)&
+ percolation_coefficient / cosh(k*d)**2
endfunction sbf_DCCM2012