--- trunk/phylmd/ozonecm.f 2014/12/18 17:30:24 118 +++ trunk/phylmd/ozonecm.f 2018/04/19 17:54:55 266 @@ -16,22 +16,21 @@ ! also provided us the code. ! A. J. Krueger and R. A. Minzner, A Mid-Latitude Ozone Model for the - ! 1976 U.S. Standard Atmosphere, J. Geophys. Res., 81, 4477, (1976). + ! 1976 U. S. Standard Atmosphere, J. Geophys. Res., 81, 4477, (1976). ! Keating, G. M. and D. F. Young, 1985: Interim reference models for the ! middle atmosphere, Handbook for MAP, vol. 16, 205-229. - use dimens_m, only: llm - USE dimphy, ONLY : klon + use dimensions, only: llm use nr_util, only: assert, pi use phyetat0_m, only: rlat REAL, INTENT (IN) :: rjour - REAL, INTENT (IN) :: paprs(:, :) ! (klon, llm+1) + REAL, INTENT (IN) :: paprs(:, :) ! (klon, llm + 1) ! pression pour chaque inter-couche, en Pa - REAL ozonecm(klon, llm) + REAL ozonecm(size(paprs, 1), llm) ! (klon, llm) ! "ozonecm(j, k)" is the column-density of ozone in cell "(j, k)", that is ! between interface "k" and interface "k + 1", in kDU. @@ -40,7 +39,7 @@ REAL tozon ! equivalent pressure of ozone above interface "k", in Pa INTEGER i, k - REAL field(llm+1) + REAL field(llm + 1) ! "field(k)" is the column-density of ozone between interface ! "k" and the top of the atmosphere (interface "llm + 1"), in kDU. @@ -53,13 +52,13 @@ !---------------------------------------------------------- - call assert(shape(paprs) == (/klon, llm + 1/), "ozonecm") + call assert(size(paprs, 2) == llm + 1, "ozonecm") sint = sin(2 * pi * (rjour + 15.) / an) cost = cos(2 * pi * (rjour + 15.) / an) field(llm + 1) = 0. - DO i = 1, klon + DO i = 1, size(paprs, 1) slat = sin(pi / 180. * rlat(i)) slat2 = slat * slat gms = 0.0531 + sint * (- 0.001595 + 0.009443 * slat) + cost &