48 character(len=100),
intent(in) :: anfdatname
50 real(dp),
intent(out) :: dxi, deta, z_sl
52 integer(i4b) :: i, j, kc, kt, kr
55 integer(i4b) :: ncid, ncv
59 integer(i2b),
dimension(0:IMAX,0:JMAX) :: maske_conv, n_cts_conv
60 real(sp) :: time_conv, dummy_conv, z_sl_conv, &
61 v_tot_conv, a_grounded_conv, a_floating_conv, &
63 xi_conv(0:imax), eta_conv(0:jmax), &
64 sigma_level_c_conv(0:kcmax), sigma_level_t_conv(0:ktmax), &
65 sigma_level_r_conv(0:krmax)
66 real(sp),
dimension(0:IMAX,0:JMAX) :: lambda_conv, phi_conv, &
68 temp_s_conv, as_perp_conv, &
69 zs_conv, zm_conv, zb_conv, zl_conv, h_c_conv, h_t_conv, h_conv, &
70 q_bm_conv, q_tld_conv, &
73 dzs_dtau_conv, dzm_dtau_conv, dzb_dtau_conv, dzl_dtau_conv, &
74 dh_c_dtau_conv, dh_t_dtau_conv, dh_dtau_conv, &
75 vx_b_g_conv, vy_b_g_conv, vz_b_conv, vh_b_conv, &
76 vx_s_g_conv, vy_s_g_conv, vz_s_conv, vh_s_conv, &
77 temp_b_conv, temph_b_conv, &
78 p_b_w_conv, h_w_conv, q_gl_g_conv
79 real(sp),
dimension(0:IMAX,0:JMAX,0:KCMAX) :: vx_c_conv, vy_c_conv, vz_c_conv, &
80 temp_c_conv, age_c_conv
81 real(sp),
dimension(0:IMAX,0:JMAX,0:KTMAX) :: vx_t_conv, vy_t_conv, vz_t_conv, &
82 omega_t_conv, age_t_conv
83 real(sp),
dimension(0:IMAX,0:JMAX,0:KRMAX) :: temp_r_conv
87 call
check( nf90_open(anfdatpath//
'/'//trim(anfdatname), nf90_nowrite, ncid) )
89 call
check( nf90_inq_varid(ncid,
'time', ncv) )
90 call
check( nf90_get_var(ncid, ncv, time_conv) )
92 if ( nf90_inq_varid(ncid,
'delta_ts', ncv) == nf90_noerr )
then
93 call
check( nf90_get_var(ncid, ncv, dummy_conv) )
94 else if ( nf90_inq_varid(ncid,
'glac_index', ncv) == nf90_noerr )
then
95 call
check( nf90_get_var(ncid, ncv, dummy_conv) )
100 call
check( nf90_inq_varid(ncid,
'z_sl', ncv) )
101 call
check( nf90_get_var(ncid, ncv, z_sl_conv) )
103 call
check( nf90_inq_varid(ncid,
'xi', ncv) )
104 call
check( nf90_get_var(ncid, ncv, xi_conv) )
106 call
check( nf90_inq_varid(ncid,
'eta', ncv) )
107 call
check( nf90_get_var(ncid, ncv, eta_conv) )
109 call
check( nf90_inq_varid(ncid,
'sigma_level_c', ncv) )
110 call
check( nf90_get_var(ncid, ncv, sigma_level_c_conv) )
112 call
check( nf90_inq_varid(ncid,
'sigma_level_t', ncv) )
113 call
check( nf90_get_var(ncid, ncv, sigma_level_t_conv) )
115 call
check( nf90_inq_varid(ncid,
'sigma_level_r', ncv) )
116 call
check( nf90_get_var(ncid, ncv, sigma_level_r_conv) )
118 call
check( nf90_inq_varid(ncid,
'lon', ncv) )
119 call
check( nf90_get_var(ncid, ncv, lon_conv) )
121 call
check( nf90_inq_varid(ncid,
'lat', ncv) )
122 call
check( nf90_get_var(ncid, ncv, lat_conv) )
124 call
check( nf90_inq_varid(ncid,
'lambda', ncv) )
125 call
check( nf90_get_var(ncid, ncv, lambda_conv) )
127 call
check( nf90_inq_varid(ncid,
'phi', ncv) )
128 call
check( nf90_get_var(ncid, ncv, phi_conv) )
130 call
check( nf90_inq_varid(ncid,
'temp_s', ncv) )
131 call
check( nf90_get_var(ncid, ncv, temp_s_conv) )
133 call
check( nf90_inq_varid(ncid,
'as_perp', ncv) )
134 call
check( nf90_get_var(ncid, ncv, as_perp_conv) )
136 call
check( nf90_inq_varid(ncid,
'maske', ncv) )
137 call
check( nf90_get_var(ncid, ncv, maske_conv) )
139 call
check( nf90_inq_varid(ncid,
'n_cts', ncv) )
140 call
check( nf90_get_var(ncid, ncv, n_cts_conv) )
142 call
check( nf90_inq_varid(ncid,
'zs', ncv) )
143 call
check( nf90_get_var(ncid, ncv, zs_conv) )
145 call
check( nf90_inq_varid(ncid,
'zm', ncv) )
146 call
check( nf90_get_var(ncid, ncv, zm_conv) )
148 call
check( nf90_inq_varid(ncid,
'zb', ncv) )
149 call
check( nf90_get_var(ncid, ncv, zb_conv) )
151 call
check( nf90_inq_varid(ncid,
'zl', ncv) )
152 call
check( nf90_get_var(ncid, ncv, zl_conv) )
154 call
check( nf90_inq_varid(ncid,
'H_c', ncv) )
155 call
check( nf90_get_var(ncid, ncv, h_c_conv) )
157 call
check( nf90_inq_varid(ncid,
'H_t', ncv) )
158 call
check( nf90_get_var(ncid, ncv, h_t_conv) )
160 call
check( nf90_inq_varid(ncid,
'H', ncv) )
161 call
check( nf90_get_var(ncid, ncv, h_conv) )
163 call
check( nf90_inq_varid(ncid,
'H_R', ncv) )
164 call
check( nf90_get_var(ncid, ncv, h_r_conv) )
166 call
check( nf90_inq_varid(ncid,
'vx_c', ncv) )
167 call
check( nf90_get_var(ncid, ncv, vx_c_conv) )
169 call
check( nf90_inq_varid(ncid,
'vy_c', ncv) )
170 call
check( nf90_get_var(ncid, ncv, vy_c_conv) )
172 call
check( nf90_inq_varid(ncid,
'vz_c', ncv) )
173 call
check( nf90_get_var(ncid, ncv, vz_c_conv) )
175 call
check( nf90_inq_varid(ncid,
'vx_t', ncv) )
176 call
check( nf90_get_var(ncid, ncv, vx_t_conv) )
178 call
check( nf90_inq_varid(ncid,
'vy_t', ncv) )
179 call
check( nf90_get_var(ncid, ncv, vy_t_conv) )
181 call
check( nf90_inq_varid(ncid,
'vz_t', ncv) )
182 call
check( nf90_get_var(ncid, ncv, vz_t_conv) )
184 call
check( nf90_inq_varid(ncid,
'temp_c', ncv) )
185 call
check( nf90_get_var(ncid, ncv, temp_c_conv) )
187 call
check( nf90_inq_varid(ncid,
'omega_t', ncv) )
188 call
check( nf90_get_var(ncid, ncv, omega_t_conv) )
190 call
check( nf90_inq_varid(ncid,
'temp_r', ncv) )
191 call
check( nf90_get_var(ncid, ncv, temp_r_conv) )
193 call
check( nf90_inq_varid(ncid,
'Q_bm', ncv) )
194 call
check( nf90_get_var(ncid, ncv, q_bm_conv) )
196 call
check( nf90_inq_varid(ncid,
'Q_tld', ncv) )
197 call
check( nf90_get_var(ncid, ncv, q_tld_conv) )
199 call
check( nf90_inq_varid(ncid,
'am_perp', ncv) )
200 call
check( nf90_get_var(ncid, ncv, am_perp_conv) )
202 call
check( nf90_inq_varid(ncid,
'qx', ncv) )
203 call
check( nf90_get_var(ncid, ncv, qx_conv) )
205 call
check( nf90_inq_varid(ncid,
'qy', ncv) )
206 call
check( nf90_get_var(ncid, ncv, qy_conv) )
208 call
check( nf90_inq_varid(ncid,
'age_c', ncv) )
209 call
check( nf90_get_var(ncid, ncv, age_c_conv) )
211 call
check( nf90_inq_varid(ncid,
'age_t', ncv) )
212 call
check( nf90_get_var(ncid, ncv, age_t_conv) )
214 call
check( nf90_inq_varid(ncid,
'dzs_dtau', ncv) )
215 call
check( nf90_get_var(ncid, ncv, dzs_dtau_conv) )
217 call
check( nf90_inq_varid(ncid,
'dzm_dtau', ncv) )
218 call
check( nf90_get_var(ncid, ncv, dzm_dtau_conv) )
220 call
check( nf90_inq_varid(ncid,
'dzb_dtau', ncv) )
221 call
check( nf90_get_var(ncid, ncv, dzb_dtau_conv) )
223 call
check( nf90_inq_varid(ncid,
'dzl_dtau', ncv) )
224 call
check( nf90_get_var(ncid, ncv, dzl_dtau_conv) )
226 call
check( nf90_inq_varid(ncid,
'dH_c_dtau', ncv) )
227 call
check( nf90_get_var(ncid, ncv, dh_c_dtau_conv) )
229 call
check( nf90_inq_varid(ncid,
'dH_t_dtau', ncv) )
230 call
check( nf90_get_var(ncid, ncv, dh_t_dtau_conv) )
232 call
check( nf90_inq_varid(ncid,
'dH_dtau', ncv) )
233 call
check( nf90_get_var(ncid, ncv, dh_dtau_conv) )
235 if ( nf90_inq_varid(ncid,
'vx_b_g', ncv) == nf90_noerr )
then
236 call
check( nf90_get_var(ncid, ncv, vx_b_g_conv) )
241 if ( nf90_inq_varid(ncid,
'vy_b_g', ncv) == nf90_noerr )
then
242 call
check( nf90_get_var(ncid, ncv, vy_b_g_conv) )
247 if ( nf90_inq_varid(ncid,
'vz_b', ncv) == nf90_noerr )
then
248 call
check( nf90_get_var(ncid, ncv, vz_b_conv) )
253 if ( nf90_inq_varid(ncid,
'vh_b', ncv) == nf90_noerr )
then
254 call
check( nf90_get_var(ncid, ncv, vh_b_conv) )
259 if ( nf90_inq_varid(ncid,
'vx_s_g', ncv) == nf90_noerr )
then
260 call
check( nf90_get_var(ncid, ncv, vx_s_g_conv) )
265 if ( nf90_inq_varid(ncid,
'vy_s_g', ncv) == nf90_noerr )
then
266 call
check( nf90_get_var(ncid, ncv, vy_s_g_conv) )
271 if ( nf90_inq_varid(ncid,
'vz_s', ncv) == nf90_noerr )
then
272 call
check( nf90_get_var(ncid, ncv, vz_s_conv) )
277 if ( nf90_inq_varid(ncid,
'vh_s', ncv) == nf90_noerr )
then
278 call
check( nf90_get_var(ncid, ncv, vh_s_conv) )
283 if ( nf90_inq_varid(ncid,
'temp_b', ncv) == nf90_noerr )
then
284 call
check( nf90_get_var(ncid, ncv, temp_b_conv) )
289 if ( nf90_inq_varid(ncid,
'temph_b', ncv) == nf90_noerr )
then
290 call
check( nf90_get_var(ncid, ncv, temph_b_conv) )
295 if ( nf90_inq_varid(ncid,
'p_b_w', ncv) == nf90_noerr )
then
296 call
check( nf90_get_var(ncid, ncv, p_b_w_conv) )
301 if ( nf90_inq_varid(ncid,
'H_w', ncv) == nf90_noerr )
then
302 call
check( nf90_get_var(ncid, ncv, h_w_conv) )
307 if ( nf90_inq_varid(ncid,
'q_gl_g', ncv) == nf90_noerr )
then
308 call
check( nf90_get_var(ncid, ncv, q_gl_g_conv) )
316 write(6,
'(/1x,a)')
'topography3_nc: End-of-file condition while reading *.nc.'
317 write(6,
'(1x,a)')
' Some variables will be undefined.'
321 call
check( nf90_close(ncid) )
325 z_sl =
real(z_sl_conv,dp)
327 h_r =
real(h_r_conv,dp)
330 xi(i) =
real(xi_conv(i),dp)
334 eta(j) =
real(eta_conv(j),dp)
340 maske(j,i) = maske_conv(i,j)
341 n_cts(j,i) = n_cts_conv(i,j)
342 zs(j,i) =
real(zs_conv(i,j),dp)
343 zm(j,i) =
real(zm_conv(i,j),dp)
344 zb(j,i) =
real(zb_conv(i,j),dp)
345 zl(j,i) =
real(zl_conv(i,j),dp)
346 h_c(j,i) =
real(H_c_conv(i,j),dp)
347 h_t(j,i) =
real(H_t_conv(i,j),dp)
348 q_bm(j,i) =
real(Q_bm_conv(i,j),dp)/year_sec
349 q_tld(j,i) =
real(Q_tld_conv(i,j),dp)/year_sec
350 am_perp(j,i) =
real(am_perp_conv(i,j),dp)/year_sec
351 qx(j,i) =
real(qx_conv(i,j),dp)/year_sec
352 qy(j,i) =
real(qy_conv(i,j),dp)/year_sec
353 dzs_dtau(j,i) =
real(dzs_dtau_conv(i,j),dp)/year_sec
354 dzm_dtau(j,i) =
real(dzm_dtau_conv(i,j),dp)/year_sec
355 dzb_dtau(j,i) =
real(dzb_dtau_conv(i,j),dp)/year_sec
356 dzl_dtau(j,i) =
real(dzl_dtau_conv(i,j),dp)/year_sec
357 dh_c_dtau(j,i) =
real(dH_c_dtau_conv(i,j),dp)/year_sec
358 dh_t_dtau(j,i) =
real(dH_t_dtau_conv(i,j),dp)/year_sec
359 vx_b_g(j,i) =
real(vx_b_g_conv(i,j),dp)/year_sec
360 vy_b_g(j,i) =
real(vy_b_g_conv(i,j),dp)/year_sec
361 vz_b(j,i) =
real(vz_b_conv(i,j),dp)/year_sec
362 vx_s_g(j,i) =
real(vx_s_g_conv(i,j),dp)/year_sec
363 vy_s_g(j,i) =
real(vy_s_g_conv(i,j),dp)/year_sec
364 vz_s(j,i) =
real(vz_s_conv(i,j),dp)/year_sec
365 temp_b(j,i) =
real(temp_b_conv(i,j),dp)
366 temph_b(j,i) =
real(temph_b_conv(i,j),dp)
367 p_b_w(j,i) =
real(p_b_w_conv(i,j),dp)
368 h_w(j,i) =
real(H_w_conv(i,j),dp)
369 q_gl_g(j,i) =
real(q_gl_g_conv(i,j),dp)/year_sec
372 temp_r(kr,j,i) =
real(temp_r_conv(i,j,kr),dp)
376 vx_t(kt,j,i) =
real(vx_t_conv(i,j,kt),dp)/year_sec
377 vy_t(kt,j,i) =
real(vy_t_conv(i,j,kt),dp)/year_sec
378 vz_t(kt,j,i) =
real(vz_t_conv(i,j,kt),dp)/year_sec
379 omega_t(kt,j,i) =
real(omega_t_conv(i,j,kt),dp)
380 age_t(kt,j,i) =
real(age_t_conv(i,j,kt),dp)*year_sec
384 vx_c(kc,j,i) =
real(vx_c_conv(i,j,kc),dp)/year_sec
385 vy_c(kc,j,i) =
real(vy_c_conv(i,j,kc),dp)/year_sec
386 vz_c(kc,j,i) =
real(vz_c_conv(i,j,kc),dp)/year_sec
387 temp_c(kc,j,i) =
real(temp_c_conv(i,j,kc),dp)
388 age_c(kc,j,i) =
real(age_c_conv(i,j,kc),dp)*year_sec
405 call
geo_coord(phi(j,i), lambda(j,i), xi(i), eta(j))
423 area(j,i) = sq_g11_g(j,i)*sq_g22_g(j,i)*dxi*deta