Ignore:
Timestamp:
Aug 31, 2016, 4:31:29 PM (8 years ago)
Author:
slebonnois
Message:

SL: Mise a jour de la haute atmosphere, du transfert radiatif (solaire=Rainer Haus; IR: reglages de juin 2016), et implementation des variations de temperature potentielle dans la basse atmosphere (variation de la masse molaire moyenne)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.F

    r1543 r1591  
    291291c        call coefkzmin(knon,ypaprs,ypplay,yu,yv,yt,ycoefm
    292292c    .   ,ycoefm0,ycoefh0)
    293 c      call dump2d(iim,jjm-1,ycoefm(2:klon-1,2), 'KZ         ')
    294 c      call dump2d(iim,jjm-1,ycoefm0(2:klon-1,2),'KZMIN      ')
     293c      call dump2d(nbp_lon,nbp_lat-2,ycoefm(2:klon-1,2), 'KZ         ')
     294c      call dump2d(nbp_lon,nbp_lat-2,ycoefm0(2:klon-1,2),'KZMIN      ')
    295295 
    296296         ycoefm0 = 1.e-3
     
    349349        ENDIF
    350350
    351 c   iflag_pbl peut etre utilise comme longuer de melange
     351c   iflag_pbl peut etre utilise comme longueur de melange
    352352
    353353         if (iflag_pbl.ge.11) then
     
    558558      PARAMETER (check=.false.)
    559559C
     560c----------------------
     561c ATMOSPHERE PROFONDE
     562      real p_lim,p_ref
     563      real rsmu_mod(klon,klev),zrsmu_mod(klon,klev)
     564      real ratio_mod(klon,klev)
     565! theta_mod = theta * ratio_mod => ratio_mod = mmm0/mmm(p)
     566
     567      p_lim = 6e6
     568      p_ref = 8.9e6
     569
     570      DO k = 1, klev
     571      DO i = 1, klon
     572        ratio_mod(i,k) = 1.
     573        rsmu_mod(i,k) = RD
     574       if (pplay(i,k).gt.p_lim) then
     575          ratio_mod(i,k) = RMD /
     576     &  (RMD+0.56*(log(pplay(i,k))-log(p_lim))/(log(p_ref)-log(p_lim)))
     577           ratio_mod(i,k) = max(ratio_mod(i,k),RMD/(RMD+0.56))
     578           rsmu_mod(i,k) = RD*ratio_mod(i,k)
     579       endif
     580      ENDDO
     581      ENDDO
     582c----------------------
     583
    560584      if (iflag_pbl.eq.1) then
    561585        do k = 3, klev
     
    584608      DO i = 1, knon
    585609            zt(i,k)    = (t(i,k)+t(i,k-1)) * 0.5
     610c----------------------
     611c ATMOSPHERE PROFONDE
     612            zrsmu_mod(i,k)    = (rsmu_mod(i,k)+rsmu_mod(i,k-1)) * 0.5
     613c----------------------
    586614      ENDDO
    587615      ENDDO
     
    612640      DO i = 1, knon
    613641         zx_coef(i,k) = coef(i,k)*RG/(pplay(i,k-1)-pplay(i,k))
    614      .                  *(paprs(i,k)/zt(i,k)/RD)**2
     642c----------------------
     643c ATMOSPHERE PROFONDE
     644     .                  *(paprs(i,k)/zt(i,k)/zrsmu_mod(i,k))**2
     645c----------------------
    615646         zx_coef(i,k) = zx_coef(i,k) * dtime*RG
    616647      ENDDO
    617648      ENDDO
    618649c
    619 c Preparer les flux lies aux contre-gardients
     650c Preparer les flux lies aux contre-gardients  OBSOLETE
    620651c
    621652      DO k = 2, klev
     
    9841015      DATA appel1er /.TRUE./
    9851016c
     1017c----------------------
     1018c ATMOSPHERE PROFONDE
     1019      real p_lim,p_ref
     1020      real modgam(klon,klev)
     1021
     1022      p_lim = 6e6
     1023      p_ref = 8.9e6
     1024
     1025      DO k = 1, klev
     1026      DO i = 1, klon
     1027        modgam(i,k) = 0.
     1028       if (pplay(i,k).gt.p_lim) then
     1029           modgam(i,k) = 0.56/(log(p_ref)-log(p_lim))/R
     1030       endif
     1031      ENDDO
     1032      ENDDO
     1033c----------------------
     1034
    9861035      isommet=klev
    9871036
     
    10451094            zmgeom(i,k)= zgeop(i,k)-zgeop(i,k-1)
    10461095            zdphi      = zmgeom(i,k)/2.
    1047             ztvd(i,k)  = (t(i,k)   + zdphi/cpdet(zt(i,k)))
    1048             ztvu(i,k)  = (t(i,k-1) - zdphi/cpdet(zt(i,k)))
     1096c----------------------
     1097c ATMOSPHERE PROFONDE
     1098            ztvd(i,k)  = t(i,k)   + zdphi*
     1099     &                      (1./cpdet(zt(i,k))+modgam(i,k))
     1100            ztvu(i,k)  = t(i,k-1) - zdphi*
     1101     &                      (1./cpdet(zt(i,k))+modgam(i,k))
     1102c----------------------
    10491103            zpk(i,k)   = ppk(i,k)*(paprs(i,k)/pplay(i,k))**RKAPPA
    10501104      ENDDO
     
    10541108        zt(i,1)   = ts(i)
    10551109        ztvu(i,1) = ts(i)
    1056         ztvd(i,1) = t(i,1)+zgeop(i,1)/cpdet(zt(i,1))
     1110c----------------------
     1111c ATMOSPHERE PROFONDE
     1112        ztvd(i,1) = t(i,1)+zgeop(i,1)*
     1113     &                      (1./cpdet(zt(i,1))+modgam(i,1))
     1114c----------------------
    10571115        zpk(i,1)  = ppk(i,1)*(paprs(i,1)/pplay(i,1))**RKAPPA
    10581116      ENDDO
Note: See TracChangeset for help on using the changeset viewer.