Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 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
8 changes: 8 additions & 0 deletions config/namelist.ice
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ ice_ave_steps=1 ! ice step=ice_ave_steps*oce_step

&ice_therm
Sice=4.0 ! Ice salinity 3.2--5.0 ppt.
iclasses=7 ! default = 7; in case of EM distribution ('new_iceclasses=.true.') must be set to 15
h0=.5 ! Lead closing parameter [m]
hmin=0.01 ! default=0.01
armin=0.01 ! default=0.01
emiss_ice=0.97 ! Emissivity of Snow/Ice,
emiss_wat=0.97 ! Emissivity of open water
albsn=0.81 ! Albedo: frozen snow
Expand All @@ -28,4 +31,9 @@ albim=0.68 ! melting ice
albw=0.1 ! open water
con=2.1656 ! Thermal conductivities: ice; W/m/K
consn=0.31 ! snow
snowdist=.true. ! distribution of snow depth according to ice distribution - default: .true.
new_iclasses=.false. ! default=.false.; ice thickness distribution based on EM observations (Castro-Morales et al., JGR, 2013)
open_water_albedo=0 ! 0=default; 1=taylor; 2=briegleb
c_melt=0.5 ! constant in concentration equation for melting conditions - default=0.5
h_cutoff=3.0 ! only used for new_iclasses=.true.
/
33 changes: 26 additions & 7 deletions src/MOD_ICE.F90
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,17 @@ MODULE MOD_ICE
real(kind=WP) :: albi = 0.70 ! frozen ice
real(kind=WP) :: albim = 0.68 ! melting ice
real(kind=WP) :: albw = 0.066 ! open water, LY2004


! --- additional namelist parameters (Frank.Kauker(at)awi.de 2023/04/04)
logical :: snowdist=.true. ! distribution of snow depth according to ice distribution
logical :: new_iclasses=.false. ! ice thickness distribution based on EM observations (Castro-Morales et al., JGR, 2013)
integer :: open_water_albedo=0 ! 0=standard; 1=taylor; 2=briegleb
REAL(kind=WP) :: c_melt=0.5 ! constant in concentration equation for melting conditions
REAL(kind=WP) :: h_cutoff=3.0 ! cutoff thickness of thickness pdf
REAL(kind=WP), DIMENSION(15) :: hpdf = (/ 0.066745491, 0.1462317, 0.17769822, 0.13131106, &
0.11518432, 0.08514193, 0.06871303, 0.05592151, 0.04428673, 0.03584652, 0.02970195, 0.02469673, &
0.02001543, 0.01653681, 0.0141026 /) ! pdf of ice thickness based on EM observations
contains
procedure WRITE_T_ICE_THERMO
procedure READ_T_ICE_THERMO
Expand Down Expand Up @@ -549,11 +560,12 @@ subroutine ice_init(ice, partit, mesh)
namelist /ice_dyn/ whichEVP, Pstar, ellipse, c_pressure, delta_min, evp_rheol_steps, &
Cd_oce_ice, ice_gamma_fct, ice_diff, theta_io, ice_ave_steps, &
alpha_evp, beta_evp, c_aevp

logical :: snowdist, new_iclasses
integer :: open_water_albedo, iclasses
real(kind=WP) :: Sice, h0, emiss_ice, emiss_wat, albsn, albsnm, albi, &
albim, albw, con, consn
namelist /ice_therm/ Sice, h0, emiss_ice, emiss_wat, albsn, albsnm, albi, &
albim, albw, con, consn
albim, albw, con, consn, hmin, armin, c_melt, h_cutoff
namelist /ice_therm/ Sice, iclasses, h0, hmin, armin, emiss_ice, emiss_wat, albsn, albsnm, albi, &
albim, albw, con, consn, snowdist, new_iclasses, open_water_albedo, c_melt, h_cutoff
!___________________________________________________________________________
! pointer on necessary derived types
#include "associate_part_def.h"
Expand Down Expand Up @@ -596,17 +608,24 @@ subroutine ice_init(ice, partit, mesh)
ice%thermo%con = con
ice%thermo%consn = consn
ice%thermo%Sice = Sice
ice%thermo%iclasses = iclasses
ice%thermo%h0 = h0
ice%thermo%hmin = hmin
ice%thermo%armin = armin
ice%thermo%emiss_ice= emiss_ice
ice%thermo%emiss_wat= emiss_wat
ice%thermo%albsn = albsn
ice%thermo%albsnm = albsnm
ice%thermo%albi = albi
ice%thermo%albim = albim
ice%thermo%albw = albw

ice%thermo%cc=ice%thermo%rhowat*4190.0 ! Volumetr. heat cap. of water [J/m**3/K](cc = rhowat*cp_water)
ice%thermo%cl=ice%thermo%rhoice*3.34e5 ! Volumetr. latent heat of ice fusion [J/m**3](cl=rhoice*Lf)
ice%thermo%snowdist = snowdist
ice%thermo%new_iclasses=new_iclasses
ice%thermo%open_water_albedo=open_water_albedo
ice%thermo%c_melt = c_melt
ice%thermo%h_cutoff = h_cutoff
ice%thermo%cc =ice%thermo%rhowat*4190.0 ! Volumetr. heat cap. of water [J/m**3/K](cc = rhowat*cp_water)
ice%thermo%cl =ice%thermo%rhoice*3.34e5 ! Volumetr. latent heat of ice fusion [J/m**3](cl=rhoice*Lf)

!___________________________________________________________________________
! define local vertice & elem array size
Expand Down
5 changes: 4 additions & 1 deletion src/gen_forcing_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -137,10 +137,13 @@ subroutine forcing_array_setup(partit, mesh)
allocate(Tair(n2), shum(n2))
Tair=0.0_WP
shum=0.0_WP
allocate(runoff(n2), evaporation(n2),ice_sublimation(n2))
allocate(runoff(n2), evaporation(n2),ice_sublimation(n2), ice_ocean_hflx(n2), ice_dTfrez(n2), ice_ustar(n2))
runoff=0.0_WP
evaporation = 0.0_WP
ice_sublimation = 0.0_WP
ice_ocean_hflx = 0.0_WP
ice_dTfrez = 0.0_WP
ice_ustar = 0.0_WP

#if defined (__oasis) || defined (__ifsinterface)
allocate(sublimation(n2), evap_no_ifrac(n2))
Expand Down
2 changes: 1 addition & 1 deletion src/gen_modules_forcing.F90
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ module g_forcing_arrays
real(kind=WP), allocatable, dimension(:,:) :: Tair_t, shum_t
real(kind=WP), allocatable, dimension(:) :: shortwave, longwave
real(kind=WP), allocatable, dimension(:) :: prec_rain, prec_snow
real(kind=WP), allocatable, dimension(:) :: runoff, evaporation, ice_sublimation
real(kind=WP), allocatable, dimension(:) :: runoff, evaporation, ice_sublimation, ice_ocean_hflx, ice_dTfrez, ice_ustar
real(kind=WP), allocatable, dimension(:) :: cloudiness, press_air
!---wiso-code
real(kind=WP), allocatable, dimension(:) :: www1,www2,www3,iii1,iii2,iii3
Expand Down
Loading