source: LMDZ.3.3/branches/rel-LF/libf/phylmd/tilft43.F @ 1089

Last change on this file since 1089 was 230, checked in by lmdzadmin, 23 years ago

Merge de la physique avec la branche principale
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 KB
RevLine 
[207]1c $Header$
[199]2        SUBROUTINE TLIFT43(P,T,Q,QS,GZ,ICB,NK,TVP,TPK,CLW,ND,NL,KK)
3        REAL GZ(ND),TPK(ND),CLW(ND),P(ND)
4        REAL T(ND),Q(ND),QS(ND),TVP(ND),LV0
5C
6C   ***   ASSIGN VALUES OF THERMODYNAMIC CONSTANTS     ***
7C
8c -- sb:
9c!      CPD=1005.7
10c!      CPV=1870.0
11c!      CL=4190.0
12c!      RV=461.5
13c!      RD=287.04
14c!      LV0=2.501E6
15c!      G=9.8
16c!      ROWL=1000.0
17c ajouts:
18#include "YOMCST.h"
19        CPD = RCPD
20        CPV = RCPV
21        CL = RCW
22        LV0 = RLVTT
23        G = RG
24        ROWL= RATM/100.
25        GRAVITY = RG !sb: Pr que gravite ne devienne pas humidite!
26C sb --
27C
28        CPVMCL=CL-CPV
29        EPS=RD/RV
30        EPSI=1./EPS
31C
32C   ***  CALCULATE CERTAIN PARCEL QUANTITIES, INCLUDING STATIC ENERGY   ***
33C
34        AH0=(CPD*(1.-Q(NK))+CL*Q(NK))*T(NK)+Q(NK)*(LV0-CPVMCL*(
35     1   T(NK)-273.15))+GZ(NK)
36        CPP=CPD*(1.-Q(NK))+Q(NK)*CPV
37        CPINV=1./CPP
38C
39        IF(KK.EQ.1)THEN
40C
41C   ***   CALCULATE LIFTED PARCEL QUANTITIES BELOW CLOUD BASE   ***
42C
43        DO 50 I=1,ICB-1
44         CLW(I)=0.0
45   50   CONTINUE
46        DO 100 I=NK,ICB-1
47         TPK(I)=T(NK)-(GZ(I)-GZ(NK))*CPINV
48         TVP(I)=TPK(I)*(1.+Q(NK)*EPSI)
49  100   CONTINUE
50        END IF
51C
52C    ***  FIND LIFTED PARCEL QUANTITIES ABOVE CLOUD BASE    ***
53C
54        NST=ICB
55        NSB=ICB
56        IF(KK.EQ.2)THEN 
57         NST=NL
58         NSB=ICB+1
59        END IF
60        DO 300 I=NSB,NST
61         TG=T(I)
62         QG=QS(I)
63         ALV=LV0-CPVMCL*(T(I)-273.15)
64         DO 200 J=1,2
65          S=CPD+ALV*ALV*QG/(RV*T(I)*T(I))
66          S=1./S
67          AHG=CPD*TG+(CL-CPD)*Q(NK)*T(I)+ALV*QG+GZ(I)
68          TG=TG+S*(AH0-AHG)
69          TG=MAX(TG,35.0)
70          TC=TG-273.15
71          DENOM=243.5+TC
72          IF(TC.GE.0.0)THEN 
73           ES=6.112*EXP(17.67*TC/DENOM)
74          ELSE 
75           ES=EXP(23.33086-6111.72784/TG+0.15215*LOG(TG))
76          END IF 
77          QG=EPS*ES/(P(I)-ES*(1.-EPS))
78  200    CONTINUE
79         ALV=LV0-CPVMCL*(T(I)-273.15)
80         TPK(I)=(AH0-(CL-CPD)*Q(NK)*T(I)-GZ(I)-ALV*QG)/CPD
81         CLW(I)=Q(NK)-QG
82         CLW(I)=MAX(0.0,CLW(I))
83         RG=QG/(1.-Q(NK))
84         TVP(I)=TPK(I)*(1.+RG*EPSI)
85  300   CONTINUE
86
87c -- sb:
88        RG = GRAVITY  ! RG redevient la gravite de YOMCST (sb)
89c sb --
90
91        RETURN
92        END
93
Note: See TracBrowser for help on using the repository browser.