1 | c $Header$ |
---|
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 |
---|
5 | C |
---|
6 | C *** ASSIGN VALUES OF THERMODYNAMIC CONSTANTS *** |
---|
7 | C |
---|
8 | c -- sb: |
---|
9 | c! CPD=1005.7 |
---|
10 | c! CPV=1870.0 |
---|
11 | c! CL=4190.0 |
---|
12 | c! RV=461.5 |
---|
13 | c! RD=287.04 |
---|
14 | c! LV0=2.501E6 |
---|
15 | c! G=9.8 |
---|
16 | c! ROWL=1000.0 |
---|
17 | c 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! |
---|
26 | C sb -- |
---|
27 | C |
---|
28 | CPVMCL=CL-CPV |
---|
29 | EPS=RD/RV |
---|
30 | EPSI=1./EPS |
---|
31 | C |
---|
32 | C *** CALCULATE CERTAIN PARCEL QUANTITIES, INCLUDING STATIC ENERGY *** |
---|
33 | C |
---|
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 |
---|
38 | C |
---|
39 | IF(KK.EQ.1)THEN |
---|
40 | C |
---|
41 | C *** CALCULATE LIFTED PARCEL QUANTITIES BELOW CLOUD BASE *** |
---|
42 | C |
---|
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 |
---|
51 | C |
---|
52 | C *** FIND LIFTED PARCEL QUANTITIES ABOVE CLOUD BASE *** |
---|
53 | C |
---|
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 | |
---|
87 | c -- sb: |
---|
88 | RG = GRAVITY ! RG redevient la gravite de YOMCST (sb) |
---|
89 | c sb -- |
---|
90 | |
---|
91 | RETURN |
---|
92 | END |
---|
93 | |
---|