16 |
! also provided us the code. |
! also provided us the code. |
17 |
|
|
18 |
! A. J. Krueger and R. A. Minzner, A Mid-Latitude Ozone Model for the |
! A. J. Krueger and R. A. Minzner, A Mid-Latitude Ozone Model for the |
19 |
! 1976 U. S. Standard Atmosphere, J. Geophys. Res., 81, 4477, (1976). |
! 1976 U. S. Standard Atmosphere, J. Geophys. Res., 81, 4477 (1976). |
20 |
|
|
21 |
! Keating, G. M. and D. F. Young, 1985: Interim reference models for the |
! Keating, G. M. and D. F. Young, 1985: Interim reference ozone |
22 |
! middle atmosphere, Handbook for MAP, vol. 16, 205-229. |
! models for the middle atmosphere, Handbook for MAP, vol. 16, |
23 |
|
! 205-229. |
24 |
|
|
25 |
use nr_util, only: assert, pi |
use nr_util, only: assert, twopi, deg_to_rad |
26 |
|
|
27 |
use dimensions, only: llm |
use dimensions, only: llm |
28 |
use phyetat0_m, only: rlat |
use phyetat0_m, only: rlat |
56 |
|
|
57 |
call assert(size(paprs, 2) == llm + 1, "ozonecm") |
call assert(size(paprs, 2) == llm + 1, "ozonecm") |
58 |
|
|
59 |
sint = sin(2 * pi * (rjour + 15.) / an) |
sint = sin(twopi * (rjour + 15.) / an) |
60 |
cost = cos(2 * pi * (rjour + 15.) / an) |
cost = cos(twopi * (rjour + 15.) / an) |
61 |
field(llm + 1) = 0. |
field(llm + 1) = 0. |
62 |
|
|
63 |
DO i = 1, size(paprs, 1) |
DO i = 1, size(paprs, 1) |
64 |
slat = sin(pi / 180. * rlat(i)) |
slat = sin(deg_to_rad * rlat(i)) |
65 |
slat2 = slat * slat |
slat2 = slat * slat |
66 |
gms = 0.0531 + sint * (- 0.001595 + 0.009443 * slat) + cost & |
gms = 0.0531 + sint * (- 0.001595 + 0.009443 * slat) + cost & |
67 |
* (- 0.001344 - 0.00346 * slat) + slat2 * (0.056222 + slat2 & |
* (- 0.001344 - 0.00346 * slat) + slat2 * (0.056222 + slat2 & |