10 subroutine regr_pr_av(ncid, name, julien, press_in_edg, paprs, v3)
36 use netcdf95, only: nf95_inq_varid, handle_err
37 use netcdf
, only: nf90_get_var
46 integer,
intent(in):: ncid
47 character(len=*),
intent(in):: name(:)
48 integer,
intent(in):: julien
50 real,
intent(in):: press_in_edg(:)
54 real,
intent(in):: paprs(:, :)
57 real,
intent(out):: v3(:, :, :)
65 include
"dimensions.h"
68 real v1(
iim, jjm + 1, size(press_in_edg) - 1, size(name))
76 real v2(klon, size(press_in_edg) - 1, size(name))
86 call
assert(
size(v3, 1) == klon,
size(v3, 2) == llm,
"regr_pr_av v3 klon")
87 n_var =
assert_eq(
size(name),
size(v3, 3),
"regr_pr_av v3 n_var")
88 call
assert(shape(paprs) == (/klon, llm+1/),
"regr_pr_av paprs")
96 ncerr = nf90_get_var(ncid, varid, v1(1, :, :,
i), &
97 start=(/1, 1, julien/))
98 call
handle_err(
"regr_pr_av nf90_get_var " // trim(name(
i)), ncerr, &
104 v1(1, :, :, :) = v1(1, jjm+1:1:-1, :, :)
107 v1(2:, :, :, :) = spread(v1(1, :, :, :), dim=1, ncopies=
iim-1)
116 paprs(
i, llm+1:1:-1))