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