1 | MODULE watersat_mod |
---|
2 | |
---|
3 | IMPLICIT NONE |
---|
4 | |
---|
5 | CONTAINS |
---|
6 | |
---|
7 | SUBROUTINE watersat(naersize,t,p,qsat) |
---|
8 | |
---|
9 | IMPLICIT NONE |
---|
10 | |
---|
11 | c======================================================================= |
---|
12 | c |
---|
13 | c Water mass mixing ratio at saturation (kg/kg) for a given pressure (Pa) |
---|
14 | c and Temperature (K) array |
---|
15 | c |
---|
16 | c Move in module by Deborah BARDET 02/07/18 |
---|
17 | c======================================================================= |
---|
18 | |
---|
19 | c declarations: |
---|
20 | c ------------- |
---|
21 | c arguments: |
---|
22 | c ---------- |
---|
23 | |
---|
24 | c INPUT |
---|
25 | integer, intent(in) :: naersize |
---|
26 | real, intent(in) :: t(naersize) |
---|
27 | real, intent(in) :: p(naersize) |
---|
28 | c OUTPUT |
---|
29 | real, intent(out) :: qsat(naersize) |
---|
30 | |
---|
31 | c local: |
---|
32 | c ------ |
---|
33 | INTEGER i |
---|
34 | REAL,PARAMETER :: r2 = 611.14 |
---|
35 | REAL,PARAMETER :: r3 = 21.875 |
---|
36 | REAL,PARAMETER :: r4 = 7.66 |
---|
37 | REAL,PARAMETER :: To = 273.16 |
---|
38 | REAL es |
---|
39 | |
---|
40 | |
---|
41 | do i=1,naersize |
---|
42 | c pression de vapeur saturante : |
---|
43 | c es =r2*exp(r3*(t(i)-To)/(t(i)-r4)) |
---|
44 | c qsat(i)=es/p(i)*0.41 !rapport de melange |
---|
45 | es=2.07023-0.00320991*t(i)-2484.896/t(i)+3.56654*alog10(t(i)) |
---|
46 | es=10.**es |
---|
47 | qsat(i)=(es*100.)/p(i)*0.41 |
---|
48 | qsat(i) = max(qsat(i), 1.e-30) |
---|
49 | |
---|
50 | c qss = specific humidity |
---|
51 | c qss=622*10**(2.07023-0.0032991*Tsurf(ig)-2484.896/Tsurf(ig) |
---|
52 | c $ +3.56654*log10(Tsurf(ig))) |
---|
53 | |
---|
54 | enddo |
---|
55 | |
---|
56 | END SUBROUTINE watersat |
---|
57 | |
---|
58 | END MODULE watersat_mod |
---|