Changeset 2223 for LMDZ5


Ignore:
Timestamp:
Mar 10, 2015, 8:36:12 PM (10 years ago)
Author:
crio
Message:

Variation de qsat avec la température lors de la condensation grande-échelle:
Recalcul de la température après condensation au lieu d'utiliser la température Tbef calculée dans la boucle pour assurer la conservation de l'énergie malgré l'imprécision du calcul issu de la boucle de convergence.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/fisrtilp.F90

    r2205 r2223  
    783783        else if (iflag_fisrtilp_qsat.gt.0) then
    784784           DO i= 1, klon
    785              if (lognormale(i)) then
    786              zt(i)=Tbef(i)
    787              else
    788785             zt(i) = zt(i) + zcond(i) * RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zcond(i)))
    789              endif
    790786           ENDDO
    791787        endif
     
    800796!                                     t_glace_max, exposant_glace)
    801797              if (iflag_t_glace.eq.0) then
    802                     zfice(i) = 1.0 - (Tbef(i)-t_glace_min_old) / (RTT-t_glace_min_old)
     798                    zfice(i) = 1.0 - (zt(i)-t_glace_min_old) / (RTT-t_glace_min_old)
    803799                    zfice(i) = MIN(MAX(zfice(i),0.0),1.0)
    804800                    zfice(i) = zfice(i)**exposant_glace_old
     
    809805         else
    810806           DO i=1, klon
    811               if (lognormale(i)) then
    812                  zt(i)=Tbef(i)
    813               else
    814807! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod
    815808!              zfice(i) = icefrac_lsc(zt(i), t_glace_min, &
    816809!                                     t_glace_max, exposant_glace)
    817810              if (iflag_t_glace.eq.0) then
    818                     zfice(i) = 1.0 - (Tbef(i)-t_glace_min_old) / (RTT-t_glace_min_old)
     811                    zfice(i) = 1.0 - (zt(i)-t_glace_min_old) / (RTT-t_glace_min_old)
    819812                    zfice(i) = MIN(MAX(zfice(i),0.0),1.0)
    820813                    zfice(i) = zfice(i)**exposant_glace_old
     
    822815              zt(i) = zt(i) + (1.-zfice(i))*zcond(i) * RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zcond(i))) &
    823816                       +zfice(i)*zcond(i) * RLSTT/RCPD/(1.0+RVTMP2*(zq(i)+zcond(i)))
    824               endif
    825817           ENDDO
    826818         endif
Note: See TracChangeset for help on using the changeset viewer.