- Timestamp:
- 10/06/16 11:31:57 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_v3.20_2016_platelet/SOURCES/source_3.20/ice_th_diff.f
r6 r27 59 59 INTEGER numeqmin, numeqmax, numeq 60 60 DIMENSION ztcond_i(0:nlay_i), 61 & ze(0:nlay_i), 62 & ztc(0:nlay_i), 61 63 & zkappa_s(0:nlay_s), 62 64 & zkappa_i(0:nlay_i),ztstemp(0:nlay_s),ztitemp(0:nlay_i), … … 122 124 !------------------------------------------------------------------------------ 123 125 ! 124 ! Pringle et al., JGR 2007 formula 125 ! 2.11 + 0.09 S/T - 0.011.T 126 nn_thcond = 2 126 127 127 128 DO 10 ji = kideb, kiut 128 129 129 ! thermal conductivity inthe snow130 ! thermal conductivity of the snow 130 131 ykn(ji) = xkn 131 132 zkimin = 0.1 133 134 ! thermal conductivity of the sea ice 135 136 SELECT CASE ( nn_thcond ) 137 138 !--------------------------------------------------- 139 CASE(1) ! Pringle et al., JGR 2007 140 ! 2.11 + 0.09 S/T - 0.011.T 141 ! Empirical, direct measurements in sea ice 142 !--------------------------------------------------- 132 143 133 144 ztcond_i(0) = xkg + betak1*s_i_b(ji,1) 134 145 & / MIN( -zeps , t_i_b(ji,1) - tpw ) 135 146 & - betak2* ( t_i_b(ji,1) - tpw ) 136 ztcond_i(0) = MAX( ztcond_i(0) , zkimin )137 147 138 148 DO layer = 1, nlay_i-1 … … 142 152 & - betak2 * 0.5 * ( t_i_b(ji,layer) + ! bugfix fred dupont add 0.5 143 153 & t_i_b(ji,layer+1) - 2.0*tpw ) 144 ztcond_i(layer) = MAX( ztcond_i(layer) , zkimin )145 154 END DO 146 155 … … 148 157 & MIN( -zeps , t_bo_b(ji) - tpw ) 149 158 & - betak2 * ( t_bo_b(ji) - tpw ) 159 160 !--------------------------------------------------- 161 CASE(2) ! Mushy layer: k = ki . ( 1 - phi) + kbr . phi 162 ! Thermal conductivity of pure ice at interfaces from Yen (1991) 163 ! zki = 2.21 - 1.0e-2*ztc + 3.44e-5*ztc.^2 (Yen 1991) 164 ! Thermal conductivity of brine at interfaces (Castelli et al DSR 1974) 165 ! 0.55286 + 1.8364e-3 * TT - 3.3058e-7 * TT.^3 166 !--------------------------------------------------- 167 168 ! Brine fraction at layer mid-points 169 e_i_b(:) = -tmut * s_i_b(ji,:) / ( t_i_b(ji,:) - tpw ) 170 171 ! Brine fraction at interfaces 172 zde_dz = ( e_i_b(2) - e_i_b(1) ) / 173 & ( z_i_phy(2) - z_i_phy(1) ) 174 ze(0) = e_i_b(1) - zde_dz * deltaz_i_phy(1) / 2. 175 176 DO layer = 1, nlay_i - 1 177 zde_dz = ( e_i_b(layer+1) - e_i_b(layer) ) / 178 & ( z_i_phy(layer+1) - z_i_phy(layer) ) 179 ze(layer) = e_i_b(layer) + zde_dz * deltaz_i_phy(layer) / 2. 180 END DO 181 182 ze(nlay_i) = 1. 183 184 ! Temperature at interfaces 185 !!! ztc(0) could be better interpolated ... use effective conductivity ? 186 zdt_dz = ( t_i_b(ji,2) - t_i_b(ji,1) ) / 187 & ( z_i_phy(2) - z_i_phy(1) ) 188 ztc(0) = t_i_b(ji,1) - zdt_dz * deltaz_i_phy(1) / 2. 189 ztc(0) = ztc(0) - tpw 190 191 DO layer = 1, nlay_i - 1 192 zdt_dz = ( t_i_b(ji,layer+1) - t_i_b(ji,layer) ) / 193 & ( z_i_phy(layer+1) - z_i_phy(layer) ) 194 ztc(layer) = t_i_b(ji,layer) + 195 & zdt_dz * deltaz_i_phy(layer) / 2. 196 ztc(layer) = ztc(layer) - tpw 197 END DO 198 ztc(nlay_i) = t_bo_b(ji) - tpw 199 200 DO layer = 0, nlay_i 201 zt1 = ztc(layer) 202 zt2 = zt1*zt1 203 zt3 = zt1*zt2 204 zki = 2.2156 - 1.0045e-2*zt1 + 3.44520e-5*ztc2 205 zkbr = 0.55286 + 1.8364e-3*zt1 - 3.3058e-7*zt3 206 ztcond_i(layer) = zki * ( 1. - ze(layer) ) + zkbr * ze(layer) 207 END DO 208 209 END SELECT 210 211 ! Cap thermal conductivity to prevent small values 212 ztcond_i(0) = MAX( ztcond_i(0) , zkimin ) 213 DO layer = 0, nlay_i 214 ztcond_i(layer) = MAX( ztcond_i(layer) , zkimin ) 215 END DO 150 216 ztcond_i(nlay_i) = MAX( ztcond_i(nlay_i) , zkimin ) 151 217 … … 488 554 zindterm(numeqmin) = ztiold(1) + zeta_i(1)* 489 555 ! & (radab_phy_i(1) + radab_alg_i(1) 490 & ( radab_i(1) +556 & ( radab_i(1) 491 557 & + zkappa_i(1)*t_bo_b(ji) ) 492 558 & + t_su_b(ji)*zeta_i(1)*zkappa_i(0)*2.0
Note: See TracChangeset
for help on using the changeset viewer.