| 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 | |
|---|