6 |
implicit none |
implicit none |
7 |
|
|
8 |
private |
private |
9 |
public read_regr_lat_time_write_coefoz |
public regr_lat_time_coefoz |
10 |
|
|
11 |
contains |
contains |
12 |
|
|
39 |
|
|
40 |
use dimens_m, only: jjm |
use dimens_m, only: jjm |
41 |
use comgeom, only: rlatv |
use comgeom, only: rlatv |
42 |
use comconst, only: pi |
use nr_util, only: pi |
43 |
use regr1_step_av_m, only: regr1_step_av |
use l_util, only: regr1_step_av, regr3_lint |
44 |
use regr3_lint_m, only: regr3_lint |
use netcdf95, only: nf95_open, nf95_gw_var, nf95_close, & |
|
use netcdf95, only: nf95_open, nf95_get_coord, nf95_close, & |
|
45 |
nf95_inq_varid, handle_err, nf95_put_var |
nf95_inq_varid, handle_err, nf95_put_var |
46 |
use netcdf, only: nf90_nowrite, nf90_get_var |
use netcdf, only: nf90_nowrite, nf90_get_var |
47 |
|
|
97 |
! (name of NetCDF primary variable in the output file) |
! (name of NetCDF primary variable in the output file) |
98 |
|
|
99 |
integer varid_in(n_o3_param), varid_out(n_o3_param), varid_plev, varid_time |
integer varid_in(n_o3_param), varid_out(n_o3_param), varid_plev, varid_time |
100 |
integer ncerr |
integer ncerr, varid |
101 |
! (for NetCDF) |
! (for NetCDF) |
102 |
|
|
103 |
real, parameter:: tmidmonth(0:13) = (/(-15. + 30. * j, j = 0, 13)/) |
real, parameter:: tmidmonth(0:13) = (/(-15. + 30. * j, j = 0, 13)/) |
112 |
|
|
113 |
!--------------------------------- |
!--------------------------------- |
114 |
|
|
115 |
print *, "Call sequence information: regr_coefoz" |
print *, "Call sequence information: regr_lat_time_coefoz" |
116 |
|
|
117 |
! Names of ozone parameters: |
! Names of ozone parameters: |
118 |
i_v = 0 |
i_v = 0 |
126 |
name_out(i_v) = "a2" |
name_out(i_v) = "a2" |
127 |
|
|
128 |
i_v = i_v + 1 |
i_v = i_v + 1 |
129 |
name_in(i_v) = "r" |
name_in(i_v) = "tro3" |
130 |
name_out(i_v) = "r_Mob" |
name_out(i_v) = "r_Mob" |
131 |
|
|
132 |
i_v = i_v + 1 |
i_v = i_v + 1 |
149 |
name_in(i_v) = "R_Het" |
name_in(i_v) = "R_Het" |
150 |
name_out(i_v) = "R_Het" |
name_out(i_v) = "R_Het" |
151 |
|
|
152 |
call nf95_open("coefoz_v2_3.nc", nf90_nowrite, ncid_in) |
call nf95_open("coefoz.nc", nf90_nowrite, ncid_in) |
153 |
|
|
154 |
! Get coordinates from the input file: |
! Get coordinates from the input file: |
155 |
|
|
156 |
call nf95_get_coord(ncid_in, "latitude", latitude) |
call nf95_inq_varid(ncid_in, "latitude", varid) |
157 |
|
call nf95_gw_var(ncid_in, varid, latitude) |
158 |
! Convert from degrees to rad, because "rlatv" is in rad: |
! Convert from degrees to rad, because "rlatv" is in rad: |
159 |
latitude = latitude / 180. * pi |
latitude = latitude / 180. * pi |
160 |
n_lat = size(latitude) |
n_lat = size(latitude) |
170 |
lat_in_edg(n_lat + 1) = pi / 2 |
lat_in_edg(n_lat + 1) = pi / 2 |
171 |
deallocate(latitude) ! pointer |
deallocate(latitude) ! pointer |
172 |
|
|
173 |
call nf95_get_coord(ncid_in, "plev", plev) |
call nf95_inq_varid(ncid_in, "plev", varid) |
174 |
|
call nf95_gw_var(ncid_in, varid, plev) |
175 |
n_plev = size(plev) |
n_plev = size(plev) |
176 |
! (We only need the pressure coordinate to copy it to the output file.) |
! (We only need the pressure coordinate to copy it to the output file.) |
177 |
|
|
239 |
|
|
240 |
use dimens_m, only: jjm |
use dimens_m, only: jjm |
241 |
use comgeom, only: rlatu |
use comgeom, only: rlatu |
242 |
use comconst, only: pi |
use nr_util, only: assert_eq, pi |
|
use nrutil, only: assert_eq |
|
243 |
|
|
244 |
use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, & |
use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, & |
245 |
nf95_put_att, nf95_enddef, nf95_copy_att, nf95_put_var |
nf95_put_att, nf95_enddef, nf95_copy_att, nf95_put_var |