Changeset 2800 for trunk/LMDZ.MARS


Ignore:
Timestamp:
Oct 13, 2022, 5:04:49 PM (2 years ago)
Author:
mvals
Message:

Mars GCM:
watercloud_mod.F: implementation of the HDO ice and vapor fluxes computation in the case of supersat=false.
MV

Location:
trunk/LMDZ.MARS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r2790 r2800  
    37423742 - atm_wat_profile = -1 : water vapor and ice are free in the column. This is the default mode of the 1d model which conserves total water tracers (qsurf + watercap + h2o_ice + h2o_vap)
    37433743 - atm_wat_profile = 0 : dry atmosphere, where q(h2o_ice) = q(h2o_vap) = 0.
     3744
     3745== 13/10/2022 == MV
     3746watercloud_mod.F: implementation of the HDO ice and vapor fluxes computation in the case of supersat=false.
  • trunk/LMDZ.MARS/libf/phymars/watercloud_mod.F

    r2616 r2800  
    115115     
    116116      !$OMP THREADPRIVATE(firstcall)
    117 
     117! HDO cycle
     118      REAL :: alpha(ngrid,nlay) ! fractionation coefficient for HDO
    118119! Representation of sub-grid water ice clouds A. Pottier 2013
    119120      REAL :: ztclf(ngrid, nlay)
     
    586587             pdqcloud(ig,l,igcm_h2o_ice) =
    587588     &         -pdqcloud(ig,l,igcm_h2o_vap)
     589!            !! HDO ice flux has to be modified in consequence
     590             IF (hdo) THEN
     591!               !! Logically only condensation can happen in this case
     592               IF (pdqcloud(ig,l,igcm_h2o_ice) .gt. 0.0) THEN
     593                 IF ( zq0(ig,l,igcm_h2o_vap) .gt. qperemin ) THEN
     594             alpha(ig,l) = exp(13525./zt(ig,l)**2.-5.59d-2)
     595             pdqcloud(ig,l,igcm_hdo_ice) =
     596     &         pdqcloud(ig,l,igcm_h2o_ice)*alpha(ig,l)*
     597     &         ( zq0(ig,l,igcm_hdo_vap)
     598     &           /zq0(ig,l,igcm_h2o_vap) )
     599             pdqcloud(ig,l,igcm_hdo_ice) =
     600     &            min(pdqcloud(ig,l,igcm_hdo_ice),
     601     &              zq0(ig,l,igcm_hdo_vap)/ptimestep)
     602                 ELSE
     603             pdqcloud(ig,l,igcm_hdo_ice) = 0.
     604                 ENDIF
     605               !! sublimation
     606               ELSE
     607                 IF ( zq0(ig,l,igcm_h2o_ice) .gt. qperemin ) THEN
     608             pdqcloud(ig,l,igcm_hdo_ice) =
     609     &         pdqcloud(ig,l,igcm_h2o_ice)*
     610     &         ( zq0(ig,l,igcm_hdo_ice)
     611     &           /zq0(ig,l,igcm_h2o_ice) )
     612             pdqcloud(ig,l,igcm_hdo_ice) =
     613     &          max(pdqcloud(ig,l,igcm_hdo_ice),
     614     &            -zq0(ig,l,igcm_hdo_ice)/ptimestep)
     615                 ELSE
     616             pdqcloud(ig,l,igcm_hdo_ice) = 0.
     617                 ENDIF
     618               ENDIF !IF (pdqcloud(ig,l,igcm_h2o_ice).gt.0.)
     619             pdqcloud(ig,l,igcm_hdo_vap) =
     620     &            -pdqcloud(ig,l,igcm_hdo_ice)
     621             ENDIF !IF (hdo)
    588622             ! no need to correct ccn_number, updaterad can handle this properly.
    589623          ENDIF
Note: See TracChangeset for help on using the changeset viewer.