1 |
|
|
! |
2 |
|
|
! $Header$ |
3 |
|
|
! |
4 |
|
|
! |
5 |
|
|
! |
6 |
|
|
|
7 |
|
288 |
subroutine q_sat(np,temp,pres,qsat) |
8 |
|
|
! |
9 |
|
|
IMPLICIT none |
10 |
|
|
!====================================================================== |
11 |
|
|
! Autheur(s): Z.X. Li (LMD/CNRS) |
12 |
|
|
! reecriture vectorisee par F. Hourdin. |
13 |
|
|
! Objet: calculer la vapeur d'eau saturante (formule Centre Euro.) |
14 |
|
|
!====================================================================== |
15 |
|
|
! Arguments: |
16 |
|
|
! kelvin---input-R: temperature en Kelvin |
17 |
|
|
! millibar--input-R: pression en mb |
18 |
|
|
! |
19 |
|
|
! q_sat----output-R: vapeur d'eau saturante en kg/kg |
20 |
|
|
!====================================================================== |
21 |
|
|
! |
22 |
|
|
integer np |
23 |
|
|
REAL temp(np),pres(np),qsat(np) |
24 |
|
|
! |
25 |
|
|
REAL r2es |
26 |
|
|
PARAMETER (r2es=611.14 *18.0153/28.9644) |
27 |
|
|
! |
28 |
|
|
REAL r3les, r3ies, r3es |
29 |
|
|
PARAMETER (R3LES=17.269) |
30 |
|
|
PARAMETER (R3IES=21.875) |
31 |
|
|
! |
32 |
|
|
REAL r4les, r4ies, r4es |
33 |
|
|
PARAMETER (R4LES=35.86) |
34 |
|
|
PARAMETER (R4IES=7.66) |
35 |
|
|
! |
36 |
|
|
REAL rtt |
37 |
|
|
PARAMETER (rtt=273.16) |
38 |
|
|
! |
39 |
|
|
REAL retv |
40 |
|
|
PARAMETER (retv=28.9644/18.0153 - 1.0) |
41 |
|
|
|
42 |
|
|
real zqsat |
43 |
|
|
integer ip |
44 |
|
|
! |
45 |
|
|
! ------------------------------------------------------------------ |
46 |
|
|
! |
47 |
|
|
! |
48 |
|
|
|
49 |
✓✓ |
11164896 |
do ip=1,np |
50 |
|
|
|
51 |
|
|
! write(*,*)'kelvin,millibar=',kelvin,millibar |
52 |
|
|
! write(*,*)'temp,pres=',temp(ip),pres(ip) |
53 |
|
|
! |
54 |
✓✓ |
11164608 |
IF (temp(ip) .LE. rtt) THEN |
55 |
|
|
r3es = r3ies |
56 |
|
|
r4es = r4ies |
57 |
|
|
ELSE |
58 |
|
|
r3es = r3les |
59 |
|
|
r4es = r4les |
60 |
|
|
ENDIF |
61 |
|
|
! |
62 |
|
11164608 |
zqsat=r2es/pres(ip)*EXP(r3es*(temp(ip)-rtt)/(temp(ip)-r4es)) |
63 |
|
11164608 |
zqsat=MIN(0.5,ZQSAT) |
64 |
|
11164608 |
zqsat=zqsat/(1.-retv *zqsat) |
65 |
|
|
! |
66 |
|
11164896 |
qsat(ip)= zqsat |
67 |
|
|
! write(*,*)'qsat=',qsat(ip) |
68 |
|
|
|
69 |
|
|
enddo |
70 |
|
|
! |
71 |
|
288 |
RETURN |
72 |
|
|
END |