21 |
! Keating, G. M. and D. F. Young, 1985: Interim reference models for the |
! Keating, G. M. and D. F. Young, 1985: Interim reference models for the |
22 |
! middle atmosphere, Handbook for MAP, vol. 16, 205-229. |
! middle atmosphere, Handbook for MAP, vol. 16, 205-229. |
23 |
|
|
|
use dimens_m, only: llm |
|
|
USE dimphy, ONLY : klon |
|
24 |
use nr_util, only: assert, pi |
use nr_util, only: assert, pi |
25 |
|
|
26 |
|
use dimensions, only: llm |
27 |
use phyetat0_m, only: rlat |
use phyetat0_m, only: rlat |
28 |
|
|
29 |
REAL, INTENT (IN) :: rjour |
REAL, INTENT (IN) :: rjour |
30 |
|
|
31 |
REAL, INTENT (IN) :: paprs(:, :) ! (klon, llm+1) |
REAL, INTENT (IN) :: paprs(:, :) ! (klon, llm + 1) |
32 |
! pression pour chaque inter-couche, en Pa |
! pression pour chaque inter-couche, en Pa |
33 |
|
|
34 |
REAL ozonecm(klon, llm) |
REAL ozonecm(size(paprs, 1), llm) ! (klon, llm) |
35 |
! "ozonecm(j, k)" is the column-density of ozone in cell "(j, k)", that is |
! "ozonecm(j, k)" is the column-density of ozone in cell "(j, k)", that is |
36 |
! between interface "k" and interface "k + 1", in kDU. |
! between interface "k" and interface "k + 1", in kDU. |
37 |
|
|
40 |
REAL tozon ! equivalent pressure of ozone above interface "k", in Pa |
REAL tozon ! equivalent pressure of ozone above interface "k", in Pa |
41 |
INTEGER i, k |
INTEGER i, k |
42 |
|
|
43 |
REAL field(llm+1) |
REAL field(llm + 1) |
44 |
! "field(k)" is the column-density of ozone between interface |
! "field(k)" is the column-density of ozone between interface |
45 |
! "k" and the top of the atmosphere (interface "llm + 1"), in kDU. |
! "k" and the top of the atmosphere (interface "llm + 1"), in kDU. |
46 |
|
|
53 |
|
|
54 |
!---------------------------------------------------------- |
!---------------------------------------------------------- |
55 |
|
|
56 |
call assert(shape(paprs) == (/klon, llm + 1/), "ozonecm") |
call assert(size(paprs, 2) == llm + 1, "ozonecm") |
57 |
|
|
58 |
sint = sin(2 * pi * (rjour + 15.) / an) |
sint = sin(2 * pi * (rjour + 15.) / an) |
59 |
cost = cos(2 * pi * (rjour + 15.) / an) |
cost = cos(2 * pi * (rjour + 15.) / an) |
60 |
field(llm + 1) = 0. |
field(llm + 1) = 0. |
61 |
|
|
62 |
DO i = 1, klon |
DO i = 1, size(paprs, 1) |
63 |
slat = sin(pi / 180. * rlat(i)) |
slat = sin(pi / 180. * rlat(i)) |
64 |
slat2 = slat * slat |
slat2 = slat * slat |
65 |
gms = 0.0531 + sint * (- 0.001595 + 0.009443 * slat) + cost & |
gms = 0.0531 + sint * (- 0.001595 + 0.009443 * slat) + cost & |