Returns a spectrum instance with the wave dissipation ($S_{ds}$) tendency formulated by Donelan et al. (2012).
The result instance has the units of 1/s. This source function must be re-evaluated every time the spectrum is updated.
References:
Donelan, M. A., B. K. Haus, W. J. Plant, and O. Troianowski, 2010: Modulation of short wind waves by long waves, J. Geophys. Res. Oceans, 115, C10003, doi:10.1029/2009JC005794.
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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(spectrum_type), | intent(in) | :: | spectrum | Linear coefficient of the dissipation function |
||
real(kind=rk), | intent(in) | :: | sds_coefficient | Linear coefficient of the dissipation function |
||
real(kind=rk), | intent(in) | :: | sds_power | The exponent of the saturation spectrum |
||
real(kind=rk), | intent(in) | :: | mss_coefficient | Linear coefficient of the mean square slope adjustment to Sds |
Result tendency instance
pure elemental function sds_DCCM2012(spectrum,sds_coefficient,sds_power,&
mss_coefficient) result(tendency)
!! Returns a spectrum instance with the wave dissipation ($S_{ds}$) tendency
!! formulated by Donelan et al. (2012).
!!
!! The result instance has the units of 1/s. This source function must be
!! re-evaluated every time the spectrum is updated.
!!
!! References:
!!
!! Donelan, M. A., B. K. Haus, W. J. Plant, and O. Troianowski, 2010:
!! Modulation of short wind waves by long waves, *J. Geophys. Res. Oceans*,
!! **115**, C10003, doi:10.1029/2009JC005794.
!!
!! 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.
use mod_spectrum,only:spectrum_type
use mod_const,only:twopi
type(spectrum_type),intent(in) :: spectrum
!! Linear coefficient of the dissipation function
real(kind=rk),intent(in) :: sds_coefficient
!! Linear coefficient of the dissipation function
real(kind=rk),intent(in) :: sds_power
!! The exponent of the saturation spectrum
real(kind=rk),intent(in) :: mss_coefficient
!! Linear coefficient of the mean square slope adjustment to Sds
type(spectrum_type) :: tendency
!! Result tendency instance
tendency = sds_coefficient * twopi * spectrum % getFrequency2d()&
* spectrum % saturationSpectrum()**sds_power &
* (1 + mss_coefficient * spectrum % meanSquareSlopeDirectional())**2
endfunction sds_DCCM2012