50 |
integer n_plev ! number of pressure levels in the input data |
integer n_plev ! number of pressure levels in the input data |
51 |
integer n_lat! number of latitudes in the input data |
integer n_lat! number of latitudes in the input data |
52 |
|
|
53 |
real, pointer:: latitude(:) |
real, allocatable:: latitude(:) |
54 |
! (of input data, converted to rad, sorted in strictly increasing order) |
! (of input data, converted to rad, sorted in strictly increasing order) |
55 |
|
|
56 |
real, allocatable:: lat_in_edg(:) |
real, allocatable:: lat_in_edg(:) |
57 |
! (edges of latitude intervals for input data, in rad, in strictly |
! (edges of latitude intervals for input data, in rad, in strictly |
58 |
! increasing order) |
! increasing order) |
59 |
|
|
60 |
real, pointer:: plev(:) ! pressure level of input data |
real, allocatable:: plev(:) ! pressure level of input data |
61 |
logical decr_lat ! decreasing latitude in the input file |
logical decr_lat ! decreasing latitude in the input file |
62 |
|
|
63 |
real, allocatable:: o3_par_in(:, :, :) ! (n_lat, n_plev, 12) |
real, allocatable:: o3_par_in(:, :, :) ! (n_lat, n_plev, 12) |
167 |
lat_in_edg(1) = - pi / 2 |
lat_in_edg(1) = - pi / 2 |
168 |
forall (j = 2:n_lat) lat_in_edg(j) = (latitude(j - 1) + latitude(j)) / 2 |
forall (j = 2:n_lat) lat_in_edg(j) = (latitude(j - 1) + latitude(j)) / 2 |
169 |
lat_in_edg(n_lat + 1) = pi / 2 |
lat_in_edg(n_lat + 1) = pi / 2 |
|
deallocate(latitude) ! pointer |
|
170 |
|
|
171 |
call nf95_inq_varid(ncid_in, "plev", varid) |
call nf95_inq_varid(ncid_in, "plev", varid) |
172 |
call nf95_gw_var(ncid_in, varid, plev) |
call nf95_gw_var(ncid_in, varid, plev) |
186 |
call nf95_put_var(ncid_out, varid_time, tmidday) |
call nf95_put_var(ncid_out, varid_time, tmidday) |
187 |
call nf95_put_var(ncid_out, varid_plev, plev) |
call nf95_put_var(ncid_out, varid_plev, plev) |
188 |
|
|
|
deallocate(plev) ! pointer |
|
|
|
|
189 |
allocate(o3_par_in(n_lat, n_plev, 12)) |
allocate(o3_par_in(n_lat, n_plev, 12)) |
190 |
allocate(v_regr_lat(jjm + 1, n_plev, 0:13)) |
allocate(v_regr_lat(jjm + 1, n_plev, 0:13)) |
191 |
allocate(o3_par_out(jjm + 1, n_plev, 360)) |
allocate(o3_par_out(jjm + 1, n_plev, 360)) |