Changeset 2109 for LMDZ5/trunk


Ignore:
Timestamp:
Aug 22, 2014, 12:22:58 PM (10 years ago)
Author:
jbmadeleine
Message:

nettoyage de icefrac_lsc: les paramètres t_glace_min, t_glace_max et
exposant_glace sont à présents chargés à partir de nuage.h et non
donnés en argument;

cleaning of icefrac_lsc: parameters t_glace_min, t_glace_max and
exposant_glace are loaded from the nuage.h file instead of being
given as arguments;

Location:
LMDZ5/trunk/libf/phylmd
Files:
4 edited

Legend:

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

    r2086 r2109  
    1313  !
    1414  USE dimphy
    15   USE icefrac_lsc_mod ! cloud microphysics (JBM 3/14)
     15  USE icefrac_lsc_mod ! compute ice fraction (JBM 3/14)
    1616  IMPLICIT none
    1717  !======================================================================
     
    651651!                 zfice(i) = zfice(i)**nexpo
    652652                 if (iflag_t_glace.eq.1) then
    653                  CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), &
    654                       t_glace_min,t_glace_max,exposant_glace,zfice(:))
     653                 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:))
    655654                 endif
    656655
     
    793792     ELSE
    794793         if (iflag_t_glace.eq.1) then
    795             CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), &
    796                  t_glace_min,t_glace_max,exposant_glace,zfice(:))
     794            CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:))
    797795         endif
    798796         if (iflag_fisrtilp_qsat.lt.1) then
    799797           DO i = 1, klon
    800 ! JBM: icefrac_lsc is now a function contained in microphys_mod
     798! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod
    801799!              zfice(i) = icefrac_lsc(zt(i), t_glace_min, &
    802800!                                     t_glace_max, exposant_glace)
     
    814812                 zt(i)=Tbef(i)
    815813              else
    816 ! JBM: icefrac_lsc is now a function contained in microphys_mod
     814! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod
    817815!              zfice(i) = icefrac_lsc(zt(i), t_glace_min, &
    818816!                                     t_glace_max, exposant_glace)
     
    853851         ENDDO
    854852       ELSE ! of IF (iflag_t_glace.EQ.0)
    855          CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1), &
    856                t_glace_min,t_glace_max,exposant_glace,zfice(:))
     853         CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:))
    857854!         DO i = 1, klon
    858855!            IF (rneb(i,k).GT.0.0) THEN
    859 ! JBM: icefrac_lsc is now a function contained in microphys_mod
     856! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod
    860857!              zfice(i) = icefrac_lsc(zt(i), t_glace_min, &
    861858!                                     t_glace_max, exposant_glace)
  • LMDZ5/trunk/libf/phylmd/icefrac_lsc_mod.F90

    r2077 r2109  
    44MODULE icefrac_lsc_mod
    55
     6IMPLICIT NONE
     7
    68CONTAINS
    79!*******************************************************************
    810
    9 SUBROUTINE icefrac_lsc(np,temp, sig, tmin, tmax, nexpo,icefrac)
    10   IMPLICIT NONE
     11SUBROUTINE icefrac_lsc(np,temp, sig, icefrac)
    1112  !
    1213  ! Compute the ice fraction 1-xliq (see e.g.
    1314  ! Doutriaux-Boucher & Quaas 2004, section 2.2.)
    1415  !
    15   ! (JBM 3/14)
     16  ! (JBM 3/14 8/14)
     17 
     18  INCLUDE "nuage.h"
     19
     20  ! nuage.h contains:
     21  ! t_glace_min: if T < Tmin, the cloud is only made of water ice
     22  ! t_glace_max: if T > Tmax, the cloud is only made of liquid water
     23  ! exposant_glace: controls the sharpness of the transition
    1624  INTEGER :: np
    1725  REAL, DIMENSION(np), INTENT(IN) :: temp ! temperature
     
    1927  REAL, DIMENSION(np), INTENT(OUT) :: icefrac
    2028
    21   REAL :: tmin ! if T < Tmin, the cloud is only made of water ice
    22   REAL :: tmax ! if T > Tmax, the cloud is only made of liquid water
    23   REAL :: nexpo ! controls the sharpness of the transition
    2429  REAL :: sig0,www,tmin_tmp,icefrac_tmp
    2530  INTEGER :: ip
     
    2934  DO ip=1,np
    3035     www=(max(sig(ip)-sig0,0.))/(1.-sig0) ! w=1 at the surface and 0 for sig < sig0
    31      tmin_tmp=www*tmax+(1.-www)*tmin
    32      icefrac_tmp= 1.0 - (temp(ip)-tmin_tmp) / (tmax-tmin_tmp)
     36     tmin_tmp=www*t_glace_max+(1.-www)*t_glace_min
     37     icefrac_tmp= 1.0 - (temp(ip)-tmin_tmp) / (t_glace_max-tmin_tmp)
    3338     icefrac_tmp = MIN(MAX(icefrac_tmp,0.0),1.0)
    34      icefrac(ip) = icefrac_tmp**nexpo
     39     icefrac(ip) = icefrac_tmp**exposant_glace
    3540  ENDDO
    3641
  • LMDZ5/trunk/libf/phylmd/newmicro.F90

    r2077 r2109  
    1212    reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra
    1313  USE phys_state_var_mod, ONLY: rnebcon, clwcon
    14   USE icefrac_lsc_mod ! cloud microphysics (JBM 3/14)
     14  USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14)
    1515  IMPLICIT NONE
    1616  ! ======================================================================
     
    202202  ELSE ! of IF (iflag_t_glace.EQ.0)
    203203    DO k = 1, klev
    204         CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1), &
    205 &               t_glace_min,t_glace_max,exposant_glace,zfice(:,k))
     204        CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:,k))
    206205 
    207206
    208         ! JBM: icefrac_lsc is now a function contained in microphys_mod
     207        ! JBM: icefrac_lsc is now contained icefrac_lsc_mod
    209208!       zfice(i, k) = icefrac_lsc(t(i,k), t_glace_min, &
    210209!                                 t_glace_max, exposant_glace)
  • LMDZ5/trunk/libf/phylmd/nuage.F90

    r2077 r2109  
    55    cldtaupi, re, fl)
    66  USE dimphy
    7   USE icefrac_lsc_mod ! cloud microphysics (JBM 3/14)
     7  USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14)
    88  IMPLICIT NONE
    99  ! ======================================================================
     
    105105       ENDDO
    106106     ELSE ! of IF (iflag_t_glace.EQ.0)
    107 ! JBM: icefrac_lsc is now a function contained in microphys_mod
     107! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod
    108108!       zfice(i) = icefrac_lsc(t(i,k), t_glace_min, &
    109109!                           t_glace_max, exposant_glace)
    110          CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1), &
    111 &               t_glace_min,t_glace_max,exposant_glace,zfice(:))
     110         CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:))
    112111     ENDIF
    113112
Note: See TracChangeset for help on using the changeset viewer.