source: LMDZ4/trunk/libf/phylmd/ozonecm.F @ 591

Last change on this file since 591 was 524, checked in by lmdzadmin, 21 years ago

Initial revision

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