Changeset 1923


Ignore:
Timestamp:
Jan 6, 2014, 5:07:02 PM (10 years ago)
Author:
lguez
Message:

Replace test on level index (which was probably tailored for a vertical grid with 19 levels) by test on sigma = pressure / surface_pressure.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/conflx.F

    r1907 r1923  
    1818c         et lessivage des traceurs passifs.
    1919c======================================================================
    20 cym#include "dimensions.h"
    21 cym#include "dimphy.h"
    22 #include "YOMCST.h"
    23 #include "YOETHF.h"
     20c     yminclude "dimensions.h"
     21c     yminclude "dimphy.h"
     22      include "YOMCST.h"
     23      include "YOETHF.h"
    2424c Entree:
    2525      REAL dtime            ! pas d'integration (s)
     
    7777      REAL zdelta, zqsat
    7878c
    79 #include "FCTTRE.h"
     79      include "FCTTRE.h"
    8080c
    8181c initialiser les variables de sortie (pour securite)
     
    207207
    208208      RETURN
    209       END
     209      END subroutine conflx
    210210c--------------------------------------------------------------------
    211211      SUBROUTINE flxmain(pdtime, pten, pqen, pqsen, pqhfl, pap, paph,
     
    218218      IMPLICIT none
    219219C     ------------------------------------------------------------------
    220 cym#include "dimensions.h"
    221 cym#include "dimphy.h"
    222 #include "YOMCST.h"
    223 #include "YOETHF.h"
    224 #include "YOECUMF.h"
     220c     yminclude "dimensions.h"
     221c     yminclude "dimphy.h"
     222      include "YOMCST.h"
     223      include "YOETHF.h"
     224      include "YOECUMF.h"
    225225C     ----------------------------------------------------------------
    226226      REAL pten(klon,klev), pqen(klon,klev), pqsen(klon,klev)
     
    502502 1000 CONTINUE
    503503      RETURN
    504       END
     504      END SUBROUTINE flxmain
    505505      SUBROUTINE flxini(pten, pqen, pqsen, pgeo, paph, pgeoh, ptenh,
    506506     .           pqenh, pqsenh, ptu, pqu, ptd, pqd, pmfd, pmfds, pmfdq,
     
    514514C AND INITIALIZES VALUES FOR UPDRAFTS
    515515C----------------------------------------------------------------------
    516 cym#include "dimensions.h"
    517 cym#include "dimphy.h"
    518 #include "YOMCST.h"
    519 #include "YOETHF.h"
     516c     yminclude "dimensions.h"
     517c     yminclude "dimphy.h"
     518      include "YOMCST.h"
     519      include "YOETHF.h"
    520520C
    521521      REAL pten(klon,klev)   ! temperature (environnement)
     
    630630C
    631631      RETURN
    632       END
     632      END SUBROUTINE flxini
    633633      SUBROUTINE flxbase(ptenh, pqenh, pgeoh, paph,
    634634     *     ptu, pqu, plu, ldcum, kcbot, klab)
     
    646646C (NON ENTRAINING PLUME,I.E.CONSTANT MASSFLUX)
    647647C----------------------------------------------------------------------
    648 cym#include "dimensions.h"
    649 cym#include "dimphy.h"
    650 #include "YOMCST.h"
    651 #include "YOETHF.h"
     648c     yminclude "dimensions.h"
     649c     yminclude "dimphy.h"
     650      include "YOMCST.h"
     651      include "YOETHF.h"
    652652C       ----------------------------------------------------------------
    653653      REAL ptenh(klon,klev), pqenh(klon,klev)
     
    712712c
    713713      RETURN
    714       END
     714      END SUBROUTINE flxbase
    715715      SUBROUTINE flxasc(pdtime, ptenh, pqenh, pten, pqen, pqsen,
    716716     .     pgeo, pgeoh, pap, paph, pqte, pvervel,
     
    725725C FOR CUMULUS PARAMETERIZATION
    726726C----------------------------------------------------------------------
    727 cym#include "dimensions.h"
    728 cym#include "dimphy.h"
    729 #include "YOMCST.h"
    730 #include "YOETHF.h"
    731 #include "YOECUMF.h"
     727c     yminclude "dimensions.h"
     728c     yminclude "dimphy.h"
     729      include "YOMCST.h"
     730      include "YOETHF.h"
     731      include "YOECUMF.h"
    732732C
    733733      REAL pdtime
     
    763763      REAL zwmax(klon), zzzmb
    764764      INTEGER klwmin(klon) ! level of maximum vertical velocity
     765      real fact
    765766C----------------------------------------------------------------------
    766767      ztglace = RTT - 13.
     
    835836      DO 480 k = klev-1,3,-1
    836837c
    837       IF (LMFMID .AND. k.LT.klev-1 .AND. k.GT.klev/2) THEN
     838      IF (LMFMID .AND. k.LT.klev-1) THEN
    838839         DO i = 1, klon
    839840         IF (.NOT.ldcum(i) .AND. klab(i,k+1).EQ.0 .AND.
    840      .       pqen(i,k).GT.0.9*pqsen(i,k)) THEN
     841     .       pqen(i,k).GT.0.9*pqsen(i,k)
     842     $           .and. pap(i, k) / paph(i, klev + 1)> 0.4) THEN
    841843            ptu(i,k+1) = pten(i,k) +(pgeo(i,k)-pgeoh(i,k+1))/RCPD
    842844            pqu(i,k+1) = pqen(i,k)
     
    893895         llo1=pen_u(i,k).GT.0..AND.(ktype(i).EQ.1.OR.ktype(i).EQ.2)
    894896         IF(llo1) THEN
    895             zentr=zentr*(1.+3.*(1.-MIN(1.,(zpbot(i)-pap(i,k))/1.5E4)))
    896             pen_u(i,k)=pen_u(i,k)*(1.+3.*(1.-MIN(1.,
    897      .                 (zpbot(i)-pap(i,k))/1.5E4)))
    898             pde_u(i,k)=pde_u(i,k)*(1.+3.*(1.-MIN(1.,
    899      .                 (zpbot(i)-pap(i,k))/1.5E4)))
     897            fact=1.+3.*(1.-MIN(1.,(zpbot(i)-pap(i,k))/1.5E4))
     898            zentr=zentr*fact
     899            pen_u(i,k)=pen_u(i,k)*fact
     900            pde_u(i,k)=pde_u(i,k)*fact
    900901         ENDIF
    901902         IF(llo2.AND.pqenh(i,k+1).GT.1.E-5)
     
    10171018  800 CONTINUE
    10181019      RETURN
    1019       END
     1020      END SUBROUTINE flxasc
    10201021      SUBROUTINE flxflux(pdtime, pqen, pqsen, ptenh, pqenh, pap
    10211022     .  ,  paph, ldland, pgeoh, kcbot, kctop, lddraf, kdtop
     
    10301031C FLUXES IN THE CLOUD LAYER AND IN THE SUBCLOUD LAYER
    10311032C----------------------------------------------------------------------
    1032 cym#include "dimensions.h"
    1033 cym#include "dimphy.h"
    1034 #include "YOMCST.h"
    1035 #include "YOETHF.h"
    1036 #include "YOECUMF.h"
     1033c     yminclude "dimensions.h"
     1034c     yminclude "dimphy.h"
     1035      include "YOMCST.h"
     1036      include "YOETHF.h"
     1037      include "YOECUMF.h"
     1038      include "iniprint.h"
    10371039C
    10381040      REAL cevapcu(klon,klev)
     
    10681070      INTEGER kdtop(klon)
    10691071c
    1070 #include "FCTTRE.h"
     1072      include "FCTTRE.h"
    10711073c
    10721074      DO 101 k=1,klev
     
    12551257            pdpmel(i,k) = 0.0
    12561258         ENDIF         
    1257          if (pmflxr(i,k) + pmflxs(i,k).lt.-1.e-26)
     1259         if (pmflxr(i,k) + pmflxs(i,k) < -1.e-26 .and. prt_level >= 1)
    12581260     .    write(*,*) 'precip. < 1e-16 ',pmflxr(i,k) + pmflxs(i,k)
    12591261      ENDIF
     
    12671269c
    12681270      RETURN
    1269       END
     1271      END SUBROUTINE flxflux
    12701272      SUBROUTINE flxdtdq(pdtime, ktopm2, paph, ldcum, pten
    12711273     .  ,  pmfus, pmfds, pmfuq, pmfdq, pmful, pdmfup, pdmfdp
     
    12761278c calculer les tendances T et Q
    12771279c----------------------------------------------------------------------
    1278 cym#include "dimensions.h"
    1279 cym#include "dimphy.h"
    1280 #include "YOMCST.h"
    1281 #include "YOETHF.h"
    1282 #include "YOECUMF.h"
     1280c     yminclude "dimensions.h"
     1281c     yminclude "dimphy.h"
     1282      include "YOMCST.h"
     1283      include "YOETHF.h"
     1284      include "YOECUMF.h"
    12831285C     -----------------------------------------------------------------
    12841286      LOGICAL  llo1
     
    13391341C
    13401342      RETURN
    1341       END
     1343      END SUBROUTINE flxdtdq
    13421344      SUBROUTINE flxdlfs(ptenh, pqenh, pgeoh, paph, ptu, pqu,
    13431345     .     ldcum, kcbot, kctop, pmfub, prfl, ptd, pqd,
     
    13611363C MOIST ENVIRONMENTAL AIR AND CLOUD AIR.
    13621364C----------------------------------------------------------------------
    1363 cym#include "dimensions.h"
    1364 cym#include "dimphy.h"
    1365 #include "YOMCST.h"
    1366 #include "YOETHF.h"
    1367 #include "YOECUMF.h"
     1365c     yminclude "dimensions.h"
     1366c     yminclude "dimphy.h"
     1367      include "YOMCST.h"
     1368      include "YOETHF.h"
     1369      include "YOECUMF.h"
    13681370C
    13691371      REAL ptenh(klon,klev)
     
    14511453C
    14521454      RETURN
    1453       END
     1455      END SUBROUTINE flxdlfs
    14541456      SUBROUTINE flxddraf(ptenh, pqenh, pgeoh, paph, prfl,
    14551457     .           ptd, pqd, pmfd, pmfds, pmfdq, pdmfdp,
     
    14731475C
    14741476C----------------------------------------------------------------------
    1475 cym#include "dimensions.h"
    1476 cym#include "dimphy.h"
    1477 #include "YOMCST.h"
    1478 #include "YOETHF.h"
    1479 #include "YOECUMF.h"
     1477c     yminclude "dimensions.h"
     1478c     yminclude "dimphy.h"
     1479      include "YOMCST.h"
     1480      include "YOETHF.h"
     1481      include "YOECUMF.h"
    14801482C
    14811483      REAL ptenh(klon,klev), pqenh(klon,klev)
     
    15691571  180 CONTINUE
    15701572      RETURN
    1571       END
     1573      END SUBROUTINE flxddraf
    15721574      SUBROUTINE flxadjtq(pp, pt, pq, ldflag, kcall)
    15731575      USE dimphy
     
    15811583C        kcall=2  EVAPORATION IN DOWNDRAFTS (E.G. CUDLFS,CUDDRAF)
    15821584C
    1583 cym#include "dimensions.h"
    1584 cym#include "dimphy.h"
    1585 #include "YOMCST.h"
     1585c     yminclude "dimensions.h"
     1586c     yminclude "dimphy.h"
     1587      include "YOMCST.h"
    15861588C
    15871589      REAL pt(klon), pq(klon), pp(klon)
     
    15931595      REAL zdelta, zcvm5, zldcp, zqsat, zcor
    15941596      INTEGER is, i
    1595 #include "YOETHF.h"
    1596 #include "FCTTRE.h"
     1597      include "YOETHF.h"
     1598      include "FCTTRE.h"
    15971599C
    15981600      z5alvcp = r5les*RLVTT/RCPD
     
    16481650  230 CONTINUE
    16491651      RETURN
    1650       END
     1652      END SUBROUTINE flxadjtq
    16511653      SUBROUTINE flxsetup
    16521654      IMPLICIT none
     
    16541656C     THIS ROUTINE DEFINES DISPOSABLE PARAMETERS FOR MASSFLUX SCHEME
    16551657C
    1656 #include "YOECUMF.h"
     1658      include "YOECUMF.h"
    16571659C
    16581660      ENTRPEN=1.0E-4  ! ENTRAINMENT RATE FOR PENETRATIVE CONVECTION
     
    16741676c
    16751677      RETURN
    1676       END
     1678      END SUBROUTINE flxsetup
Note: See TracChangeset for help on using the changeset viewer.