source: LMDZ.3.3/trunk/libf/phylmd/ozonecm.F @ 5306

Last change on this file since 5306 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
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
9C----------------------------------------------------------
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
17C----------------------------------------------------------
18c         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
56c
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
65c
66      RETURN
67      END
Note: See TracBrowser for help on using the repository browser.