Ignore:
Timestamp:
Nov 20, 2016, 10:54:34 PM (7 years ago)
Author:
fhourdin
Message:

Extraction du calcul de la reevaporation dans un sous programme.
Ajout des tendances par add_phys_tend.
Travail preparatoire a la conservation de l'energie.

File:
1 edited

Legend:

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

    r2692 r2705  
    5454       d_t_ajs_x,d_q_ajs_x, &
    5555       !
    56        d_t_eva,d_q_eva, &
     56       d_t_eva,d_q_eva,d_ql_eva,d_qi_eva, &
    5757       d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc, &
    5858       d_t_lscst,d_q_lscst, &
     
    19581958    ! Re-evaporer l'eau liquide nuageuse
    19591959    !
    1960     DO k = 1, klev  ! re-evaporation de l'eau liquide nuageuse
    1961        DO i = 1, klon
    1962           zlvdcp=RLVTT/RCPD/(1.0+RVTMP2*q_seri(i,k))
    1963           !jyg<
    1964           !  Attention : Arnaud a propose des formules completement differentes
    1965           !                  A verifier !!!
    1966           zlsdcp=RLSTT/RCPD/(1.0+RVTMP2*q_seri(i,k))
    1967           IF (iflag_ice_thermo .EQ. 0) THEN
    1968              zlsdcp=zlvdcp
    1969           ENDIF
    1970           !>jyg
    1971 
    1972           IF (iflag_ice_thermo.eq.0) THEN   
    1973              !pas necessaire a priori
    1974 
    1975              zdelta = MAX(0.,SIGN(1.,RTT-t_seri(i,k)))
    1976              zb = MAX(0.0,ql_seri(i,k))
    1977              za = - MAX(0.0,ql_seri(i,k)) &
    1978                   * (zlvdcp*(1.-zdelta)+zlsdcp*zdelta)
    1979              t_seri(i,k) = t_seri(i,k) + za
    1980              q_seri(i,k) = q_seri(i,k) + zb
    1981              ql_seri(i,k) = 0.0
    1982              d_t_eva(i,k) = za
    1983              d_q_eva(i,k) = zb
    1984 
    1985           ELSE
    1986 
    1987              !CR: on r\'e-\'evapore eau liquide et glace
    1988 
    1989              !        zdelta = MAX(0.,SIGN(1.,RTT-t_seri(i,k)))
    1990              !        zb = MAX(0.0,ql_seri(i,k))
    1991              !        za = - MAX(0.0,ql_seri(i,k)) &
    1992              !             * (zlvdcp*(1.-zdelta)+zlsdcp*zdelta)
    1993              zb = MAX(0.0,ql_seri(i,k)+qs_seri(i,k))
    1994              za = - MAX(0.0,ql_seri(i,k))*zlvdcp &
    1995                   - MAX(0.0,qs_seri(i,k))*zlsdcp
    1996              t_seri(i,k) = t_seri(i,k) + za
    1997              q_seri(i,k) = q_seri(i,k) + zb
    1998              ql_seri(i,k) = 0.0
    1999              !on \'evapore la glace
    2000              qs_seri(i,k) = 0.0
    2001              d_t_eva(i,k) = za
    2002              d_q_eva(i,k) = zb
    2003           ENDIF
    2004 
    2005        ENDDO
    2006     ENDDO
    2007     !IM
     1960     CALL reevap (klon,klev,iflag_ice_thermo,t_seri,q_seri,ql_seri,qs_seri, &
     1961   &         d_t_eva,d_q_eva,d_ql_eva,d_qi_eva)
     1962
     1963     CALL add_phys_tend &
     1964            (du0,dv0,d_t_eva,d_q_eva,d_ql_eva,d_qi_eva,paprs,&
     1965               'eva',abortphy,flag_inhib_tend)
     1966
    20081967    IF (ip_ebil_phy.ge.2) THEN
    20091968       ztit='after reevap'
Note: See TracChangeset for help on using the changeset viewer.