Push notifications in your browser are not yet configured.
You are not logged in, you may not see all content and functionalities. If you have an account, please login .
Wrong LHFL_S calculation in the case of sublimation
The calculation of lhfl_s in slow_tendencies.f90 and in src_slow_tendencies_rk.f90 is wrong in the case of sublimation. Since lhfl_s is only computed for the output of LHFL _S and ALHFL _S this does not affect any other variable. I suggest
lhfl_s(i,j) = lh_v*qvsflx(i,j) ! Account for lake ice (FLake is used AND lake point AND lake ice exists) IF (llake) THEN IF( (depth_lk(i,j) > 0.0_ireals) .AND. & (h_ice(i,j,nnow) >= h_Ice_min_flk) ) THEN lhfl_s(i,j) = lhfl_s(i,j) + lh_f * qvsflx(i,j) ENDIF ENDIF ! Account for sea ice (sea ice scheme is used AND sea point AND sea ice exists) IF (lseaice) THEN IF( (lseamask(i,j)) .AND. & (h_ice(i,j,nnow) > 0.0_ireals) ) THEN lhfl_s(i,j) = lhfl_s(i,j) + lh_f * qvsflx(i,j) ENDIF ENDIF ! Account for frozen land surface (land point AND frozen surface) IF( (llandmask(i,j)) .AND. & (t_s(i,j,nnow) < t0_melt) ) THEN lhfl_s(i,j) = lhfl_s(i,j) + lh_f * qvsflx(i,j) ENDIFas a replacement of
lhfl_s(i,j) = lh_v*qvsflx(i,j)in src_slow_tendencies_rk.f90 and of
lhfl_s(i,j) = lh_v*qvsflx(i,j) ! Account for lake ice (FLake is used AND lake point AND lake ice exists) IF (llake) THEN IF( (depth_lk(i,j) > 0.0_ireals) .AND. & (h_ice(i,j,nnow) >= h_Ice_min_flk) ) THEN ! Add latent heat of fusion lhfl_s(i,j) = lhfl_s(i,j) + lh_f * qvsflx(i,j) ! No change otherwise, but is that true for sea ice? END IF ENDIFin slow_tendencies.f90 since this replacement would yield a calculation of lhfl_s that is consistent with the corresponding calculations in TERRA , FLake, and the sea ice scheme.
Hi Stefan,
sounds, at a first quick glance, reasonable, especially if one realizes that the case of “frozen lakes” had already been
taken into account in slow_tendencies.f90, but not in src_slow_tendencies_rk.f90.
Did you already perform calculations with the changed version and check how large the effect on the
results for latent heat fluxes for “frozen” conditions is?
Did you discuss it already with the responsible persons at DWD ?
Hans-Jürgen
If I am not completely wrong the effect should be an increase of the latent heat flux over the “frozen/icy” surfaces
by about 13% (0.13 =lh_f/lh_v= 0.33E6/2.5E6). Correct?
Hans-Jürgen
Hi Stefan,
thanks for this info, since I am using a separate sea-ice module, I haven’t noticed this error in the code. But you are absolutely right.
But I think in case of lake/sea-ice the latent heat of vapourisation and of fusion needs to be added (if I am not missing the fact that lh_v is somewhere integrated in qvsflx or lhfl_s already, then ignore this comment):
lhfl_s(i,j) = lhfl_s(i,j) + (lh_f+lh_v) * qvsflx(i,j)
at least this is what I am using in the separate sea-ice module.
Hi All,
@ Hans-Jürgen: I shortly discussed the issue with Ekaterina Machulskaya and I will speak to her again. I agree with your discussion of the effect in the case of sublimation.
@ Oliver: The addition of lh_f and lh_v in the case of sublimation is just what the suggested code does. (I guess you overlooked its first line?!)
Cheers,
Stefan
On the behalf of Uli Blahak:
Hi all,
I forwarded the code correction to Jürgen Helmert, Bodo Ritter and Jan-Peter Schulz
and wait for their response.
Personally I also think that this should be fixed in the proposed way. Jürgen, your
13 % estimate for the difference is correct.
I just think that the correction parts for sea ice and frozen land points should
also be integrated in slow_tendencies.f90 (Leapfrog) for consistency with RK
(src_slow_tendencies_rk.f90)
Best regards,
Uli
Hi Uli,
Stefan proposed the changes for both modules, src_slow_tendencies_rk.f90 and slow_tendencies.f90
Hans-Jürgen