1 | SUBROUTINE ozonecm(rjour, rlat, paprs, o3) |
---|
2 | IMPLICIT none |
---|
3 | #include "dimensions.h" |
---|
4 | #include "dimphy.h" |
---|
5 | REAL rlat(klon), paprs(klon,klev+1) |
---|
6 | REAL o3(klon,klev) |
---|
7 | REAL tozon, rjour, pi, pl |
---|
8 | INTEGER i, k |
---|
9 | C---------------------------------------------------------- |
---|
10 | REAL field(klon,klev+1) |
---|
11 | REAL ps |
---|
12 | PARAMETER (ps=101325.0) |
---|
13 | REAL an, unit, zo3q3 |
---|
14 | SAVE an, unit, zo3q3 |
---|
15 | REAL mu,gms, zslat, zsint, zcost, z, ppm, qpm, a |
---|
16 | REAL asec, bsec, aprim, zo3a3 |
---|
17 | C---------------------------------------------------------- |
---|
18 | c data an /365.25/ (meteo) |
---|
19 | DATA an /360.00/ |
---|
20 | DATA unit /2.1415e-05/ |
---|
21 | DATA zo3q3 /4.0e-08/ |
---|
22 | |
---|
23 | pi = 4.0 * ATAN(1.0) |
---|
24 | DO k = 1, klev |
---|
25 | DO i = 1, klon |
---|
26 | zslat = SIN(pi/180.*rlat(i)) |
---|
27 | zsint = SIN(2.*pi*(rjour+15.)/an) |
---|
28 | zcost = COS(2.*pi*(rjour+15.)/an) |
---|
29 | z = 0.0531+zsint*(-0.001595+0.009443*zslat) + |
---|
30 | . zcost*(-0.001344-0.00346*zslat) + |
---|
31 | . zslat**2*(.056222+zslat**2*(-.037609 |
---|
32 | . +.012248*zsint+.00521*zcost+.008890*zslat)) |
---|
33 | zo3a3 = zo3q3/ps/2. |
---|
34 | z = z-zo3q3*ps |
---|
35 | gms = z |
---|
36 | mu = ABS(sin(pi/180.*rlat(i))) |
---|
37 | ppm = 800.-(500.*zslat+150.*zcost)*zslat |
---|
38 | qpm = 1.74e-5-(7.5e-6*zslat+1.7e-6*zcost)*zslat |
---|
39 | bsec = 2650.+5000.*zslat**2 |
---|
40 | a = 4.0*(bsec)**(3./2.)*(ppm)**(3./2.)*(1.0+(bsec/ps)**(3./2.)) |
---|
41 | a = a/(bsec**(3./2.)+ppm**(3./2.))**2 |
---|
42 | aprim = (2.666666*qpm*ppm-a*gms)/(1.0-a) |
---|
43 | aprim = amax1(0.,aprim) |
---|
44 | asec = (gms-aprim)*(1.0+(bsec/ps)**(3./2.)) |
---|
45 | asec = AMAX1(0.0,asec) |
---|
46 | aprim = gms-asec/(1.+(bsec/ps)**(3./2.)) |
---|
47 | pl = paprs(i,k) |
---|
48 | tozon = aprim/(1.+3.*(ppm/pl)**2)+asec/(1.+(bsec/pl)**(3./2.)) |
---|
49 | . + zo3a3*pl*pl |
---|
50 | tozon = tozon / 9.81 ! en kg/m**2 |
---|
51 | tozon = tozon / unit ! en kg/m**2 > u dobson (10e-5 m) |
---|
52 | tozon = tozon / 1000. ! en cm |
---|
53 | field(i,k) = tozon |
---|
54 | ENDDO |
---|
55 | ENDDO |
---|
56 | c |
---|
57 | DO i = 1, klon |
---|
58 | field(i,klev+1) = 0.0 |
---|
59 | ENDDO |
---|
60 | DO k = 1, klev |
---|
61 | DO i = 1, klon |
---|
62 | o3(i,k) = field(i,k) - field(i,k+1) |
---|
63 | ENDDO |
---|
64 | ENDDO |
---|
65 | c |
---|
66 | RETURN |
---|
67 | END |
---|