11 real,
allocatable,
save:: c_Mob(:, :)
15 real,
allocatable,
save:: a2(:, :)
19 real,
allocatable,
save:: a4_mass(:, :)
23 real,
allocatable,
save:: a6_mass(:, :)
27 real,
allocatable,
save:: r_het_interm(:, :)
44 include
"dimensions.h"
49 print *,
"Call sequence information: alloc_coefoz"
51 allocate(c_mob(klon, llm), a2(klon, llm), a4_mass(klon, llm))
52 allocate(a6_mass(klon, llm), r_het_interm(klon, llm))
73 use netcdf95, only: nf95_open, nf95_close
74 use netcdf
, only: nf90_nowrite
82 integer,
intent(in):: julien
84 REAL,
intent(in)::
rlat(:)
87 real,
intent(in):: paprs(:, :)
90 real,
intent(in)::
pplay(:, :)
95 include
"dimensions.h"
98 real coefoz(klon, llm, 7)
111 real,
parameter:: amu = 1.6605402e-27
113 real,
parameter:: clx = 3.8e-9
122 "regr_pr_comb_coefoz klon")
123 call
assert((/
size(paprs, 2) - 1,
size(
pplay, 2)/) == llm, &
124 "regr_pr_comb_coefoz llm")
127 if (is_mpi_root) call
nf95_open(
"coefoz_LMDZ.nc", nf90_nowrite, ncid)
130 call
regr_pr_av(ncid, (/
"a2 ",
"a4 ",
"a6 ", &
131 "P_net_Mob",
"r_Mob ",
"temp_Mob ",
"R_Het "/), julien, &
132 press_in_edg, paprs, coefoz)
134 a4_mass = coefoz(:, :, 2) * 48. / 29.
138 a6_mass = coefoz(:, :, 3) / (1e4 * 29. * amu)
146 c_mob = (coefoz(:, :, 4) - a2 * coefoz(:, :, 5) &
147 - coefoz(:, :, 3) * coefoz(:, :, 1)) * 48. / 29. &
148 - a4_mass * coefoz(:, :, 6)
150 r_het_interm = coefoz(:, :, 7)
153 where (abs(
rlat) <= 45.) r_het_interm(:,
k) = 0.
155 r_het_interm = r_het_interm * (clx / 3.8e-9)**2