280 | | add the lecture of the new variable and its print in sbcmod.F90. |
281 | | |
282 | | '''namelist ==> DON'T FORGET TO add the new variable in the ref namelists !!! ''' |
| 280 | add the lecture of the new variable and its print in sbcmod.F90 and remove the old variable (betas) from ice.F90 |
| 281 | |
| 282 | '''namelist ==> DON'T FORGET TO add the new variable in the ocean ref namsbc namelists !!! ''' |
| 283 | '''namelist ==> DON'T FORGET TO remove betas from the lim3 ref namicethd namelists !!! ''' |
| 284 | |
| 285 | • '''limthd.F90 ''' : remove the lecture from namicethd namelist. Change the budget over lead from: |
| 286 | {{{ |
| 287 | zfontn = sprecip(ji,jj) * lfus ! energy of melting |
| 288 | zfnsol = qns(ji,jj) ! total non solar flux |
| 289 | qldif(ji,jj) = tms(ji,jj) * ( qsr(ji,jj) & |
| 290 | & + zfnsol + fdtcn(ji,jj) - zfontn & |
| 291 | & + ( 1.0 - zindb ) * fsbbq(ji,jj) ) & |
| 292 | & * ( 1.0 - at_i(ji,jj) ) * rdt_ice |
| 293 | }}} |
| 294 | to the following lines: (with za_i = at_i ; and za_o = 1 - at_i = pfrld |
| 295 | {{{ |
| 296 | ! snowfall is partitionned between leads and ice. If snow fall was uniform, |
| 297 | ! a fraction (1-at_i) would fall into leads but because of the winds, |
| 298 | ! more snow falls on leads than on sea ice. Therefore a greater fraction |
| 299 | ! (1-ai)**p (p=rn_psnw) of the total mass of snow (0< psnw < 1) falls in leads. |
| 300 | ! ! leads ! ice |
| 301 | ! NEW partition ! (1-ai)**p = zzc ! 1-(1-ai)**p = 1-zzc |
| 302 | ! OLD partition ! (1-ai) = za_o ! ai = za_i |
| 303 | ! difference ! zzc-za_o ! 1-zcc-za_i |
| 304 | ! NEW sprecp ! sprecip*zzc/za_o ! sprecip*(1-zzc)/za_i |
| 305 | ! new internal energy of snowfall over ice : qen_snw * (1-zzc)/za_i (idem sprecip) |
| 306 | ! Since the snow internal energy over lead associated with the OLD snow partitioning |
| 307 | ! has already been put in qns (see limblk_c..), we will update qns only with the |
| 308 | ! difference between new and old snowfall over lead : qen_snw*(zzc-za_o) |
| 309 | ! NB: In reality, psnw depends on wind speed, and should decrease with |
| 310 | ! increasing wind speed but here, it is considered as a constant. |
| 311 | ! An average value is 0.66 is suggested (Martin Vancoppenolle, personal comm. 2006) |
| 312 | |
| 313 | ! partitioning of snownfall : the snowfall over icy area is modified |
| 314 | zzc = za_o**betas |
| 315 | zzc_ice = sprecip(ji,jj) * ( 1.e0 - zzc ) / MAX( za_i, 1.e-20 ) * zinda |
| 316 | zzc_oce = sprecip(ji,jj) * zzc / MAX( za_o, 1.e-20 ) * ( 1.e0 - zinda ) |
| 317 | ! |
| 318 | sprecip(ji,jj) = zzc_ice * sprecip(ji,jj) ! update snowfall and its internal energy over icy area |
| 319 | qen_snw(ji,jj) = zzc_ice * qen_snw(ji,jj) ! (used only after over icy area) |
| 320 | |
| 321 | ! lead energy budget (qldif) except lateral accretion (done in limthd_lac) |
| 322 | qldif(ji,jj) = tms(ji,jj) * rdt_ice & ! over 1 time step |
| 323 | & * ( ( qsr(ji,jj) + qns(ji,jj) ) * za_o & ! total heat over lead |
| 324 | & (-?)+ qen_snw(ji,jj) * ( za_o - zcc ) & ! heat due to snowfall change |
| 325 | & + fdtcn(ji,jj) * za_o & ! turbulent ice-ocean heat |
| 326 | !!gm ? & + fdtcn(ji,jj) * za_i & ! turbulent ice-ocean heat |
| 327 | & + fsbbq(ji,jj) *( 1.- zindb ) * za_o ) ! residual heat from previous step |
| 328 | !!gm end |
| 329 | }}} |
| 330 | Notes : (1) we now update here the snow partition between ice and ocean. (2) both qen_snw and sprecip are modified: suppression of partitioning in other limthd_... modules. (3) the line starting with the comment '!!gm ?' is there to emphasise a potential '''BUG'''. Potential because I'm not completely sure. see just below. (4) this include a bug correction, see just below: |
| 331 | |
| 332 | '''BUG''' correction : In LIM-3 a betas exponent has been introduced when computing the solid precipitation over the sea ice. Part of the snow that falls over sea-ice is put in the lead areas by the wind. Nevertheless, the latent heat flux due to snow melting is computed with sprecip *(1-at_i) whereas the actual solid precipitation over lead area is sprecip*(1-at_i**betas). If betas /=1, some latent heat is missing (see the ticket open on that purpose #670). |
| 333 | |
| 334 | '''POTENTIAL BUG''' It seems to me that the among of heat exchange through turbulent fluxes between the ice and the ocean should be fdtcn(ji,jj) * za_i, and not fdtcn(ji,jj) * za_o. Indeed the ice-ocean surface of contact is proportional to at_i (=za_i), not za_o ! '''===>> TO BE CHECKED with Martin''' |
| 335 | |