Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions columnphysics/icepack_fsd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -746,7 +746,7 @@ subroutine fsd_add_new_ice (n, &

if (wave_spec) then
if (wave_sig_ht > puny) then
call wave_dep_growth (wave_spectrum, &
call wave_dep_growth (wave_spectrum, wave_sig_ht, &
wavefreq, dwavefreq, &
new_size)
if (icepack_warnings_aborted(subname)) return
Expand Down Expand Up @@ -774,7 +774,7 @@ subroutine fsd_add_new_ice (n, &

if (wave_spec) then
if (wave_sig_ht > puny) then
call wave_dep_growth (wave_spectrum, &
call wave_dep_growth (wave_spectrum, wave_sig_ht, &
wavefreq, dwavefreq, &
new_size)
if (icepack_warnings_aborted(subname)) return
Expand Down Expand Up @@ -816,7 +816,7 @@ end subroutine fsd_add_new_ice
!
! authors: Lettie Roach, NIWA/VUW
!
subroutine wave_dep_growth (local_wave_spec, &
subroutine wave_dep_growth (local_wave_spec, wave_height, &
wavefreq, dwavefreq, &
new_size)

Expand All @@ -829,6 +829,9 @@ subroutine wave_dep_growth (local_wave_spec, &
wavefreq, & ! wave frequencies (s^-1)
dwavefreq ! wave frequency bin widths (s^-1)

real(kind=dbl_kind), intent(in), optional :: &
wave_height

integer (kind=int_kind), intent(out) :: &
new_size ! index of floe size category in which new floes will grow

Expand All @@ -844,7 +847,11 @@ subroutine wave_dep_growth (local_wave_spec, &

integer (kind=int_kind) :: k

w_amp = c2* SQRT(SUM(local_wave_spec*dwavefreq)) ! sig wave amplitude
if (present(wave_height)) then
w_amp = p5 * wave_height ! amplitude is 1/2 sig wave hight
else
w_amp = c2* SQRT(SUM(local_wave_spec*dwavefreq)) ! sig wave amplitude
endif
f_peak = wavefreq(MAXLOC(local_wave_spec, DIM=1)) ! peak frequency

! tensile failure
Expand Down
13 changes: 11 additions & 2 deletions columnphysics/icepack_wavefracspec.F90
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ subroutine icepack_step_wavefracture(wave_spec_type, &
dt, nfreq, &
aice, vice, aicen, &
wave_spectrum, wavefreq, dwavefreq, &
trcrn, d_afsd_wave)
trcrn, d_afsd_wave, wave_height)


character (len=char_len), intent(in) :: &
Expand Down Expand Up @@ -214,6 +214,9 @@ subroutine icepack_step_wavefracture(wave_spec_type, &
real (kind=dbl_kind), dimension(:), intent(out) :: &
d_afsd_wave ! change in fsd due to waves

real (kind=dbl_kind), intent(in), optional :: &
wave_height ! wave height

real (kind=dbl_kind), dimension(nfsd,ncat) :: &
d_afsdn_wave ! change in fsd due to waves, per category

Expand Down Expand Up @@ -254,7 +257,13 @@ subroutine icepack_step_wavefracture(wave_spec_type, &
! if all ice is not in first floe size category
if (.NOT. ALL(trcrn(nt_fsd,:).ge.c1-puny)) then

local_sig_ht = c4*SQRT(SUM(wave_spectrum(:)*dwavefreq(:)))
! Add option to use wave height from wave model
if (present (wave_height)) then
local_sig_ht = wave_height
else
local_sig_ht = c4*SQRT(SUM(wave_spectrum(:)*dwavefreq(:)))
endif

! do not try to fracture for minimal ice concentration or zero wave spectrum
! if ((aice > p01).and.(MAXVAL(wave_spectrum(:)) > puny)) then
if ((aice > p01).and.(local_sig_ht>0.1_dbl_kind)) then
Expand Down
Loading