source: LMDZ4/branches/LMDZ4_par_0/libf/phylmd/ozonecm.F @ 5080

Last change on this file since 5080 was 634, checked in by Laurent Fairhead, 20 years ago

Modifications faites à la physique pour la rendre parallele YM
Une branche de travail LMDZ4_par_0 a été créée provisoirement afin de tester
les modifs pleinement avant leurs inclusions dans le tronc principal
LF

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