35 subroutine output_nc(runname, time, delta_ts, glac_index, z_sl, &
36 flag_3d_output, ndat2d, ndat3d)
45 real(dp),
intent (in) :: time, delta_ts, glac_index, z_sl
46 character (len=100),
intent (in) :: runname
47 logical,
intent (in) :: flag_3d_output
49 integer(i4b),
intent (inout) :: ndat2d, ndat3d
51 integer(i4b) :: i, j, kc, kt, kr
52 integer(i4b) :: ndat, ndat_help, ndat_1000s, ndat_100s, ndat_10s, ndat_1s
53 real(dp) :: v_tot, a_grounded, a_floating
54 real(sp) :: lon0, lat0
55 character (len=256) :: filename
56 character :: ch_1000s, ch_100s, ch_10s, ch_1s
58 integer(i2b),
dimension(0:IMAX,0:JMAX) :: maske_conv, n_cts_conv
59 real(sp) :: time_conv, delta_ts_conv, glac_index_conv, z_sl_conv, &
60 v_tot_conv, a_grounded_conv, a_floating_conv, &
62 xi_conv(0:imax), eta_conv(0:jmax), &
63 sigma_level_c_conv(0:kcmax), sigma_level_t_conv(0:ktmax), &
64 sigma_level_r_conv(0:krmax)
65 real(sp),
dimension(0:IMAX,0:JMAX) :: lambda_conv, phi_conv, &
67 temp_s_conv, as_perp_conv, &
68 zs_conv, zm_conv, zb_conv, zl_conv, h_c_conv, h_t_conv, h_conv, &
69 q_bm_conv, q_tld_conv, &
72 dzs_dtau_conv, dzm_dtau_conv, dzb_dtau_conv, dzl_dtau_conv, &
73 dh_c_dtau_conv, dh_t_dtau_conv, dh_dtau_conv, &
74 vx_b_g_conv, vy_b_g_conv, vz_b_conv, vh_b_conv, &
75 vx_s_g_conv, vy_s_g_conv, vz_s_conv, vh_s_conv, &
76 temp_b_conv, temph_b_conv, &
77 p_b_w_conv, h_w_conv, q_gl_g_conv
78 real(sp),
dimension(0:IMAX,0:JMAX,0:KCMAX) :: vx_c_conv, vy_c_conv, vz_c_conv, &
79 temp_c_conv, age_c_conv
80 real(sp),
dimension(0:IMAX,0:JMAX,0:KTMAX) :: vx_t_conv, vy_t_conv, vz_t_conv, &
81 omega_t_conv, age_t_conv
82 real(sp),
dimension(0:IMAX,0:JMAX,0:KRMAX) :: temp_r_conv
84 integer(i4b) :: ncid, ncv
87 integer(i4b) :: ncd, nc1d, nc2d(2), nc3d(3)
92 integer(i4b) :: nc3flag(3), nc4flag(4)
95 integer(i4b) :: nc1cor(1), nc2cor(2), nc3cor(3)
99 integer(i4b) :: nc1cnt(1), nc2cnt(2), nc3cnt(3)
103 character (len= 16) :: ch_date, ch_time, ch_zone
104 character (len=256) :: buffer
106 character(len=64),
parameter :: thisroutine =
'output_nc'
110 if (flag_3d_output)
then
116 if (ndat > 9999) stop
' output_nc: Too many time-slice files!'
119 ndat_1000s = ndat_help/1000
120 ndat_help = ndat_help-ndat_1000s*1000
121 ndat_100s = ndat_help/100
122 ndat_help = ndat_help-ndat_100s*100
123 ndat_10s = ndat_help/10
124 ndat_help = ndat_help-ndat_10s*10
127 ch_1000s = char(ndat_1000s+ichar(
'0'))
128 ch_100s = char(ndat_100s +ichar(
'0'))
129 ch_10s = char(ndat_10s +ichar(
'0'))
130 ch_1s = char(ndat_1s +ichar(
'0'))
132 if (flag_3d_output)
then
133 filename = trim(runname)//ch_1000s//ch_100s//ch_10s//ch_1s//
'.nc'
135 filename = trim(runname)//
'_2d_'//ch_1000s//ch_100s//ch_10s//ch_1s//
'.nc'
142 buffer = outpath//
'/'//trim(filename)
143 call
check( nf90_create(trim(buffer), nf90_noclobber, ncid), thisroutine )
147 buffer =
'Time-slice output no. '//ch_1000s//ch_100s//ch_10s//ch_1s//
' '// &
148 'of simulation '//trim(runname)
149 call
check( nf90_put_att(ncid, nf90_global,
'title', trim(buffer)), &
152 buffer =
'Institute of Low Temperature Science, Hokkaido University, '// &
154 call
check( nf90_put_att(ncid, nf90_global,
'institution', trim(buffer)), &
157 buffer =
'SICOPOLIS Version '//version
158 call
check( nf90_put_att(ncid, nf90_global,
'source', trim(buffer)), &
161 call date_and_time(ch_date, ch_time, ch_zone)
162 buffer = ch_date(1:4)//
'-'//ch_date(5:6)//
'-'//ch_date(7:8)//
' '// &
163 ch_time(1:2)//
':'//ch_time(3:4)//
':'//ch_time(5:6)//
' '// &
164 ch_zone(1:3)//
':'//ch_zone(4:5)//
' - Data produced'
165 call
check( nf90_put_att(ncid, nf90_global,
'history', trim(buffer)), &
168 buffer =
'http://sicopolis.greveweb.net/'
169 call
check( nf90_put_att(ncid, nf90_global,
'references', trim(buffer)), &
174 call
check( nf90_def_dim(ncid,
'IMAX', imax+1, ncd), thisroutine )
175 call
check( nf90_def_dim(ncid,
'JMAX', jmax+1, ncd), thisroutine )
176 call
check( nf90_def_dim(ncid,
'KCMAX', kcmax+1, ncd), thisroutine )
177 call
check( nf90_def_dim(ncid,
'KTMAX', ktmax+1, ncd), thisroutine )
178 call
check( nf90_def_dim(ncid,
'KRMAX', krmax+1, ncd), thisroutine )
182 call
check( nf90_def_var(ncid,
'crs', nf90_short, ncv), thisroutine )
183 #if ( (GRID == 0) || (GRID == 1) )
184 buffer =
'polar_stereographic'
185 call
check( nf90_put_att(ncid, ncv,
'grid_mapping_name', trim(buffer)), &
188 buffer =
'latitude_longitude'
189 call
check( nf90_put_att(ncid, ncv,
'grid_mapping_name', trim(buffer)), &
198 || defined(emtp2sge) \
199 || defined(heino) ) /* terrestrial ice sheet */
201 call
check( nf90_put_att(ncid, ncv,
'ellipsoid', trim(buffer)), &
203 #elif ( defined(NMARS) \
204 || defined(smars) ) /* martian ice sheet */
205 buffer =
'Mars_ellipsoid'
206 call
check( nf90_put_att(ncid, ncv,
'ellipsoid', trim(buffer)), &
209 stop
' output_nc: No valid domain (ANT, GRL etc.) specified!'
211 #if ( (GRID == 0) || (GRID == 1) )
212 call
check( nf90_put_att(ncid, ncv,
'false_easting', 0.0), &
214 call
check( nf90_put_att(ncid, ncv,
'false_northing', 0.0), &
216 lon0 = lambda0 *pi_180_inv
217 lon0 = modulo(lon0+180.0_sp, 360.0_sp)-180.0_sp
218 lon0 = nint(lon0*1.0e+04_sp)*1.0e-04_sp
219 lat0 = phi0 *pi_180_inv
220 if (lat0 > 90.0_sp) lat0 = 90.0_sp
221 if (lat0 < -90.0_sp) lat0 = -90.0_sp
222 lat0 = nint(lat0*1.0e+04_sp)*1.0e-04_sp
224 if (lat0 >= 0.0_sp)
then
225 call
check( nf90_put_att(ncid, ncv, &
226 'latitude_of_projection_origin', 90.0), &
229 call
check( nf90_put_att(ncid, ncv, &
230 'latitude_of_projection_origin', -90.0), &
233 call
check( nf90_put_att(ncid, ncv, &
234 'straight_vertical_longitude_from_pole', lon0), &
236 call
check( nf90_put_att(ncid, ncv, &
237 'standard_parallel', lat0), &
241 call
check( nf90_def_var(ncid,
'time', nf90_float, ncv), &
244 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
247 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
250 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
253 if (forcing_flag == 1)
then
255 call
check( nf90_def_var(ncid,
'delta_ts', nf90_float, ncv), &
258 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
260 buffer =
'surface_temperature_anomaly'
261 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
263 buffer =
'Surface temperature anomaly'
264 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
267 else if (forcing_flag == 2)
then
269 call
check( nf90_def_var(ncid,
'glac_index', nf90_float, ncv), &
272 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
274 buffer =
'glacial_index'
275 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
277 buffer =
'Glacial index'
278 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
281 else if (forcing_flag == 3)
then
283 call
check( nf90_def_var(ncid,
'glac_index', nf90_float, ncv), &
286 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
288 buffer =
'glacial_index'
289 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
291 buffer =
'Glacial index'
292 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
294 buffer =
'This variable will be assigned a dummy value only!'
295 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
300 call
check( nf90_def_var(ncid,
'z_sl', nf90_float, ncv), &
303 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
305 buffer =
'global_average_sea_level_change'
306 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
309 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
312 call
check( nf90_inq_dimid(ncid,
'IMAX', nc1d), &
314 call
check( nf90_def_var(ncid,
'xi', nf90_float, nc1d, ncv), &
317 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
319 buffer =
'projection_x_coordinate'
320 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
322 buffer =
'x-coordinate of the grid point i'
323 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
326 call
check( nf90_inq_dimid(ncid,
'JMAX', nc1d), &
328 call
check( nf90_def_var(ncid,
'eta', nf90_float, nc1d, ncv), &
331 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
333 buffer =
'projection_y_coordinate'
334 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
336 buffer =
'y-coordinate of the grid point j'
337 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
340 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc1d), &
342 call
check( nf90_def_var(ncid,
'sigma_level_c', nf90_float, nc1d, ncv), &
345 call
check( nf90_put_att(ncid, ncv,
'positive', trim(buffer)), &
347 buffer =
'land_ice_cold_layer_sigma_coordinate'
348 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
350 buffer =
'sigma-coordinate of the grid point kc'
351 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
354 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc1d), &
356 call
check( nf90_def_var(ncid,
'sigma_level_t', nf90_float, nc1d, ncv), &
359 call
check( nf90_put_att(ncid, ncv,
'positive', trim(buffer)), &
361 buffer =
'land_ice_temperate_layer_sigma_coordinate'
362 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
364 buffer =
'sigma-coordinate of the grid point kt'
365 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
368 call
check( nf90_inq_dimid(ncid,
'KRMAX', nc1d), &
370 call
check( nf90_def_var(ncid,
'sigma_level_r', nf90_float, nc1d, ncv), &
373 call
check( nf90_put_att(ncid, ncv,
'positive', trim(buffer)), &
375 buffer =
'lithosphere_layer_sigma_coordinate'
376 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
378 buffer =
'sigma-coordinate of the grid point kr'
379 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
382 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
384 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
386 call
check( nf90_def_var(ncid,
'lon', nf90_float, nc2d, ncv), &
389 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
392 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
394 buffer =
'Geographical longitude'
395 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
398 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
400 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
402 call
check( nf90_def_var(ncid,
'lat', nf90_float, nc2d, ncv), &
405 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
408 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
410 buffer =
'Geographical latitude'
411 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
414 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
416 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
418 call
check( nf90_def_var(ncid,
'lambda', nf90_float, nc2d, ncv), &
421 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
424 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
426 buffer =
'Geographical longitude'
427 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
429 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
431 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
434 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
436 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
438 call
check( nf90_def_var(ncid,
'phi', nf90_float, nc2d, ncv), &
441 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
444 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
446 buffer =
'Geographical latitude'
447 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
449 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
451 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
454 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
456 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
458 call
check( nf90_def_var(ncid,
'temp_s', nf90_float, nc2d, ncv), &
461 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
463 buffer =
'surface_temperature'
464 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
466 buffer =
'Temperature at the ice surface'
467 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
469 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
471 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
474 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
476 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
478 call
check( nf90_def_var(ncid,
'as_perp', nf90_float, nc2d, ncv), &
481 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
483 buffer =
'land_ice_surface_mass_balance'
484 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
486 buffer =
'Mass balance at the ice surface'
487 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
489 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
491 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
494 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
496 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
498 call
check( nf90_def_var(ncid,
'maske', nf90_short, nc2d, ncv), &
500 buffer =
'ice_land_sea_mask'
501 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
503 buffer =
'Ice-land-sea mask'
504 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
510 call
check( nf90_put_att(ncid, ncv,
'flag_values', nc4flag), &
512 buffer =
'glaciated_land '// &
516 call
check( nf90_put_att(ncid, ncv,
'flag_meanings', trim(buffer)), &
518 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
520 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
523 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
525 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
527 call
check( nf90_def_var(ncid,
'n_cts', nf90_short, nc2d, ncv), &
529 buffer =
'polythermal_condition_mask'
530 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
532 buffer =
'Mask for polythermal conditions'
533 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
538 call
check( nf90_put_att(ncid, ncv,
'flag_values', nc3flag), &
540 buffer =
'cold_base '// &
541 'temperate_base_with_cold_ice_above '// &
542 'temperate_base_with_temperate_ice_above'
543 call
check( nf90_put_att(ncid, ncv,
'flag_meanings', trim(buffer)), &
545 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
547 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
550 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
552 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
554 call
check( nf90_def_var(ncid,
'zs', nf90_float, nc2d, ncv), &
557 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
559 buffer =
'surface_altitude'
560 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
562 buffer =
'Topography of the free surface'
563 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
565 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
567 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
570 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
572 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
574 call
check( nf90_def_var(ncid,
'zm', nf90_float, nc2d, ncv), &
577 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
579 buffer =
'cts_altitude'
580 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
582 buffer =
'Topography of the CTS (cold-temperate transition surface)'
583 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
585 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
587 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
590 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
592 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
594 call
check( nf90_def_var(ncid,
'zb', nf90_float, nc2d, ncv), &
597 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
599 buffer =
'ice_base_altitude'
600 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
602 buffer =
'Topography of the ice base'
603 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
605 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
607 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
610 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
612 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
614 call
check( nf90_def_var(ncid,
'zl', nf90_float, nc2d, ncv), &
617 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
619 buffer =
'bedrock_altitude'
620 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
622 buffer =
'Topography of the lithosphere surface'
623 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
625 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
627 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
630 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
632 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
634 call
check( nf90_def_var(ncid,
'H_c', nf90_float, nc2d, ncv), &
637 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
639 buffer =
'land_ice_cold_layer_thickness'
640 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
642 buffer =
'Thickness of the cold ice layer'
643 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
645 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
647 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
650 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
652 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
654 call
check( nf90_def_var(ncid,
'H_t', nf90_float, nc2d, ncv), &
657 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
659 buffer =
'land_ice_temperate_layer_thickness'
660 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
662 buffer =
'Thickness of the temperate ice layer'
663 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
665 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
667 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
670 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
672 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
674 call
check( nf90_def_var(ncid,
'H', nf90_float, nc2d, ncv), &
677 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
679 buffer =
'land_ice_thickness'
680 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
682 buffer =
'Ice thickness'
683 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
685 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
687 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
690 call
check( nf90_def_var(ncid,
'H_R', nf90_float, ncv), &
693 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
695 buffer =
'lithosphere_layer_thickness'
696 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
698 buffer =
'Thickness of the lithosphere layer'
699 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
702 if (flag_3d_output)
then
704 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
706 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
708 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc3d(3)), &
710 call
check( nf90_def_var(ncid,
'vx_c', nf90_float, nc3d, ncv), &
713 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
715 buffer =
'land_ice_cold_layer_x_velocity'
716 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
718 buffer =
'Horizontal velocity vx in the cold ice layer'
719 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
721 buffer =
'Staggered grid variable, defined at (kc,j,i+1/2)'
722 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
724 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
726 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
729 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
731 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
733 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc3d(3)), &
735 call
check( nf90_def_var(ncid,
'vy_c', nf90_float, nc3d, ncv), &
738 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
740 buffer =
'land_ice_cold_layer_y_velocity'
741 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
743 buffer =
'Horizontal velocity vy in the cold ice layer'
744 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
746 buffer =
'Staggered grid variable, defined at (kc,j+1/2,i)'
747 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
749 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
751 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
754 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
756 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
758 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc3d(3)), &
760 call
check( nf90_def_var(ncid,
'vz_c', nf90_float, nc3d, ncv), &
763 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
765 buffer =
'land_ice_cold_layer_z_velocity'
766 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
768 buffer =
'Vertical velocity vz in the cold ice layer'
769 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
771 buffer =
'Staggered grid variable, defined at (kc+1/2,j,i)'
772 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
774 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
776 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
779 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
781 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
783 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc3d(3)), &
785 call
check( nf90_def_var(ncid,
'vx_t', nf90_float, nc3d, ncv), &
788 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
790 buffer =
'land_ice_temperate_layer_x_velocity'
791 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
793 buffer =
'Horizontal velocity vx in the temperate ice layer'
794 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
796 buffer =
'Staggered grid variable, defined at (kt,j,i+1/2)'
797 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
799 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
801 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
804 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
806 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
808 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc3d(3)), &
810 call
check( nf90_def_var(ncid,
'vy_t', nf90_float, nc3d, ncv), &
813 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
815 buffer =
'land_ice_temperate_layer_y_velocity'
816 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
818 buffer =
'Horizontal velocity vy in the temperate ice layer'
819 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
821 buffer =
'Staggered grid variable, defined at (kt,j+1/2,i)'
822 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
824 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
826 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
829 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
831 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
833 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc3d(3)), &
835 call
check( nf90_def_var(ncid,
'vz_t', nf90_float, nc3d, ncv), &
838 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
840 buffer =
'land_ice_temperate_layer_z_velocity'
841 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
843 buffer =
'Vertical velocity vz in the temperate ice layer'
844 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
846 buffer =
'Staggered grid variable, defined at (kt+1/2,j,i)'
847 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
849 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
851 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
854 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
856 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
858 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc3d(3)), &
860 call
check( nf90_def_var(ncid,
'temp_c', nf90_float, nc3d, ncv), &
863 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
865 buffer =
'land_ice_cold_layer_temperature'
866 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
868 buffer =
'Temperature in the cold ice layer'
869 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
871 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
873 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
876 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
878 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
880 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc3d(3)), &
882 call
check( nf90_def_var(ncid,
'omega_t', nf90_float, nc3d, ncv), &
885 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
887 buffer =
'land_ice_temperate_layer_water_content'
888 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
890 buffer =
'Water content in the temperate ice layer'
891 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
893 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
895 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
898 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
900 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
902 call
check( nf90_inq_dimid(ncid,
'KRMAX', nc3d(3)), &
904 call
check( nf90_def_var(ncid,
'temp_r', nf90_float, nc3d, ncv), &
907 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
909 buffer =
'lithosphere_layer_temperature'
910 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
912 buffer =
'Temperature in the lithosphere layer'
913 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
915 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
917 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
922 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
924 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
926 call
check( nf90_def_var(ncid,
'Q_bm', nf90_float, nc2d, ncv), &
929 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
931 buffer =
'land_ice_basal_melt_rate'
932 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
934 buffer =
'Basal melting rate'
935 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
937 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
939 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
942 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
944 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
946 call
check( nf90_def_var(ncid,
'Q_tld', nf90_float, nc2d, ncv), &
949 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
951 buffer =
'land_ice_temperate_layer_water_drainage'
952 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
954 buffer =
'Water drainage from the temperate layer'
955 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
957 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
959 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
962 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
964 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
966 call
check( nf90_def_var(ncid,
'am_perp', nf90_float, nc2d, ncv), &
969 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
971 buffer =
'land_ice_volume_flux_across_cts'
972 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
974 buffer =
'Volume flux across the CTS (cold-temperate transition surface)'
975 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
977 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
979 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
982 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
984 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
986 call
check( nf90_def_var(ncid,
'qx', nf90_float, nc2d, ncv), &
989 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
991 buffer =
'land_ice_vertical_integral_x_velocity'
992 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
994 buffer =
'Horizontal volume flux qx'
995 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
997 buffer =
'Staggered grid variable, defined at (j,i+1/2)'
998 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
1000 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1002 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1005 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1007 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1009 call
check( nf90_def_var(ncid,
'qy', nf90_float, nc2d, ncv), &
1012 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1014 buffer =
'land_ice_vertical_integral_y_velocity'
1015 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1017 buffer =
'Horizontal volume flux qy'
1018 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1020 buffer =
'Staggered grid variable, defined at (j+1/2,i)'
1021 call
check( nf90_put_att(ncid, ncv,
'comment', trim(buffer)), &
1023 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1025 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1028 if (flag_3d_output)
then
1030 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
1032 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
1034 call
check( nf90_inq_dimid(ncid,
'KCMAX', nc3d(3)), &
1036 call
check( nf90_def_var(ncid,
'age_c', nf90_float, nc3d, ncv), &
1039 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1041 buffer =
'land_ice_cold_layer_age'
1042 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1044 buffer =
'Age in the cold ice layer'
1045 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1047 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1049 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1052 call
check( nf90_inq_dimid(ncid,
'IMAX', nc3d(1)), &
1054 call
check( nf90_inq_dimid(ncid,
'JMAX', nc3d(2)), &
1056 call
check( nf90_inq_dimid(ncid,
'KTMAX', nc3d(3)), &
1058 call
check( nf90_def_var(ncid,
'age_t', nf90_float, nc3d, ncv), &
1061 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1063 buffer =
'land_ice_temperate_layer_age'
1064 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1066 buffer =
'Age in the temperate ice layer'
1067 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1069 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1071 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1076 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1078 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1080 call
check( nf90_def_var(ncid,
'dzs_dtau', nf90_float, nc2d, ncv), &
1083 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1085 buffer =
'tendency_of_surface_altitude'
1086 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1088 buffer =
'Rate of change of the topography of the free surface'
1089 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1091 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1093 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1096 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1098 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1100 call
check( nf90_def_var(ncid,
'dzm_dtau', nf90_float, nc2d, ncv), &
1103 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1105 buffer =
'tendency_of_cts_altitude'
1106 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1108 buffer =
'Rate of change of the topography of the CTS '// &
1109 '(cold-temperate transition surface)'
1110 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1112 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1114 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1117 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1119 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1121 call
check( nf90_def_var(ncid,
'dzb_dtau', nf90_float, nc2d, ncv), &
1124 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1126 buffer =
'tendency_of_ice_base_altitude'
1127 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1129 buffer =
'Rate of change of the topography of the ice base'
1130 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1132 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1134 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1137 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1139 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1141 call
check( nf90_def_var(ncid,
'dzl_dtau', nf90_float, nc2d, ncv), &
1144 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1146 buffer =
'tendency_of_bedrock_altitude'
1147 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1149 buffer =
'Rate of change of the topography of the lithosphere surface'
1150 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1152 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1154 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1157 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1159 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1161 call
check( nf90_def_var(ncid,
'dH_c_dtau', nf90_float, nc2d, ncv), &
1164 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1166 buffer =
'tendency_of_land_ice_cold_layer_thickness'
1167 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1169 buffer =
'Rate of change of the thickness of the cold ice layer'
1170 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1172 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1174 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1177 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1179 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1181 call
check( nf90_def_var(ncid,
'dH_t_dtau', nf90_float, nc2d, ncv), &
1184 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1186 buffer =
'tendency_of_land_ice_temperate_layer_thickness'
1187 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1189 buffer =
'Rate of change of the thickness of the temperate ice layer'
1190 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1192 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1194 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1197 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1199 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1201 call
check( nf90_def_var(ncid,
'dH_dtau', nf90_float, nc2d, ncv), &
1204 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1206 buffer =
'tendency_of_land_ice_thickness'
1207 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1209 buffer =
'Rate of change of the ice thickness'
1210 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1212 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1214 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1217 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1219 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1221 call
check( nf90_def_var(ncid,
'vx_b_g', nf90_float, nc2d, ncv), &
1224 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1226 buffer =
'land_ice_base_x_velocity'
1227 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1229 buffer =
'Horizontal velocity vx at the ice base'
1230 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1232 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1234 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1237 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1239 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1241 call
check( nf90_def_var(ncid,
'vy_b_g', nf90_float, nc2d, ncv), &
1244 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1246 buffer =
'land_ice_base_y_velocity'
1247 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1249 buffer =
'Horizontal velocity vy at the ice base'
1250 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1252 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1254 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1257 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1259 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1261 call
check( nf90_def_var(ncid,
'vz_b', nf90_float, nc2d, ncv), &
1264 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1266 buffer =
'land_ice_base_z_velocity'
1267 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1269 buffer =
'Vertical velocity vz at the ice base'
1270 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1272 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1274 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1277 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1279 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1281 call
check( nf90_def_var(ncid,
'vh_b', nf90_float, nc2d, ncv), &
1284 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1286 buffer =
'land_ice_base_horizontal_velocity'
1287 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1289 buffer =
'Horizontal velocity vh at the ice base'
1290 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1292 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1294 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1297 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1299 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1301 call
check( nf90_def_var(ncid,
'vx_s_g', nf90_float, nc2d, ncv), &
1304 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1306 buffer =
'land_ice_surface_x_velocity'
1307 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1309 buffer =
'Horizontal velocity vx at the ice surface'
1310 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1312 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1314 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1317 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1319 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1321 call
check( nf90_def_var(ncid,
'vy_s_g', nf90_float, nc2d, ncv), &
1324 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1326 buffer =
'land_ice_surface_y_velocity'
1327 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1329 buffer =
'Horizontal velocity vy at the ice surface'
1330 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1332 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1334 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1337 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1339 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1341 call
check( nf90_def_var(ncid,
'vz_s', nf90_float, nc2d, ncv), &
1344 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1346 buffer =
'land_ice_surface_z_velocity'
1347 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1349 buffer =
'Vertical velocity vz at the ice surface'
1350 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1352 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1354 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1357 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1359 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1361 call
check( nf90_def_var(ncid,
'vh_s', nf90_float, nc2d, ncv), &
1364 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1366 buffer =
'land_ice_surface_horizontal_velocity'
1367 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1369 buffer =
'Horizontal velocity vh at the ice surface'
1370 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1372 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1374 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1377 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1379 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1381 call
check( nf90_def_var(ncid,
'temp_b', nf90_float, nc2d, ncv), &
1384 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1386 buffer =
'basal_temperature'
1387 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1389 buffer =
'Temperature at the ice base'
1390 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1392 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1394 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1397 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1399 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1401 call
check( nf90_def_var(ncid,
'temph_b', nf90_float, nc2d, ncv), &
1404 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1406 buffer =
'basal_temperature_rel_to_pmp'
1407 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1409 buffer =
'Temperature at the ice base relative to the pressure melting point'
1410 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1412 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1414 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1417 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1419 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1421 call
check( nf90_def_var(ncid,
'p_b_w', nf90_float, nc2d, ncv), &
1424 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1426 buffer =
'basal_water_pressure'
1427 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1429 buffer =
'Basal water pressure'
1430 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1432 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1434 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1437 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1439 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1441 call
check( nf90_def_var(ncid,
'H_w', nf90_float, nc2d, ncv), &
1444 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1446 buffer =
'subglacial_water_thickness'
1447 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1449 buffer =
'Effective thickness of subglacial water'
1450 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1452 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1454 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1457 call
check( nf90_inq_dimid(ncid,
'IMAX', nc2d(1)), &
1459 call
check( nf90_inq_dimid(ncid,
'JMAX', nc2d(2)), &
1461 call
check( nf90_def_var(ncid,
'q_gl_g', nf90_float, nc2d, ncv), &
1464 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1466 buffer =
'land_ice_volume_flux_across_gl'
1467 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1469 buffer =
'Horizontal volume flux across the grounding line'
1470 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1472 call
check( nf90_put_att(ncid, ncv,
'grid_mapping',
'crs'), &
1474 call
check( nf90_put_att(ncid, ncv,
'coordinates',
'lat lon'), &
1477 call
check( nf90_def_var(ncid,
'V_tot', nf90_float, ncv), &
1480 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1482 buffer =
'land_ice_volume'
1483 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1485 buffer =
'Ice volume'
1486 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1489 call
check( nf90_def_var(ncid,
'A_grounded', nf90_float, ncv), &
1492 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1494 buffer =
'land_ice_area_grounded'
1495 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1497 buffer =
'Area covered by grounded ice'
1498 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1501 call
check( nf90_def_var(ncid,
'A_floating', nf90_float, ncv), &
1504 call
check( nf90_put_att(ncid, ncv,
'units', trim(buffer)), &
1506 buffer =
'land_ice_area_floating'
1507 call
check( nf90_put_att(ncid, ncv,
'standard_name', trim(buffer)), &
1509 buffer =
'Area covered by floating ice'
1510 call
check( nf90_put_att(ncid, ncv,
'long_name', trim(buffer)), &
1513 call
check( nf90_enddef(ncid), thisroutine )
1526 if ( (maske(j,i)==0).or.(maske(j,i)==3) ) &
1527 v_tot = v_tot + (h_c(j,i)+h_t(j,i))*area(j,i)
1529 if (maske(j,i)==0) &
1530 a_grounded = a_grounded + area(j,i)
1532 if (maske(j,i)==3) &
1533 a_floating = a_floating + area(j,i)
1540 #if ( !defined(OUT_TIMES) || OUT_TIMES==1 )
1541 time_conv =
real(time/year_sec,sp)
1542 #elif OUT_TIMES == 2
1543 time_conv =
real((time+year_zero)/year_sec,sp)
1545 stop
' output_nc: OUT_TIMES must be either 1 or 2!'
1548 delta_ts_conv =
real(delta_ts,sp)
1549 glac_index_conv =
real(glac_index,sp)
1550 z_sl_conv =
real(z_sl,sp)
1551 v_tot_conv =
real(v_tot,sp)
1552 a_grounded_conv =
real(a_grounded,sp)
1553 a_floating_conv =
real(a_floating,sp)
1554 h_r_conv =
real(h_r,sp)
1557 xi_conv(i) =
real(xi(i),sp)
1561 eta_conv(j) =
real(eta(j),sp)
1565 sigma_level_c_conv(kc) =
real(eaz_c_quotient(kc),sp)
1569 sigma_level_t_conv(kt) =
real(zeta_t(kt),sp)
1573 sigma_level_r_conv(kr) =
real(kr,sp)/
real(krmax,sp)
1579 maske_conv(i,j) = maske(j,i)
1580 n_cts_conv(i,j) = n_cts(j,i)
1582 lambda_conv(i,j) =
real(lambda(j,i),sp)
1583 phi_conv(i,j) =
real(phi(j,i),sp)
1584 lon_conv(i,j) =
real(lambda(j,i)*pi_180_inv,sp)
1585 lon_conv(i,j) = modulo(lon_conv(i,j)+180.0_sp, 360.0_sp)-180.0_sp
1587 lat_conv(i,j) =
real(phi(j,i) *pi_180_inv,sp)
1588 if (lat_conv(i,j) > 90.0_sp) lat_conv(i,j) = 90.0_sp
1589 if (lat_conv(i,j) < -90.0_sp) lat_conv(i,j) = -90.0_sp
1591 temp_s_conv(i,j) =
real(temp_s(j,i),sp)
1592 as_perp_conv(i,j) =
real(as_perp(j,i)*year_sec,sp)
1593 zs_conv(i,j) =
real(zs(j,i),sp)
1594 zm_conv(i,j) =
real(zm(j,i),sp)
1595 zb_conv(i,j) =
real(zb(j,i),sp)
1596 zl_conv(i,j) =
real(zl(j,i),sp)
1597 h_c_conv(i,j) =
real(H_c(j,i),sp)
1598 h_t_conv(i,j) =
real(H_t(j,i),sp)
1599 h_conv(i,j) =
real(H_c(j,i)+H_t(j,i),sp)
1600 q_bm_conv(i,j) =
real(q_bm(j,i)*year_sec,sp)
1601 q_tld_conv(i,j) =
real(q_tld(j,i)*year_sec,sp)
1602 am_perp_conv(i,j) =
real(am_perp(j,i)*year_sec,sp)
1603 qx_conv(i,j) =
real(qx(j,i)*year_sec,sp)
1604 qy_conv(i,j) =
real(qy(j,i)*year_sec,sp)
1605 dzs_dtau_conv(i,j) =
real(dzs_dtau(j,i)*year_sec,sp)
1606 dzm_dtau_conv(i,j) =
real(dzm_dtau(j,i)*year_sec,sp)
1607 dzb_dtau_conv(i,j) =
real(dzb_dtau(j,i)*year_sec,sp)
1608 dzl_dtau_conv(i,j) =
real(dzl_dtau(j,i)*year_sec,sp)
1609 dh_c_dtau_conv(i,j) =
real(dh_c_dtau(j,i)*year_sec,sp)
1610 dh_t_dtau_conv(i,j) =
real(dh_t_dtau(j,i)*year_sec,sp)
1611 dh_dtau_conv(i,j) =
real((dh_c_dtau(j,i)+dh_t_dtau(j,i))*year_sec,sp)
1612 vx_b_g_conv(i,j) =
real(vx_b_g(j,i)*year_sec,sp)
1613 vy_b_g_conv(i,j) =
real(vy_b_g(j,i)*year_sec,sp)
1614 vz_b_conv(i,j) =
real(vz_b(j,i)*year_sec,sp)
1615 vh_b_conv(i,j) = sqrt( vx_b_g_conv(i,j)**2 + vy_b_g_conv(i,j)**2 )
1616 vx_s_g_conv(i,j) =
real(vx_s_g(j,i)*year_sec,sp)
1617 vy_s_g_conv(i,j) =
real(vy_s_g(j,i)*year_sec,sp)
1618 vz_s_conv(i,j) =
real(vz_s(j,i)*year_sec,sp)
1619 vh_s_conv(i,j) = sqrt( vx_s_g_conv(i,j)**2 + vy_s_g_conv(i,j)**2 )
1620 temp_b_conv(i,j) =
real(temp_b(j,i),sp)
1621 temph_b_conv(i,j) =
real(temph_b(j,i),sp)
1622 p_b_w_conv(i,j) =
real(p_b_w(j,i),sp)
1623 h_w_conv(i,j) =
real(H_w(j,i),sp)
1624 q_gl_g_conv(i,j) =
real(q_gl_g(j,i)*year_sec,sp)
1627 temp_r_conv(i,j,kr) =
real(temp_r(kr,j,i),sp)
1631 vx_t_conv(i,j,kt) =
real(vx_t(kt,j,i)*year_sec,sp)
1632 vy_t_conv(i,j,kt) =
real(vy_t(kt,j,i)*year_sec,sp)
1633 vz_t_conv(i,j,kt) =
real(vz_t(kt,j,i)*year_sec,sp)
1634 omega_t_conv(i,j,kt) =
real(omega_t(kt,j,i),sp)
1635 age_t_conv(i,j,kt) =
real(age_t(kt,j,i)/year_sec,sp)
1639 vx_c_conv(i,j,kc) =
real(vx_c(kc,j,i)*year_sec,sp)
1640 vy_c_conv(i,j,kc) =
real(vy_c(kc,j,i)*year_sec,sp)
1641 vz_c_conv(i,j,kc) =
real(vz_c(kc,j,i)*year_sec,sp)
1642 temp_c_conv(i,j,kc) =
real(temp_c(kc,j,i),sp)
1643 age_c_conv(i,j,kc) =
real(age_c(kc,j,i)/year_sec,sp)
1651 call
check( nf90_inq_varid(ncid,
'crs', ncv), thisroutine )
1652 call
check( nf90_put_var(ncid, ncv, 0), thisroutine )
1654 call
check( nf90_inq_varid(ncid,
'time', ncv), thisroutine )
1655 call
check( nf90_put_var(ncid, ncv, time_conv), thisroutine )
1657 if (forcing_flag == 1)
then
1659 call
check( nf90_inq_varid(ncid,
'delta_ts', ncv), thisroutine )
1660 call
check( nf90_put_var(ncid, ncv, delta_ts_conv), thisroutine )
1662 else if (forcing_flag == 2)
then
1664 call
check( nf90_inq_varid(ncid,
'glac_index', ncv), thisroutine )
1665 call
check( nf90_put_var(ncid, ncv, glac_index_conv), thisroutine )
1667 else if (forcing_flag == 3)
then
1669 call
check( nf90_inq_varid(ncid,
'glac_index', ncv), thisroutine )
1670 glac_index_conv = 1.11e+11
1671 call
check( nf90_put_var(ncid, ncv, glac_index_conv), thisroutine )
1675 call
check( nf90_inq_varid(ncid,
'z_sl', ncv), thisroutine )
1676 call
check( nf90_put_var(ncid, ncv, z_sl_conv), thisroutine )
1678 call
check( nf90_inq_varid(ncid,
'xi', ncv), thisroutine )
1680 nc1cnt(1) = imax + 1
1681 call
check( nf90_put_var(ncid, ncv, xi_conv, start=nc1cor, count=nc1cnt), &
1684 call
check( nf90_inq_varid(ncid,
'eta', ncv), thisroutine )
1686 nc1cnt(1) = jmax + 1
1687 call
check( nf90_put_var(ncid, ncv, eta_conv, start=nc1cor, count=nc1cnt), &
1690 call
check( nf90_inq_varid(ncid,
'sigma_level_c', ncv), thisroutine )
1692 nc1cnt(1) = kcmax + 1
1693 call
check( nf90_put_var(ncid, ncv, sigma_level_c_conv, start=nc1cor, count=nc1cnt), &
1696 call
check( nf90_inq_varid(ncid,
'sigma_level_t', ncv), thisroutine )
1698 nc1cnt(1) = ktmax + 1
1699 call
check( nf90_put_var(ncid, ncv, sigma_level_t_conv, start=nc1cor, count=nc1cnt), &
1702 call
check( nf90_inq_varid(ncid,
'sigma_level_r', ncv), thisroutine )
1704 nc1cnt(1) = krmax + 1
1705 call
check( nf90_put_var(ncid, ncv, sigma_level_r_conv, start=nc1cor, count=nc1cnt), &
1708 call
check( nf90_inq_varid(ncid,
'lon', ncv), thisroutine )
1711 nc2cnt(1) = imax + 1
1712 nc2cnt(2) = jmax + 1
1713 call
check( nf90_put_var(ncid, ncv, lon_conv, start=nc2cor, count=nc2cnt), &
1716 call
check( nf90_inq_varid(ncid,
'lat', ncv), thisroutine )
1719 nc2cnt(1) = imax + 1
1720 nc2cnt(2) = jmax + 1
1721 call
check( nf90_put_var(ncid, ncv, lat_conv, start=nc2cor, count=nc2cnt), &
1724 call
check( nf90_inq_varid(ncid,
'lambda', ncv), thisroutine )
1727 nc2cnt(1) = imax + 1
1728 nc2cnt(2) = jmax + 1
1729 call
check( nf90_put_var(ncid, ncv, lambda_conv, start=nc2cor, count=nc2cnt), &
1732 call
check( nf90_inq_varid(ncid,
'phi', ncv), thisroutine )
1735 nc2cnt(1) = imax + 1
1736 nc2cnt(2) = jmax + 1
1737 call
check( nf90_put_var(ncid, ncv, phi_conv, start=nc2cor, count=nc2cnt), &
1740 call
check( nf90_inq_varid(ncid,
'temp_s', ncv), thisroutine )
1743 nc2cnt(1) = imax + 1
1744 nc2cnt(2) = jmax + 1
1745 call
check( nf90_put_var(ncid, ncv, temp_s_conv, start=nc2cor, count=nc2cnt), &
1748 call
check( nf90_inq_varid(ncid,
'as_perp', ncv), thisroutine )
1751 nc2cnt(1) = imax + 1
1752 nc2cnt(2) = jmax + 1
1753 call
check( nf90_put_var(ncid, ncv, as_perp_conv, start=nc2cor, count=nc2cnt), &
1756 call
check( nf90_inq_varid(ncid,
'maske', ncv), thisroutine )
1759 nc2cnt(1) = imax + 1
1760 nc2cnt(2) = jmax + 1
1761 call
check( nf90_put_var(ncid, ncv, maske_conv, start=nc2cor, count=nc2cnt), &
1764 call
check( nf90_inq_varid(ncid,
'n_cts', ncv), thisroutine )
1767 nc2cnt(1) = imax + 1
1768 nc2cnt(2) = jmax + 1
1769 call
check( nf90_put_var(ncid, ncv, n_cts_conv, start=nc2cor, count=nc2cnt), &
1772 call
check( nf90_inq_varid(ncid,
'zs', ncv), thisroutine )
1775 nc2cnt(1) = imax + 1
1776 nc2cnt(2) = jmax + 1
1777 call
check( nf90_put_var(ncid, ncv, zs_conv, start=nc2cor, count=nc2cnt), &
1780 call
check( nf90_inq_varid(ncid,
'zm', ncv), thisroutine )
1783 nc2cnt(1) = imax + 1
1784 nc2cnt(2) = jmax + 1
1785 call
check( nf90_put_var(ncid, ncv, zm_conv, start=nc2cor, count=nc2cnt), &
1788 call
check( nf90_inq_varid(ncid,
'zb', ncv), thisroutine )
1791 nc2cnt(1) = imax + 1
1792 nc2cnt(2) = jmax + 1
1793 call
check( nf90_put_var(ncid, ncv, zb_conv, start=nc2cor, count=nc2cnt), &
1796 call
check( nf90_inq_varid(ncid,
'zl', ncv), thisroutine )
1799 nc2cnt(1) = imax + 1
1800 nc2cnt(2) = jmax + 1
1801 call
check( nf90_put_var(ncid, ncv, zl_conv, start=nc2cor, count=nc2cnt), &
1804 call
check( nf90_inq_varid(ncid,
'H_c', ncv), thisroutine )
1807 nc2cnt(1) = imax + 1
1808 nc2cnt(2) = jmax + 1
1809 call
check( nf90_put_var(ncid, ncv, h_c_conv, start=nc2cor, count=nc2cnt), &
1812 call
check( nf90_inq_varid(ncid,
'H_t', ncv), thisroutine )
1815 nc2cnt(1) = imax + 1
1816 nc2cnt(2) = jmax + 1
1817 call
check( nf90_put_var(ncid, ncv, h_t_conv, start=nc2cor, count=nc2cnt), &
1820 call
check( nf90_inq_varid(ncid,
'H', ncv), thisroutine )
1823 nc2cnt(1) = imax + 1
1824 nc2cnt(2) = jmax + 1
1825 call
check( nf90_put_var(ncid, ncv, h_conv, start=nc2cor, count=nc2cnt), &
1828 call
check( nf90_inq_varid(ncid,
'H_R', ncv), thisroutine )
1829 call
check( nf90_put_var(ncid, ncv, h_r_conv), thisroutine )
1831 if (flag_3d_output)
then
1833 call
check( nf90_inq_varid(ncid,
'vx_c', ncv), thisroutine )
1837 nc3cnt(1) = imax + 1
1838 nc3cnt(2) = jmax + 1
1839 nc3cnt(3) = kcmax + 1
1840 call
check( nf90_put_var(ncid, ncv, vx_c_conv, start=nc3cor, count=nc3cnt), &
1843 call
check( nf90_inq_varid(ncid,
'vy_c', ncv), thisroutine )
1847 nc3cnt(1) = imax + 1
1848 nc3cnt(2) = jmax + 1
1849 nc3cnt(3) = kcmax + 1
1850 call
check( nf90_put_var(ncid, ncv, vy_c_conv, start=nc3cor, count=nc3cnt), &
1853 call
check( nf90_inq_varid(ncid,
'vz_c', ncv), thisroutine )
1857 nc3cnt(1) = imax + 1
1858 nc3cnt(2) = jmax + 1
1859 nc3cnt(3) = kcmax + 1
1860 call
check( nf90_put_var(ncid, ncv, vz_c_conv, start=nc3cor, count=nc3cnt), &
1863 call
check( nf90_inq_varid(ncid,
'vx_t', ncv), thisroutine )
1867 nc3cnt(1) = imax + 1
1868 nc3cnt(2) = jmax + 1
1869 nc3cnt(3) = ktmax + 1
1870 call
check( nf90_put_var(ncid, ncv, vx_t_conv, start=nc3cor, count=nc3cnt), &
1873 call
check( nf90_inq_varid(ncid,
'vy_t', ncv), thisroutine )
1877 nc3cnt(1) = imax + 1
1878 nc3cnt(2) = jmax + 1
1879 nc3cnt(3) = ktmax + 1
1880 call
check( nf90_put_var(ncid, ncv, vy_t_conv, start=nc3cor, count=nc3cnt), &
1883 call
check( nf90_inq_varid(ncid,
'vz_t', ncv), thisroutine )
1887 nc3cnt(1) = imax + 1
1888 nc3cnt(2) = jmax + 1
1889 nc3cnt(3) = ktmax + 1
1890 call
check( nf90_put_var(ncid, ncv, vz_t_conv, start=nc3cor, count=nc3cnt), &
1893 call
check( nf90_inq_varid(ncid,
'temp_c', ncv), thisroutine )
1897 nc3cnt(1) = imax + 1
1898 nc3cnt(2) = jmax + 1
1899 nc3cnt(3) = kcmax + 1
1900 call
check( nf90_put_var(ncid, ncv, temp_c_conv, start=nc3cor, count=nc3cnt), &
1903 call
check( nf90_inq_varid(ncid,
'omega_t', ncv), thisroutine )
1907 nc3cnt(1) = imax + 1
1908 nc3cnt(2) = jmax + 1
1909 nc3cnt(3) = ktmax + 1
1910 call
check( nf90_put_var(ncid, ncv, omega_t_conv, start=nc3cor, count=nc3cnt), &
1913 call
check( nf90_inq_varid(ncid,
'temp_r', ncv), thisroutine )
1917 nc3cnt(1) = imax + 1
1918 nc3cnt(2) = jmax + 1
1919 nc3cnt(3) = krmax + 1
1920 call
check( nf90_put_var(ncid, ncv, temp_r_conv, start=nc3cor, count=nc3cnt), &
1925 call
check( nf90_inq_varid(ncid,
'Q_bm', ncv), thisroutine )
1928 nc2cnt(1) = imax + 1
1929 nc2cnt(2) = jmax + 1
1930 call
check( nf90_put_var(ncid, ncv, q_bm_conv, start=nc2cor, count=nc2cnt), &
1933 call
check( nf90_inq_varid(ncid,
'Q_tld', ncv), thisroutine )
1936 nc2cnt(1) = imax + 1
1937 nc2cnt(2) = jmax + 1
1938 call
check( nf90_put_var(ncid, ncv, q_tld_conv, start=nc2cor, count=nc2cnt), &
1941 call
check( nf90_inq_varid(ncid,
'am_perp', ncv), thisroutine )
1944 nc2cnt(1) = imax + 1
1945 nc2cnt(2) = jmax + 1
1946 call
check( nf90_put_var(ncid, ncv, am_perp_conv, start=nc2cor, count=nc2cnt), &
1949 call
check( nf90_inq_varid(ncid,
'qx', ncv), thisroutine )
1952 nc2cnt(1) = imax + 1
1953 nc2cnt(2) = jmax + 1
1954 call
check( nf90_put_var(ncid, ncv, qx_conv, start=nc2cor, count=nc2cnt), &
1957 call
check( nf90_inq_varid(ncid,
'qy', ncv), thisroutine )
1960 nc2cnt(1) = imax + 1
1961 nc2cnt(2) = jmax + 1
1962 call
check( nf90_put_var(ncid, ncv, qy_conv, start=nc2cor, count=nc2cnt), &
1965 if (flag_3d_output)
then
1967 call
check( nf90_inq_varid(ncid,
'age_c', ncv), thisroutine )
1971 nc3cnt(1) = imax + 1
1972 nc3cnt(2) = jmax + 1
1973 nc3cnt(3) = kcmax + 1
1974 call
check( nf90_put_var(ncid, ncv, age_c_conv, start=nc3cor, count=nc3cnt), &
1977 call
check( nf90_inq_varid(ncid,
'age_t', ncv), thisroutine )
1981 nc3cnt(1) = imax + 1
1982 nc3cnt(2) = jmax + 1
1983 nc3cnt(3) = ktmax + 1
1984 call
check( nf90_put_var(ncid, ncv, age_t_conv, start=nc3cor, count=nc3cnt), &
1989 call
check( nf90_inq_varid(ncid,
'dzs_dtau', ncv), thisroutine )
1992 nc2cnt(1) = imax + 1
1993 nc2cnt(2) = jmax + 1
1994 call
check( nf90_put_var(ncid, ncv, dzs_dtau_conv, start=nc2cor, count=nc2cnt), &
1997 call
check( nf90_inq_varid(ncid,
'dzm_dtau', ncv), thisroutine )
2000 nc2cnt(1) = imax + 1
2001 nc2cnt(2) = jmax + 1
2002 call
check( nf90_put_var(ncid, ncv, dzm_dtau_conv, start=nc2cor, count=nc2cnt), &
2005 call
check( nf90_inq_varid(ncid,
'dzb_dtau', ncv), thisroutine )
2008 nc2cnt(1) = imax + 1
2009 nc2cnt(2) = jmax + 1
2010 call
check( nf90_put_var(ncid, ncv, dzb_dtau_conv, start=nc2cor, count=nc2cnt), &
2013 call
check( nf90_inq_varid(ncid,
'dzl_dtau', ncv), thisroutine )
2016 nc2cnt(1) = imax + 1
2017 nc2cnt(2) = jmax + 1
2018 call
check( nf90_put_var(ncid, ncv, dzl_dtau_conv, start=nc2cor, count=nc2cnt), &
2021 call
check( nf90_inq_varid(ncid,
'dH_c_dtau', ncv), thisroutine )
2024 nc2cnt(1) = imax + 1
2025 nc2cnt(2) = jmax + 1
2026 call
check( nf90_put_var(ncid, ncv, dh_c_dtau_conv, start=nc2cor, count=nc2cnt), &
2029 call
check( nf90_inq_varid(ncid,
'dH_t_dtau', ncv), thisroutine )
2032 nc2cnt(1) = imax + 1
2033 nc2cnt(2) = jmax + 1
2034 call
check( nf90_put_var(ncid, ncv, dh_t_dtau_conv, start=nc2cor, count=nc2cnt), &
2037 call
check( nf90_inq_varid(ncid,
'dH_dtau', ncv), thisroutine )
2040 nc2cnt(1) = imax + 1
2041 nc2cnt(2) = jmax + 1
2042 call
check( nf90_put_var(ncid, ncv, dh_dtau_conv, start=nc2cor, count=nc2cnt), &
2045 call
check( nf90_inq_varid(ncid,
'vx_b_g', ncv), thisroutine )
2048 nc2cnt(1) = imax + 1
2049 nc2cnt(2) = jmax + 1
2050 call
check( nf90_put_var(ncid, ncv, vx_b_g_conv, start=nc2cor, count=nc2cnt), &
2053 call
check( nf90_inq_varid(ncid,
'vy_b_g', ncv), thisroutine )
2056 nc2cnt(1) = imax + 1
2057 nc2cnt(2) = jmax + 1
2058 call
check( nf90_put_var(ncid, ncv, vy_b_g_conv, start=nc2cor, count=nc2cnt), &
2061 call
check( nf90_inq_varid(ncid,
'vz_b', ncv), thisroutine )
2064 nc2cnt(1) = imax + 1
2065 nc2cnt(2) = jmax + 1
2066 call
check( nf90_put_var(ncid, ncv, vz_b_conv, start=nc2cor, count=nc2cnt), &
2069 call
check( nf90_inq_varid(ncid,
'vh_b', ncv), thisroutine )
2072 nc2cnt(1) = imax + 1
2073 nc2cnt(2) = jmax + 1
2074 call
check( nf90_put_var(ncid, ncv, vh_b_conv, start=nc2cor, count=nc2cnt), &
2077 call
check( nf90_inq_varid(ncid,
'vx_s_g', ncv), thisroutine )
2080 nc2cnt(1) = imax + 1
2081 nc2cnt(2) = jmax + 1
2082 call
check( nf90_put_var(ncid, ncv, vx_s_g_conv, start=nc2cor, count=nc2cnt), &
2085 call
check( nf90_inq_varid(ncid,
'vy_s_g', ncv), thisroutine )
2088 nc2cnt(1) = imax + 1
2089 nc2cnt(2) = jmax + 1
2090 call
check( nf90_put_var(ncid, ncv, vy_s_g_conv, start=nc2cor, count=nc2cnt), &
2093 call
check( nf90_inq_varid(ncid,
'vz_s', ncv), thisroutine )
2096 nc2cnt(1) = imax + 1
2097 nc2cnt(2) = jmax + 1
2098 call
check( nf90_put_var(ncid, ncv, vz_s_conv, start=nc2cor, count=nc2cnt), &
2101 call
check( nf90_inq_varid(ncid,
'vh_s', ncv), thisroutine )
2104 nc2cnt(1) = imax + 1
2105 nc2cnt(2) = jmax + 1
2106 call
check( nf90_put_var(ncid, ncv, vh_s_conv, start=nc2cor, count=nc2cnt), &
2109 call
check( nf90_inq_varid(ncid,
'temp_b', ncv), thisroutine )
2112 nc2cnt(1) = imax + 1
2113 nc2cnt(2) = jmax + 1
2114 call
check( nf90_put_var(ncid, ncv, temp_b_conv, start=nc2cor, count=nc2cnt), &
2117 call
check( nf90_inq_varid(ncid,
'temph_b', ncv), thisroutine )
2120 nc2cnt(1) = imax + 1
2121 nc2cnt(2) = jmax + 1
2122 call
check( nf90_put_var(ncid, ncv, temph_b_conv, start=nc2cor, count=nc2cnt), &
2125 call
check( nf90_inq_varid(ncid,
'p_b_w', ncv), thisroutine )
2128 nc2cnt(1) = imax + 1
2129 nc2cnt(2) = jmax + 1
2130 call
check( nf90_put_var(ncid, ncv, p_b_w_conv, start=nc2cor, count=nc2cnt), &
2133 call
check( nf90_inq_varid(ncid,
'H_w', ncv), thisroutine )
2136 nc2cnt(1) = imax + 1
2137 nc2cnt(2) = jmax + 1
2138 call
check( nf90_put_var(ncid, ncv, h_w_conv, start=nc2cor, count=nc2cnt), &
2141 call
check( nf90_inq_varid(ncid,
'q_gl_g', ncv), thisroutine )
2144 nc2cnt(1) = imax + 1
2145 nc2cnt(2) = jmax + 1
2146 call
check( nf90_put_var(ncid, ncv, q_gl_g_conv, start=nc2cor, count=nc2cnt), &
2149 call
check( nf90_inq_varid(ncid,
'V_tot', ncv), thisroutine )
2150 call
check( nf90_put_var(ncid, ncv, v_tot_conv), thisroutine )
2152 call
check( nf90_inq_varid(ncid,
'A_grounded', ncv), thisroutine )
2153 call
check( nf90_put_var(ncid, ncv, a_grounded_conv), thisroutine )
2155 call
check( nf90_inq_varid(ncid,
'A_floating', ncv), thisroutine )
2156 call
check( nf90_put_var(ncid, ncv, a_floating_conv), thisroutine )
2160 call
check( nf90_sync(ncid), thisroutine )
2162 call
check( nf90_close(ncid), thisroutine )
2168 if (flag_3d_output)
then