Ignore:
Timestamp:
Mar 30, 2009, 3:59:31 PM (16 years ago)
Author:
idelkadi
Message:

Correction bug (gravite=10) dans le schema de convection : cv3_routines
Utilisation du meme seuil dans calltherm et wake pour la vapeur d eau

Location:
LMDZ4/branches/LMDZ4-dev/libf/phylmd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/calltherm.F90

    r1026 r1139  
    126126         do k=1,klev
    127127            do i=1,klon
    128                logexpr2(i,k)=.not.q_seri(i,k).ge.0.
     128! Attention teste abderr 19-03-09
     129!               logexpr2(i,k)=.not.q_seri(i,k).ge.0.
     130                logexpr2(i,k)=.not.q_seri(i,k).ge.1.e-15
    129131               if (logexpr2(i,k)) then
    130132                q_seri(i,k)=1.e-15
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/cv3_routines.F

    r1127 r1139  
    29682968      do 503 il=1,ncum
    29692969      IF (iflag(il) .le. 1) THEN
     2970        if (cvflag_grav) then
     2971      ax=0.01*grav*ment(il,inb(il),inb(il))*(hp(il,inb(il))
     2972     : -h(il,inb(il))+t(il,inb(il))*(cpv-cpd)
     2973     : *(rr(il,inb(il))-qent(il,inb(il),inb(il))))
     2974     :  /(cpn(il,inb(il))*(ph(il,inb(il))-ph(il,inb(il)+1)))
     2975      ft(il,inb(il))=ft(il,inb(il))-ax
     2976      ft(il,inb(il)-1)=ft(il,inb(il)-1)+ax*cpn(il,inb(il))
     2977     :    *(ph(il,inb(il))-ph(il,inb(il)+1))/(cpn(il,inb(il)-1)
     2978     :    *(ph(il,inb(il)-1)-ph(il,inb(il))))
     2979
     2980      bx=0.01*grav*ment(il,inb(il),inb(il))*(qent(il,inb(il),inb(il))
     2981     :    -rr(il,inb(il)))/(ph(il,inb(il))-ph(il,inb(il)+1))
     2982      fr(il,inb(il))=fr(il,inb(il))-bx
     2983      fr(il,inb(il)-1)=fr(il,inb(il)-1)
     2984     :   +bx*(ph(il,inb(il))-ph(il,inb(il)+1))
     2985     :      /(ph(il,inb(il)-1)-ph(il,inb(il)))
     2986
     2987      cx=0.01*grav*ment(il,inb(il),inb(il))*(uent(il,inb(il),inb(il))
     2988     :       -u(il,inb(il)))/(ph(il,inb(il))-ph(il,inb(il)+1))
     2989      fu(il,inb(il))=fu(il,inb(il))-cx
     2990      fu(il,inb(il)-1)=fu(il,inb(il)-1)
     2991     :     +cx*(ph(il,inb(il))-ph(il,inb(il)+1))
     2992     :        /(ph(il,inb(il)-1)-ph(il,inb(il)))
     2993
     2994      dx=0.01*grav*ment(il,inb(il),inb(il))*(vent(il,inb(il),inb(il))
     2995     :      -v(il,inb(il)))/(ph(il,inb(il))-ph(il,inb(il)+1))
     2996      fv(il,inb(il))=fv(il,inb(il))-dx
     2997      fv(il,inb(il)-1)=fv(il,inb(il)-1)
     2998     :    +dx*(ph(il,inb(il))-ph(il,inb(il)+1))
     2999     :       /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3000       else
    29703001       ax=0.1*ment(il,inb(il),inb(il))*(hp(il,inb(il))
    29713002     : -h(il,inb(il))+t(il,inb(il))*(cpv-cpd)
     
    29973028     :    +dx*(ph(il,inb(il))-ph(il,inb(il)+1))
    29983029     :       /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3030       endif
    29993031      ENDIF    !iflag
    30003032503   continue
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/wake.F

    r1127 r1139  
    190190       REAL q0_min(klon),q1_min(klon)
    191191       LOGICAL wk_adv(klon), OK_qx_qw(klon)
    192        REAL epsilon
    193        DATA epsilon/1.e-9/
    194192
    195193c Autres variables internes
     
    10161014C   Scale tendencies so that water vapour remains positive in w and x.
    10171015C
    1018       call wake_vec_modulation(klon,klev,wk_adv,epsilon,qe,d_qe,deltaqw,
     1016      call wake_vec_modulation(klon,klev,wk_adv,qe,d_qe,deltaqw,
    10191017     $                d_deltaqw,sigmaw,d_sigmaw,alpha)
    10201018c
     
    15341532      END
    15351533
    1536       SUBROUTINE wake_vec_modulation(nlon,nl,wk_adv,epsilon,qe,d_qe,
     1534      SUBROUTINE wake_vec_modulation(nlon,nl,wk_adv,qe,d_qe,
    15371535     $           deltaqw,d_deltaqw,sigmaw,d_sigmaw,alpha)
    15381536c------------------------------------------------------
     
    15551553      REAL x,a,b,c,discrim,zeta(nlon)
    15561554      REAL epsilon
    1557 !      DATA epsilon/1.e-9/
     1555      DATA epsilon/1.e-15/
    15581556c
    15591557      DO k=1,nl
     
    15751573      b=d_qe(i,k)+(zeta(i)-sigmaw(i))*d_deltaqw(i,k)
    15761574     $           -deltaqw(i,k)*d_sigmaw(i)
    1577 !      c=qe(i,k)+(zeta(i)-sigmaw(i))*deltaqw(i,k)-epsilon
    1578        c=qe(i,k)+(zeta(i)-sigmaw(i))*deltaqw(i,k)
     1575      c=qe(i,k)+(zeta(i)-sigmaw(i))*deltaqw(i,k)-epsilon
     1576!       c=qe(i,k)+(zeta(i)-sigmaw(i))*deltaqw(i,k)
    15791577
    15801578      discrim=b*b-4.*a*c
Note: See TracChangeset for help on using the changeset viewer.