42 integer,
intent(in) :: localpet
44 character(len=13) :: outfile
46 integer :: header_buffer_val = 16384
47 integer :: error, ncid, dim_nvcoord
48 integer :: dim_levp1, id_ntrac, id_vcoord
49 integer :: num_tracers_output
51 real(kind=esmf_kind_r8),
allocatable :: tmp(:,:)
53 if (localpet /= 0)
return
55 outfile=
"./gfs_ctrl.nc"
57 print*,
"- WRITE ATMOSPHERIC HEADER FILE: ", trim(outfile)
59 error = nf90_create(outfile, nf90_netcdf4, ncid)
60 call
netcdf_err(error,
'CREATING FILE='//trim(outfile) )
62 error = nf90_def_dim(ncid,
'nvcoord', nvcoord_target, dim_nvcoord)
63 call
netcdf_err(error,
'define dimension nvcoord for file='//trim(outfile) )
65 error = nf90_def_dim(ncid,
'levsp', levp1_target, dim_levp1)
66 call
netcdf_err(error,
'define dimension levsp for file='//trim(outfile) )
68 error = nf90_def_var(ncid,
'ntrac', nf90_int, id_ntrac)
69 call
netcdf_err(error,
'define var ntrac for file='//trim(outfile) )
71 error = nf90_def_var(ncid,
'vcoord', nf90_double, (/dim_levp1, dim_nvcoord/), id_vcoord)
72 call
netcdf_err(error,
'define var vcoord for file='//trim(outfile) )
74 error = nf90_enddef(ncid, header_buffer_val,4,0,4)
75 call
netcdf_err(error,
'end meta define for file='//trim(outfile) )
77 num_tracers_output = num_tracers
78 if (use_thomp_mp_climo) num_tracers_output = num_tracers + 2
79 error = nf90_put_var( ncid, id_ntrac, num_tracers_output)
80 call
netcdf_err(error,
'write var ntrac for file='//trim(outfile) )
82 allocate(tmp(levp1_target, nvcoord_target))
83 tmp(1:levp1_target,:) = vcoord_target(levp1_target:1:-1,:)
85 error = nf90_put_var( ncid, id_vcoord, tmp)
86 call
netcdf_err(error,
'write var vcoord for file='//trim(outfile) )
90 error = nf90_close(ncid)
120 ps_target_grid, zh_target_grid, &
121 tracers_target_grid, dzdt_target_grid, &
122 temp_target_grid, qnifa_climo_target_grid, &
123 qnwfa_climo_target_grid, u_s_target_grid, &
124 v_s_target_grid, u_w_target_grid, v_w_target_grid
126 use model_grid, only : i_target, ip1_target, j_target, jp1_target
129 input_type, tracers, num_tracers, &
134 integer,
intent(in) :: localpet
136 character(len=50) :: name
138 integer :: header_buffer_val = 16384
139 integer :: ncid, error, tile, i, n
140 integer :: dim_lon, dim_lat
141 integer :: dim_lonp, dim_halo
142 integer :: dim_halop, dim_latm
143 integer :: dim_lev, dim_levp1
144 integer :: j_target2, halo, halo_p1
145 integer :: id_i_bottom, id_j_bottom
146 integer :: id_i_top, id_j_top
147 integer :: id_i_right, id_j_right
148 integer :: id_i_left, id_j_left
149 integer :: id_qnifa_bottom, id_qnifa_top
150 integer :: id_qnifa_right, id_qnifa_left
151 integer :: id_qnwfa_bottom, id_qnwfa_top
152 integer :: id_qnwfa_right, id_qnwfa_left
153 integer :: id_ps_bottom, id_ps_top
154 integer :: id_ps_right, id_ps_left
155 integer :: id_t_bottom, id_t_top
156 integer :: id_t_right, id_t_left
157 integer :: id_w_bottom, id_w_top
158 integer :: id_w_right, id_w_left
159 integer :: id_zh_bottom, id_zh_top
160 integer :: id_zh_right, id_zh_left
161 integer,
allocatable :: id_tracer_bottom(:), id_tracer_top(:)
162 integer,
allocatable :: id_tracer_right(:), id_tracer_left(:)
163 integer :: id_i_w_bottom, id_j_w_bottom
164 integer :: id_i_w_top, id_j_w_top
165 integer :: id_j_w_right, id_i_w_left
166 integer :: id_j_w_left, id_i_w_right
167 integer :: id_u_w_bottom, id_u_w_top
168 integer :: id_u_w_right, id_u_w_left
169 integer :: id_v_w_bottom, id_v_w_top
170 integer :: id_v_w_right, id_v_w_left
171 integer :: id_i_s_bottom, id_j_s_bottom
172 integer :: id_i_s_top, id_j_s_top
173 integer :: id_i_s_right, id_j_s_right
174 integer :: id_i_s_left, id_j_s_left
175 integer :: id_u_s_bottom, id_u_s_top
176 integer :: id_u_s_right, id_u_s_left
177 integer :: id_v_s_bottom, id_v_s_top
178 integer :: id_v_s_right, id_v_s_left
179 integer :: i_start_top, i_end_top
180 integer :: j_start_top, j_end_top
181 integer :: i_start_bottom, i_end_bottom
182 integer :: j_start_bottom, j_end_bottom
183 integer :: i_start_left, i_end_left
184 integer :: j_start_left, j_end_left
185 integer :: i_start_right, i_end_right
186 integer :: j_start_right, j_end_right
187 integer(kind=4),
allocatable :: idum(:)
189 real(kind=4),
allocatable :: dum2d_top(:,:), dum2d_bottom(:,:)
190 real(kind=4),
allocatable :: dum2d_left(:,:), dum2d_right(:,:)
191 real(kind=4),
allocatable :: dum3d_top(:,:,:), dum3d_bottom(:,:,:)
192 real(kind=4),
allocatable :: dum3d_left(:,:,:), dum3d_right(:,:,:)
193 real(esmf_kind_r8),
allocatable :: data_one_tile(:,:)
194 real(esmf_kind_r8),
allocatable :: data_one_tile_3d(:,:,:)
196 print*,
"- OUTPUT LATERAL BOUNDARY DATA."
198 halo = halo_bndy + halo_blend
201 allocate(id_tracer_bottom(num_tracers))
202 allocate(id_tracer_top(num_tracers))
203 allocate(id_tracer_left(num_tracers))
204 allocate(id_tracer_right(num_tracers))
206 if (localpet == 0)
then
209 error = nf90_create(
"./gfs.bndy.nc", nf90_netcdf4, ncid)
212 error = nf90_def_dim(ncid,
'lon', i_target, dim_lon)
213 call
netcdf_err(error,
'defining lon dimension')
215 j_target2 = j_target - (2*halo_bndy)
216 error = nf90_def_dim(ncid,
'lat', j_target2, dim_lat)
217 call
netcdf_err(error,
'DEFINING LAT DIMENSION')
219 error = nf90_def_dim(ncid,
'lonp', ip1_target, dim_lonp)
220 call
netcdf_err(error,
'DEFINING LONP DIMENSION')
222 j_target2 = j_target - (2*halo_bndy) - 1
223 error = nf90_def_dim(ncid,
'latm', j_target2, dim_latm)
224 call
netcdf_err(error,
'DEFINING LATM DIMENSION')
226 error = nf90_def_dim(ncid,
'halo', halo, dim_halo)
227 call
netcdf_err(error,
'DEFINING HALO DIMENSION')
229 error = nf90_def_dim(ncid,
'halop', halo_p1, dim_halop)
230 call
netcdf_err(error,
'DEFINING HALOP DIMENSION')
232 error = nf90_def_dim(ncid,
'lev', lev_target, dim_lev)
233 call
netcdf_err(error,
'DEFINING LEV DIMENSION')
235 error = nf90_def_dim(ncid,
'levp', levp1_target, dim_levp1)
236 call
netcdf_err(error,
'DEFINING LEVP DIMENSION')
238 error = nf90_def_var(ncid,
'i_bottom', nf90_int, &
239 (/dim_lon/), id_i_bottom)
242 error = nf90_def_var(ncid,
'j_bottom', nf90_int, &
243 (/dim_halo/), id_j_bottom)
246 error = nf90_def_var(ncid,
'i_top', nf90_int, &
247 (/dim_lon/), id_i_top)
250 error = nf90_def_var(ncid,
'j_top', nf90_int, &
251 (/dim_halo/), id_j_top)
254 error = nf90_def_var(ncid,
'i_right', nf90_int, &
255 (/dim_halo/), id_i_right)
258 error = nf90_def_var(ncid,
'j_right', nf90_int, &
259 (/dim_lat/), id_j_right)
262 error = nf90_def_var(ncid,
'i_left', nf90_int, &
263 (/dim_halo/), id_i_left)
266 error = nf90_def_var(ncid,
'j_left', nf90_int, &
267 (/dim_lat/), id_j_left)
270 error = nf90_def_var(ncid,
'ps_bottom', nf90_float, &
271 (/dim_lon, dim_halo/), id_ps_bottom)
274 error = nf90_def_var(ncid,
'ps_top', nf90_float, &
275 (/dim_lon, dim_halo/), id_ps_top)
278 error = nf90_def_var(ncid,
'ps_right', nf90_float, &
279 (/dim_halo, dim_lat/), id_ps_right)
282 error = nf90_def_var(ncid,
'ps_left', nf90_float, &
283 (/dim_halo, dim_lat/), id_ps_left)
286 error = nf90_def_var(ncid,
't_bottom', nf90_float, &
287 (/dim_lon, dim_halo, dim_lev/), id_t_bottom)
290 error = nf90_def_var(ncid,
't_top', nf90_float, &
291 (/dim_lon, dim_halo, dim_lev/), id_t_top)
294 error = nf90_def_var(ncid,
't_right', nf90_float, &
295 (/dim_halo, dim_lat, dim_lev/), id_t_right)
298 error = nf90_def_var(ncid,
't_left', nf90_float, &
299 (/dim_halo, dim_lat, dim_lev/), id_t_left)
302 error = nf90_def_var(ncid,
'w_bottom', nf90_float, &
303 (/dim_lon, dim_halo, dim_lev/), id_w_bottom)
306 error = nf90_def_var(ncid,
'w_top', nf90_float, &
307 (/dim_lon, dim_halo, dim_lev/), id_w_top)
310 error = nf90_def_var(ncid,
'w_right', nf90_float, &
311 (/dim_halo, dim_lat, dim_lev/), id_w_right)
314 error = nf90_def_var(ncid,
'w_left', nf90_float, &
315 (/dim_halo, dim_lat, dim_lev/), id_w_left)
318 error = nf90_def_var(ncid,
'zh_bottom', nf90_float, &
319 (/dim_lon, dim_halo, dim_levp1/), id_zh_bottom)
322 error = nf90_def_var(ncid,
'zh_top', nf90_float, &
323 (/dim_lon, dim_halo, dim_levp1/), id_zh_top)
326 error = nf90_def_var(ncid,
'zh_right', nf90_float, &
327 (/dim_halo, dim_lat, dim_levp1/), id_zh_right)
330 error = nf90_def_var(ncid,
'zh_left', nf90_float, &
331 (/dim_halo, dim_lat, dim_levp1/), id_zh_left)
334 do n = 1, num_tracers
336 name = trim(tracers(n)) //
"_bottom"
337 error = nf90_def_var(ncid, name, nf90_float, &
338 (/dim_lon, dim_halo, dim_lev/), id_tracer_bottom(n))
339 call
netcdf_err(error,
'DEFINING TRACER_BOTTOM')
341 name = trim(tracers(n)) //
"_top"
342 error = nf90_def_var(ncid, name, nf90_float, &
343 (/dim_lon, dim_halo, dim_lev/), id_tracer_top(n))
346 name = trim(tracers(n)) //
"_right"
347 error = nf90_def_var(ncid, name, nf90_float, &
348 (/dim_halo, dim_lat, dim_lev/), id_tracer_right(n))
349 call
netcdf_err(error,
'DEFINING TRACER_RIGHT')
351 name = trim(tracers(n)) //
"_left"
352 error = nf90_def_var(ncid, name, nf90_float, &
353 (/dim_halo, dim_lat, dim_lev/), id_tracer_left(n))
354 call
netcdf_err(error,
'DEFINING TRACER_LEFT')
358 if (use_thomp_mp_climo)
then
360 name =
"ice_aero_bottom"
361 error = nf90_def_var(ncid, name, nf90_float, &
362 (/dim_lon, dim_halo, dim_lev/), id_qnifa_bottom)
363 call
netcdf_err(error,
'DEFINING QNIFA_BOTTOM')
365 name =
"ice_aero_top"
366 error = nf90_def_var(ncid, name, nf90_float, &
367 (/dim_lon, dim_halo, dim_lev/), id_qnifa_top)
370 name =
"ice_aero_right"
371 error = nf90_def_var(ncid, name, nf90_float, &
372 (/dim_halo, dim_lat, dim_lev/), id_qnifa_right)
373 call
netcdf_err(error,
'DEFINING QNIFA_RIGHT')
375 name =
"ice_aero_left"
376 error = nf90_def_var(ncid, name, nf90_float, &
377 (/dim_halo, dim_lat, dim_lev/), id_qnifa_left)
380 name =
"liq_aero_bottom"
381 error = nf90_def_var(ncid, name, nf90_float, &
382 (/dim_lon, dim_halo, dim_lev/), id_qnwfa_bottom)
383 call
netcdf_err(error,
'DEFINING QNWFA_BOTTOM')
385 name =
"liq_aero_top"
386 error = nf90_def_var(ncid, name, nf90_float, &
387 (/dim_lon, dim_halo, dim_lev/), id_qnwfa_top)
390 name =
"liq_aero_right"
391 error = nf90_def_var(ncid, name, nf90_float, &
392 (/dim_halo, dim_lat, dim_lev/), id_qnwfa_right)
393 call
netcdf_err(error,
'DEFINING QNWFA_RIGHT')
395 name =
"liq_aero_left"
396 error = nf90_def_var(ncid, name, nf90_float, &
397 (/dim_halo, dim_lat, dim_lev/), id_qnwfa_left)
402 error = nf90_def_var(ncid,
'i_w_bottom', nf90_int, &
403 (/dim_lonp/), id_i_w_bottom)
406 error = nf90_def_var(ncid,
'j_w_bottom', nf90_int, &
407 (/dim_halo/), id_j_w_bottom)
410 error = nf90_def_var(ncid,
'i_w_top', nf90_int, &
411 (/dim_lonp/), id_i_w_top)
414 error = nf90_def_var(ncid,
'j_w_top', nf90_int, &
415 (/dim_halo/), id_j_w_top)
418 error = nf90_def_var(ncid,
'i_w_right', nf90_int, &
419 (/dim_halop/), id_i_w_right)
422 error = nf90_def_var(ncid,
'j_w_right', nf90_int, &
423 (/dim_lat/), id_j_w_right)
426 error = nf90_def_var(ncid,
'i_w_left', nf90_int, &
427 (/dim_halop/), id_i_w_left)
430 error = nf90_def_var(ncid,
'j_w_left', nf90_int, &
431 (/dim_lat/), id_j_w_left)
434 error = nf90_def_var(ncid,
'u_w_bottom', nf90_float, &
435 (/dim_lonp, dim_halo, dim_lev/), id_u_w_bottom)
438 error = nf90_def_var(ncid,
'u_w_top', nf90_float, &
439 (/dim_lonp, dim_halo, dim_lev/), id_u_w_top)
442 error = nf90_def_var(ncid,
'u_w_right', nf90_float, &
443 (/dim_halop, dim_lat, dim_lev/), id_u_w_right)
446 error = nf90_def_var(ncid,
'u_w_left', nf90_float, &
447 (/dim_halop, dim_lat, dim_lev/), id_u_w_left)
450 error = nf90_def_var(ncid,
'v_w_bottom', nf90_float, &
451 (/dim_lonp, dim_halo, dim_lev/), id_v_w_bottom)
454 error = nf90_def_var(ncid,
'v_w_top', nf90_float, &
455 (/dim_lonp, dim_halo, dim_lev/), id_v_w_top)
458 error = nf90_def_var(ncid,
'v_w_right', nf90_float, &
459 (/dim_halop, dim_lat, dim_lev/), id_v_w_right)
462 error = nf90_def_var(ncid,
'v_w_left', nf90_float, &
463 (/dim_halop, dim_lat, dim_lev/), id_v_w_left)
466 error = nf90_def_var(ncid,
'i_s_bottom', nf90_int, &
467 (/dim_lon/), id_i_s_bottom)
470 error = nf90_def_var(ncid,
'j_s_bottom', nf90_int, &
471 (/dim_halop/), id_j_s_bottom)
474 error = nf90_def_var(ncid,
'i_s_top', nf90_int, &
475 (/dim_lon/), id_i_s_top)
478 error = nf90_def_var(ncid,
'j_s_top', nf90_int, &
479 (/dim_halop/), id_j_s_top)
482 error = nf90_def_var(ncid,
'i_s_right', nf90_int, &
483 (/dim_halo/), id_i_s_right)
486 error = nf90_def_var(ncid,
'j_s_right', nf90_int, &
487 (/dim_latm/), id_j_s_right)
490 error = nf90_def_var(ncid,
'i_s_left', nf90_int, &
491 (/dim_halo/), id_i_s_left)
494 error = nf90_def_var(ncid,
'j_s_left', nf90_int, &
495 (/dim_latm/), id_j_s_left)
498 error = nf90_def_var(ncid,
'u_s_bottom', nf90_float, &
499 (/dim_lon, dim_halop, dim_lev/), id_u_s_bottom)
502 error = nf90_def_var(ncid,
'u_s_top', nf90_float, &
503 (/dim_lon, dim_halop, dim_lev/), id_u_s_top)
506 error = nf90_def_var(ncid,
'u_s_right', nf90_float, &
507 (/dim_halo, dim_latm, dim_lev/), id_u_s_right)
510 error = nf90_def_var(ncid,
'u_s_left', nf90_float, &
511 (/dim_halo, dim_latm, dim_lev/), id_u_s_left)
514 error = nf90_def_var(ncid,
'v_s_bottom', nf90_float, &
515 (/dim_lon, dim_halop, dim_lev/), id_v_s_bottom)
518 error = nf90_def_var(ncid,
'v_s_top', nf90_float, &
519 (/dim_lon, dim_halop, dim_lev/), id_v_s_top)
522 error = nf90_def_var(ncid,
'v_s_right', nf90_float, &
523 (/dim_halo, dim_latm, dim_lev/), id_v_s_right)
526 error = nf90_def_var(ncid,
'v_s_left', nf90_float, &
527 (/dim_halo, dim_latm, dim_lev/), id_v_s_left)
531 if (trim(input_type) ==
"gaussian_nemsio")
then
532 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GAUSSIAN NEMSIO FILE')
533 elseif (trim(input_type) ==
"gfs_gaussian_nemsio")
then
534 error = nf90_put_att(ncid, nf90_global,
'source',
'SPECTRAL GFS GAUSSIAN NEMSIO FILE')
535 elseif (trim(input_type) ==
"gfs_sigio")
then
536 error = nf90_put_att(ncid, nf90_global,
'source',
'SPECTRAL GFS SIGIO FILE')
537 elseif (trim(input_type) ==
"history")
then
538 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS TILED HISTORY FILE')
539 elseif (trim(input_type) ==
"restart")
then
540 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS TILED RESTART FILE')
541 elseif (trim(input_type) ==
"gaussian_netcdf")
then
542 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GAUSSIAN NETCDF FILE')
543 elseif (trim(input_type) ==
"grib2")
then
544 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GRIB2 FILE')
547 error = nf90_enddef(ncid, header_buffer_val,4,0,4)
548 call
netcdf_err(error,
'DEFINING END OF HEADER')
559 j_start_top = j_target - halo + 1
563 i_end_bottom = i_target
569 j_start_left = halo_bndy + 1
570 j_end_left = j_target - halo_bndy
572 i_start_right = i_target - halo + 1
573 i_end_right = i_target
574 j_start_right = halo_bndy + 1
575 j_end_right = j_target - halo_bndy
577 if (localpet == 0)
then
582 allocate(idum(i_start_top:i_end_top))
583 do i = i_start_top, i_end_top
584 idum(i) = i - halo_bndy
586 error = nf90_put_var(ncid, id_i_top, idum)
589 allocate(idum(i_start_bottom:i_end_bottom))
590 do i = i_start_bottom, i_end_bottom
591 idum(i) = i - halo_bndy
593 error = nf90_put_var(ncid, id_i_bottom, idum)
596 allocate(idum(i_start_left:i_end_left))
597 do i = i_start_left, i_end_left
598 idum(i) = i - halo_bndy
600 error = nf90_put_var(ncid, id_i_left, idum)
603 allocate(idum(i_start_right:i_end_right))
604 do i = i_start_right, i_end_right
605 idum(i) = i - halo_bndy
607 error = nf90_put_var(ncid, id_i_right, idum)
610 allocate(idum(j_start_top:j_end_top))
611 do i = j_start_top, j_end_top
612 idum(i) = i - halo_bndy
614 error = nf90_put_var(ncid, id_j_top, idum)
617 allocate(idum(j_start_bottom:j_end_bottom))
618 do i = j_start_bottom, j_end_bottom
619 idum(i) = i - halo_bndy
621 error = nf90_put_var(ncid, id_j_bottom, idum)
624 allocate(idum(j_start_left:j_end_left))
625 do i = j_start_left, j_end_left
626 idum(i) = i - halo_bndy
628 error = nf90_put_var(ncid, id_j_left, idum)
631 allocate(idum(j_start_right:j_end_right))
632 do i = j_start_right, j_end_right
633 idum(i) = i - halo_bndy
635 error = nf90_put_var(ncid, id_j_right, idum)
642 if (localpet == 0)
then
643 allocate(data_one_tile(i_target,j_target))
644 allocate(dum2d_top(i_start_top:i_end_top, j_start_top:j_end_top))
645 allocate(dum2d_bottom(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom))
646 allocate(dum2d_left(i_start_left:i_end_left, j_start_left:j_end_left))
647 allocate(dum2d_right(i_start_right:i_end_right, j_start_right:j_end_right))
649 allocate(data_one_tile(0,0))
650 allocate(dum2d_top(0,0))
651 allocate(dum2d_bottom(0,0))
652 allocate(dum2d_left(0,0))
653 allocate(dum2d_right(0,0))
658 print*,
"- CALL FieldGather FOR TARGET GRID SURFACE PRESSURE"
659 call esmf_fieldgather(ps_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
660 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
663 if (localpet == 0)
then
664 dum2d_top(:,:) =
real(data_one_tile(i_start_top:i_end_top, j_start_top:j_end_top),kind=4)
665 error = nf90_put_var( ncid, id_ps_top, dum2d_top)
667 dum2d_bottom(:,:) =
real(data_one_tile(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom),kind=4)
668 error = nf90_put_var( ncid, id_ps_bottom, dum2d_bottom)
670 dum2d_left(:,:) =
real(data_one_tile(i_start_left:i_end_left, j_start_left:j_end_left),kind=4)
671 error = nf90_put_var( ncid, id_ps_left, dum2d_left)
673 dum2d_right(:,:) =
real(data_one_tile(i_start_right:i_end_right, j_start_right:j_end_right),kind=4)
674 error = nf90_put_var( ncid, id_ps_right, dum2d_right)
678 deallocate(dum2d_top, dum2d_bottom, dum2d_left, dum2d_right, data_one_tile)
682 if (localpet == 0)
then
683 allocate(data_one_tile_3d(i_target,j_target,levp1_target))
684 allocate(dum3d_top(i_start_top:i_end_top, j_start_top:j_end_top, levp1_target))
685 allocate(dum3d_bottom(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom, levp1_target))
686 allocate(dum3d_left(i_start_left:i_end_left, j_start_left:j_end_left, levp1_target))
687 allocate(dum3d_right(i_start_right:i_end_right, j_start_right:j_end_right, levp1_target))
689 allocate(data_one_tile_3d(0,0,0))
690 allocate(dum3d_top(0,0,0))
691 allocate(dum3d_bottom(0,0,0))
692 allocate(dum3d_left(0,0,0))
693 allocate(dum3d_right(0,0,0))
696 print*,
"- CALL FieldGather FOR TARGET GRID HEIGHT FOR TILE: ", tile
697 call esmf_fieldgather(zh_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
698 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
701 if (localpet == 0)
then
702 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
703 dum3d_top(:,:,1:levp1_target) = dum3d_top(:,:,levp1_target:1:-1)
704 error = nf90_put_var( ncid, id_zh_top, dum3d_top)
706 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
707 dum3d_bottom(:,:,1:levp1_target) = dum3d_bottom(:,:,levp1_target:1:-1)
708 error = nf90_put_var( ncid, id_zh_bottom, dum3d_bottom)
710 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
711 dum3d_left(:,:,1:levp1_target) = dum3d_left(:,:,levp1_target:1:-1)
712 error = nf90_put_var( ncid, id_zh_left, dum3d_left)
714 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
715 dum3d_right(:,:,1:levp1_target) = dum3d_right(:,:,levp1_target:1:-1)
716 error = nf90_put_var( ncid, id_zh_right, dum3d_right)
720 deallocate(dum3d_top, dum3d_bottom, dum3d_left, dum3d_right, data_one_tile_3d)
724 if (localpet == 0)
then
725 allocate(data_one_tile_3d(i_target,j_target,lev_target))
726 allocate(dum3d_top(i_start_top:i_end_top, j_start_top:j_end_top, lev_target))
727 allocate(dum3d_bottom(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom, lev_target))
728 allocate(dum3d_left(i_start_left:i_end_left, j_start_left:j_end_left, lev_target))
729 allocate(dum3d_right(i_start_right:i_end_right, j_start_right:j_end_right, lev_target))
731 allocate(data_one_tile_3d(0,0,0))
732 allocate(dum3d_top(0,0,0))
733 allocate(dum3d_bottom(0,0,0))
734 allocate(dum3d_left(0,0,0))
735 allocate(dum3d_right(0,0,0))
738 do n = 1, num_tracers
740 print*,
"- CALL FieldGather FOR TARGET GRID TRACER FOR TILE: ", trim(tracers(n)), tile
741 call esmf_fieldgather(tracers_target_grid(n), data_one_tile_3d, rootpet=0, tile=tile, rc=error)
742 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
745 if (localpet == 0)
then
746 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
747 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
748 error = nf90_put_var( ncid, id_tracer_top(n), dum3d_top)
750 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
751 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
752 error = nf90_put_var( ncid, id_tracer_bottom(n), dum3d_bottom)
753 call
netcdf_err(error,
'WRITING TRACER BOTTOM' )
754 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
755 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
756 error = nf90_put_var( ncid, id_tracer_left(n), dum3d_left)
757 call
netcdf_err(error,
'WRITING TRACER LEFT' )
758 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
759 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
760 error = nf90_put_var( ncid, id_tracer_right(n), dum3d_right)
761 call
netcdf_err(error,
'WRITING TRACER RIGHT' )
768 print*,
"- CALL FieldGather FOR TARGET GRID W FOR TILE: ", tile
769 call esmf_fieldgather(dzdt_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
770 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
773 if (localpet == 0)
then
774 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
775 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
776 error = nf90_put_var( ncid, id_w_top, dum3d_top)
778 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
779 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
780 error = nf90_put_var( ncid, id_w_bottom, dum3d_bottom)
782 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
783 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
784 error = nf90_put_var( ncid, id_w_left, dum3d_left)
786 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
787 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
788 error = nf90_put_var( ncid, id_w_right, dum3d_right)
794 print*,
"- CALL FieldGather FOR TARGET GRID TEMPERATURE FOR TILE: ", tile
795 call esmf_fieldgather(temp_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
796 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
799 if (localpet == 0)
then
800 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
801 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
802 error = nf90_put_var( ncid, id_t_top, dum3d_top)
804 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
805 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
806 error = nf90_put_var( ncid, id_t_bottom, dum3d_bottom)
808 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
809 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
810 error = nf90_put_var( ncid, id_t_left, dum3d_left)
812 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
813 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
814 error = nf90_put_var( ncid, id_t_right, dum3d_right)
818 if (use_thomp_mp_climo)
then
820 print*,
"- CALL FieldGather FOR TARGET GRID CLIMO QNIFA FOR TILE: ", tile
821 call esmf_fieldgather(qnifa_climo_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
822 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
825 if (localpet == 0)
then
826 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
827 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
828 error = nf90_put_var( ncid, id_qnifa_top, dum3d_top)
829 call
netcdf_err(error,
'WRITING QNIFA CLIMO TOP' )
830 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
831 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
832 error = nf90_put_var( ncid, id_qnifa_bottom, dum3d_bottom)
833 call
netcdf_err(error,
'WRITING QNIFA CLIMO BOTTOM' )
834 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
835 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
836 error = nf90_put_var( ncid, id_qnifa_left, dum3d_left)
837 call
netcdf_err(error,
'WRITING QNIFA CLIMO LEFT' )
838 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
839 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
840 error = nf90_put_var( ncid, id_qnifa_right, dum3d_right)
841 call
netcdf_err(error,
'WRITING QNIFA CLIMO RIGHT' )
844 print*,
"- CALL FieldGather FOR TARGET GRID CLIMO QNWFA FOR TILE: ", tile
845 call esmf_fieldgather(qnwfa_climo_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
846 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
849 if (localpet == 0)
then
850 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
851 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
852 error = nf90_put_var( ncid, id_qnwfa_top, dum3d_top)
853 call
netcdf_err(error,
'WRITING QNWFA CLIMO TOP' )
854 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
855 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
856 error = nf90_put_var( ncid, id_qnwfa_bottom, dum3d_bottom)
857 call
netcdf_err(error,
'WRITING QNWFA CLIMO BOTTOM' )
858 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
859 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
860 error = nf90_put_var( ncid, id_qnwfa_left, dum3d_left)
861 call
netcdf_err(error,
'WRITING QNWFA CLIMO LEFT' )
862 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
863 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
864 error = nf90_put_var( ncid, id_qnwfa_right, dum3d_right)
865 call
netcdf_err(error,
'WRITING QNWFA CLIMO RIGHT' )
870 deallocate(dum3d_top, dum3d_bottom, dum3d_left, dum3d_right, data_one_tile_3d)
879 j_start_top = jp1_target - halo_p1 + 1
880 j_end_top = jp1_target
883 i_end_bottom = i_target
885 j_end_bottom = halo_p1
889 j_start_left = halo_bndy + 2
890 j_end_left = j_target - halo_bndy
892 i_start_right = i_target - halo + 1
893 i_end_right = i_target
894 j_start_right = halo_bndy + 2
895 j_end_right = j_target - halo_bndy
897 if (localpet == 0)
then
902 allocate(idum(i_start_top:i_end_top))
903 do i = i_start_top, i_end_top
904 idum(i) = i - halo_bndy
906 error = nf90_put_var(ncid, id_i_s_top, idum)
909 allocate(idum(i_start_bottom:i_end_bottom))
910 do i = i_start_bottom, i_end_bottom
911 idum(i) = i - halo_bndy
913 error = nf90_put_var(ncid, id_i_s_bottom, idum)
916 allocate(idum(i_start_left:i_end_left))
917 do i = i_start_left, i_end_left
918 idum(i) = i - halo_bndy
920 error = nf90_put_var(ncid, id_i_s_left, idum)
923 allocate(idum(i_start_right:i_end_right))
924 do i = i_start_right, i_end_right
925 idum(i) = i - halo_bndy
927 error = nf90_put_var(ncid, id_i_s_right, idum)
930 allocate(idum(j_start_top:j_end_top))
931 do i = j_start_top, j_end_top
932 idum(i) = i - halo_bndy
934 error = nf90_put_var(ncid, id_j_s_top, idum)
937 allocate(idum(j_start_bottom:j_end_bottom))
938 do i = j_start_bottom, j_end_bottom
939 idum(i) = i - halo_bndy
941 error = nf90_put_var(ncid, id_j_s_bottom, idum)
944 allocate(idum(j_start_left:j_end_left))
945 do i = j_start_left, j_end_left
946 idum(i) = i - halo_bndy
948 error = nf90_put_var(ncid, id_j_s_left, idum)
951 allocate(idum(j_start_right:j_end_right))
952 do i = j_start_right, j_end_right
953 idum(i) = i - halo_bndy
955 error = nf90_put_var(ncid, id_j_s_right, idum)
962 if (localpet == 0)
then
963 allocate(data_one_tile_3d(i_target,jp1_target,lev_target))
964 allocate(dum3d_top(i_start_top:i_end_top, j_start_top:j_end_top, lev_target))
965 allocate(dum3d_bottom(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom, lev_target))
966 allocate(dum3d_left(i_start_left:i_end_left, j_start_left:j_end_left, lev_target))
967 allocate(dum3d_right(i_start_right:i_end_right, j_start_right:j_end_right, lev_target))
969 allocate(data_one_tile_3d(0,0,0))
970 allocate(dum3d_top(0,0,0))
971 allocate(dum3d_bottom(0,0,0))
972 allocate(dum3d_left(0,0,0))
973 allocate(dum3d_right(0,0,0))
976 print*,
"- CALL FieldGather FOR TARGET GRID U_S FOR TILE: ", tile
977 call esmf_fieldgather(u_s_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
978 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
981 if (localpet == 0)
then
982 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
983 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
984 error = nf90_put_var( ncid, id_u_s_top, dum3d_top)
986 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
987 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
988 error = nf90_put_var( ncid, id_u_s_bottom, dum3d_bottom)
990 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
991 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
992 error = nf90_put_var( ncid, id_u_s_left, dum3d_left)
994 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
995 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
996 error = nf90_put_var( ncid, id_u_s_right, dum3d_right)
1002 print*,
"- CALL FieldGather FOR TARGET GRID V_S FOR TILE: ", tile
1003 call esmf_fieldgather(v_s_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
1004 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1007 if (localpet == 0)
then
1008 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
1009 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
1010 error = nf90_put_var( ncid, id_v_s_top, dum3d_top)
1012 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
1013 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
1014 error = nf90_put_var( ncid, id_v_s_bottom, dum3d_bottom)
1015 call
netcdf_err(error,
'WRITING V_S BOTTOM' )
1016 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
1017 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
1018 error = nf90_put_var( ncid, id_v_s_left, dum3d_left)
1020 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
1021 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
1022 error = nf90_put_var( ncid, id_v_s_right, dum3d_right)
1026 deallocate(dum3d_top, dum3d_bottom, dum3d_left, dum3d_right, data_one_tile_3d)
1034 i_end_top = ip1_target
1035 j_start_top = j_target - halo + 1
1036 j_end_top = j_target
1039 i_end_bottom = ip1_target
1044 i_end_left = halo_p1
1045 j_start_left = halo_bndy + 1
1046 j_end_left = j_target - halo_bndy
1048 i_start_right = ip1_target - halo_p1 + 1
1049 i_end_right = ip1_target
1050 j_start_right = halo_bndy + 1
1051 j_end_right = j_target - halo_bndy
1053 if (localpet == 0)
then
1058 allocate(idum(i_start_top:i_end_top))
1059 do i = i_start_top, i_end_top
1060 idum(i) = i - halo_bndy
1062 error = nf90_put_var(ncid, id_i_w_top, idum)
1065 allocate(idum(i_start_bottom:i_end_bottom))
1066 do i = i_start_bottom, i_end_bottom
1067 idum(i) = i - halo_bndy
1069 error = nf90_put_var(ncid, id_i_w_bottom, idum)
1072 allocate(idum(i_start_left:i_end_left))
1073 do i = i_start_left, i_end_left
1074 idum(i) = i - halo_bndy
1076 error = nf90_put_var(ncid, id_i_w_left, idum)
1079 allocate(idum(i_start_right:i_end_right))
1080 do i = i_start_right, i_end_right
1081 idum(i) = i - halo_bndy
1083 error = nf90_put_var(ncid, id_i_w_right, idum)
1086 allocate(idum(j_start_top:j_end_top))
1087 do i = j_start_top, j_end_top
1088 idum(i) = i - halo_bndy
1090 error = nf90_put_var(ncid, id_j_w_top, idum)
1093 allocate(idum(j_start_bottom:j_end_bottom))
1094 do i = j_start_bottom, j_end_bottom
1095 idum(i) = i - halo_bndy
1097 error = nf90_put_var(ncid, id_j_w_bottom, idum)
1100 allocate(idum(j_start_left:j_end_left))
1101 do i = j_start_left, j_end_left
1102 idum(i) = i - halo_bndy
1104 error = nf90_put_var(ncid, id_j_w_left, idum)
1107 allocate(idum(j_start_right:j_end_right))
1108 do i = j_start_right, j_end_right
1109 idum(i) = i - halo_bndy
1111 error = nf90_put_var(ncid, id_j_w_right, idum)
1118 if (localpet == 0)
then
1119 allocate(data_one_tile_3d(ip1_target,j_target,lev_target))
1120 allocate(dum3d_top(i_start_top:i_end_top, j_start_top:j_end_top, lev_target))
1121 allocate(dum3d_bottom(i_start_bottom:i_end_bottom, j_start_bottom:j_end_bottom, lev_target))
1122 allocate(dum3d_left(i_start_left:i_end_left, j_start_left:j_end_left, lev_target))
1123 allocate(dum3d_right(i_start_right:i_end_right, j_start_right:j_end_right, lev_target))
1125 allocate(data_one_tile_3d(0,0,0))
1126 allocate(dum3d_top(0,0,0))
1127 allocate(dum3d_bottom(0,0,0))
1128 allocate(dum3d_left(0,0,0))
1129 allocate(dum3d_right(0,0,0))
1132 print*,
"- CALL FieldGather FOR TARGET GRID U_W FOR TILE: ", tile
1133 call esmf_fieldgather(u_w_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
1134 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1137 if (localpet == 0)
then
1138 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
1139 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
1140 error = nf90_put_var( ncid, id_u_w_top, dum3d_top)
1142 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
1143 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
1144 error = nf90_put_var( ncid, id_u_w_bottom, dum3d_bottom)
1145 call
netcdf_err(error,
'WRITING U_W BOTTOM' )
1146 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
1147 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
1148 error = nf90_put_var( ncid, id_u_w_left, dum3d_left)
1150 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
1151 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
1152 error = nf90_put_var( ncid, id_u_w_right, dum3d_right)
1158 print*,
"- CALL FieldGather FOR TARGET GRID V_W FOR TILE: ", tile
1159 call esmf_fieldgather(v_w_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
1160 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1163 if (localpet == 0)
then
1164 dum3d_top(:,:,:) =
real(data_one_tile_3d(i_start_top:i_end_top,j_start_top:j_end_top,:),kind=4)
1165 dum3d_top(:,:,1:lev_target) = dum3d_top(:,:,lev_target:1:-1)
1166 error = nf90_put_var( ncid, id_v_w_top, dum3d_top)
1168 dum3d_bottom(:,:,:) =
real(data_one_tile_3d(i_start_bottom:i_end_bottom,j_start_bottom:j_end_bottom,:),kind=4)
1169 dum3d_bottom(:,:,1:lev_target) = dum3d_bottom(:,:,lev_target:1:-1)
1170 error = nf90_put_var( ncid, id_v_w_bottom, dum3d_bottom)
1171 call
netcdf_err(error,
'WRITING V_W BOTTOM' )
1172 dum3d_left(:,:,:) =
real(data_one_tile_3d(i_start_left:i_end_left,j_start_left:j_end_left,:),kind=4)
1173 dum3d_left(:,:,1:lev_target) = dum3d_left(:,:,lev_target:1:-1)
1174 error = nf90_put_var( ncid, id_v_w_left, dum3d_left)
1176 dum3d_right(:,:,:) =
real(data_one_tile_3d(i_start_right:i_end_right,j_start_right:j_end_right,:),kind=4)
1177 dum3d_right(:,:,1:lev_target) = dum3d_right(:,:,lev_target:1:-1)
1178 error = nf90_put_var( ncid, id_v_w_right, dum3d_right)
1182 deallocate(dum3d_top, dum3d_bottom, dum3d_left, dum3d_right, data_one_tile_3d)
1183 deallocate(id_tracer_bottom, id_tracer_top, id_tracer_left, id_tracer_right)
1185 if (localpet == 0) error = nf90_close(ncid)
1203 input_type, tracers, num_tracers, &
1204 use_thomp_mp_climo, &
1208 ps_target_grid, zh_target_grid, &
1209 dzdt_target_grid, delp_target_grid, &
1210 temp_target_grid, tracers_target_grid, &
1211 qnifa_climo_target_grid, qnwfa_climo_target_grid, &
1212 u_s_target_grid, v_s_target_grid, &
1213 u_w_target_grid, v_w_target_grid
1215 use model_grid, only : num_tiles_target_grid, &
1216 i_target, j_target, &
1217 ip1_target, jp1_target, &
1218 longitude_target_grid, &
1219 latitude_target_grid, &
1220 longitude_s_target_grid, &
1221 latitude_s_target_grid, &
1222 longitude_w_target_grid, &
1223 latitude_w_target_grid
1227 integer,
intent(in) :: localpet
1229 character(len=128) :: outfile
1231 integer :: error, ncid, tile, n
1232 integer :: header_buffer_val = 16384
1233 integer :: dim_lon, dim_lat
1234 integer :: dim_lonp, dim_latp
1235 integer :: dim_lev, dim_levp1, dim_ntracer
1236 integer,
allocatable :: id_tracers(:)
1237 integer :: id_lon, id_lat, id_ps
1238 integer :: id_lat_s, id_lon_s
1239 integer :: id_lat_w, id_lon_w
1240 integer :: id_w, id_zh, id_u_w
1241 integer :: id_v_w, id_u_s, id_v_s
1242 integer :: id_t, id_delp, id_qnifa, id_qnwfa
1243 integer :: i_start, i_end, j_start, j_end
1244 integer :: i_target_out, j_target_out
1245 integer :: ip1_target_out, jp1_target_out
1246 integer :: ip1_end, jp1_end, num_tracers_output
1248 real(esmf_kind_r8),
allocatable :: data_one_tile(:,:)
1249 real(esmf_kind_r8),
allocatable :: data_one_tile_3d(:,:,:)
1250 real(kind=4),
allocatable :: dum2d(:,:)
1251 real(kind=4),
allocatable :: dum3d(:,:,:)
1255 i_target_out = i_target-(2*halo)
1256 j_target_out = j_target-(2*halo)
1260 i_end = i_target - halo
1261 j_end = j_target - halo
1263 ip1_target_out = i_target_out + 1
1264 jp1_target_out = j_target_out + 1
1269 if (localpet < num_tiles_target_grid)
then
1270 allocate(data_one_tile(i_target,j_target))
1271 allocate(dum2d(i_target_out,j_target_out))
1273 allocate(data_one_tile(0,0))
1274 allocate(dum2d(0,0))
1277 allocate(id_tracers(num_tracers))
1279 header :
if (localpet < num_tiles_target_grid)
then
1282 if (regional > 0)
then
1283 outfile =
"out.atm.tile7.nc"
1285 WRITE(outfile,
'(A, I1, A)')
'out.atm.tile', tile,
'.nc'
1289 error = nf90_create(outfile, nf90_netcdf4, ncid)
1290 call
netcdf_err(error,
'CREATING FILE='//trim(outfile) )
1293 error = nf90_def_dim(ncid,
'lon', i_target_out, dim_lon)
1294 call
netcdf_err(error,
'DEFINING LON DIMENSION' )
1295 error = nf90_def_dim(ncid,
'lat', j_target_out, dim_lat)
1296 call
netcdf_err(error,
'DEFINING LAT DIMENSION' )
1297 error = nf90_def_dim(ncid,
'lonp', ip1_target_out, dim_lonp)
1298 call
netcdf_err(error,
'DEFINING LONP DIMENSION' )
1299 error = nf90_def_dim(ncid,
'latp', jp1_target_out, dim_latp)
1300 call
netcdf_err(error,
'DEFINING LATP DIMENSION' )
1301 error = nf90_def_dim(ncid,
'lev', lev_target, dim_lev)
1302 call
netcdf_err(error,
'DEFINING LEV DIMENSION' )
1303 error = nf90_def_dim(ncid,
'levp', levp1_target, dim_levp1)
1304 call
netcdf_err(error,
'DEFINING LEVP DIMENSION' )
1305 num_tracers_output = num_tracers
1306 if (use_thomp_mp_climo) num_tracers_output = num_tracers + 2
1307 error = nf90_def_dim(ncid,
'ntracer', num_tracers_output, dim_ntracer)
1308 call
netcdf_err(error,
'DEFINING NTRACER DIMENSION' )
1311 if (trim(input_type) ==
"gaussian_nemsio")
then
1312 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GAUSSIAN NEMSIO FILE')
1313 elseif (trim(input_type) ==
"gaussian_netcdf")
then
1314 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GAUSSIAN NETCDF FILE')
1315 elseif (trim(input_type) ==
"gfs_gaussian_nemsio")
then
1316 error = nf90_put_att(ncid, nf90_global,
'source',
'SPECTRAL GFS GAUSSIAN NEMSIO FILE')
1317 elseif (trim(input_type) ==
"gfs_sigio")
then
1318 error = nf90_put_att(ncid, nf90_global,
'source',
'SPECTRAL GFS SIGIO FILE')
1319 elseif (trim(input_type) ==
"history")
then
1320 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS TILED HISTORY FILE')
1321 elseif (trim(input_type) ==
"restart")
then
1322 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS TILED RESTART FILE')
1323 elseif (trim(input_type) ==
"grib2")
then
1324 error = nf90_put_att(ncid, nf90_global,
'source',
'FV3GFS GRIB2 FILE')
1328 error = nf90_def_var(ncid,
'geolon', nf90_float, (/dim_lon,dim_lat/), id_lon)
1329 call
netcdf_err(error,
'DEFINING GEOLON FIELD' )
1330 error = nf90_put_att(ncid, id_lon,
"long_name",
"Longitude")
1331 call
netcdf_err(error,
'DEFINING GEOLON NAME' )
1332 error = nf90_put_att(ncid, id_lon,
"units",
"degrees_east")
1333 call
netcdf_err(error,
'DEFINING GEOLON UNITS' )
1335 error = nf90_def_var(ncid,
'geolat', nf90_float, (/dim_lon,dim_lat/), id_lat)
1336 call
netcdf_err(error,
'DEFINING GEOLAT FIELD' )
1337 error = nf90_put_att(ncid, id_lat,
"long_name",
"Latitude")
1338 call
netcdf_err(error,
'DEFINING GEOLAT NAME' )
1339 error = nf90_put_att(ncid, id_lat,
"units",
"degrees_north")
1340 call
netcdf_err(error,
'DEFINING GEOLAT UNITS' )
1342 error = nf90_def_var(ncid,
'geolon_s', nf90_float, (/dim_lon,dim_latp/), id_lon_s)
1343 call
netcdf_err(error,
'DEFINING GEOLON_S FIELD' )
1344 error = nf90_put_att(ncid, id_lon_s,
"long_name",
"Longitude_s")
1345 call
netcdf_err(error,
'DEFINING GEOLON_S NAME' )
1346 error = nf90_put_att(ncid, id_lon_s,
"units",
"degrees_east")
1347 call
netcdf_err(error,
'DEFINING GEOLON_S UNITS' )
1349 error = nf90_def_var(ncid,
'geolat_s', nf90_float, (/dim_lon,dim_latp/), id_lat_s)
1350 call
netcdf_err(error,
'DEFINING GEOLAT_S FIELD' )
1351 error = nf90_put_att(ncid, id_lat_s,
"long_name",
"Latitude_s")
1352 call
netcdf_err(error,
'DEFINING GEOLAT_S NAME' )
1353 error = nf90_put_att(ncid, id_lat_s,
"units",
"degrees_north")
1354 call
netcdf_err(error,
'DEFINING GEOLAT_S UNITS' )
1356 error = nf90_def_var(ncid,
'geolon_w', nf90_float, (/dim_lonp,dim_lat/), id_lon_w)
1357 call
netcdf_err(error,
'DEFINING GEOLON_W FIELD' )
1358 error = nf90_put_att(ncid, id_lon_w,
"long_name",
"Longitude_w")
1359 call
netcdf_err(error,
'DEFINING GEOLON_W NAME' )
1360 error = nf90_put_att(ncid, id_lon_w,
"units",
"degrees_east")
1361 call
netcdf_err(error,
'DEFINING GEOLON_W UNITS' )
1363 error = nf90_def_var(ncid,
'geolat_w', nf90_float, (/dim_lonp,dim_lat/), id_lat_w)
1364 call
netcdf_err(error,
'DEFINING GEOLAT_W FIELD' )
1365 error = nf90_put_att(ncid, id_lat_w,
"long_name",
"Latitude_w")
1366 call
netcdf_err(error,
'DEFINING GEOLAT_W NAME' )
1367 error = nf90_put_att(ncid, id_lat_w,
"units",
"degrees_north")
1368 call
netcdf_err(error,
'DEFINING GEOLAT_W UNITS' )
1370 error = nf90_def_var(ncid,
'ps', nf90_float, (/dim_lon,dim_lat/), id_ps)
1372 error = nf90_put_att(ncid, id_ps,
"coordinates",
"geolon geolat")
1375 error = nf90_def_var(ncid,
'w', nf90_float, (/dim_lon,dim_lat,dim_lev/), id_w)
1377 error = nf90_put_att(ncid, id_w,
"coordinates",
"geolon geolat")
1380 error = nf90_def_var(ncid,
'zh', nf90_float, (/dim_lon,dim_lat,dim_levp1/), id_zh)
1382 error = nf90_put_att(ncid, id_zh,
"coordinates",
"geolon geolat")
1385 error = nf90_def_var(ncid,
't', nf90_float, (/dim_lon,dim_lat,dim_lev/), id_t)
1387 error = nf90_put_att(ncid, id_t,
"coordinates",
"geolon geolat")
1390 error = nf90_def_var(ncid,
'delp', nf90_float, (/dim_lon,dim_lat,dim_lev/), id_delp)
1392 error = nf90_put_att(ncid, id_delp,
"coordinates",
"geolon geolat")
1393 call
netcdf_err(error,
'DEFINING DELP COORD' )
1395 do n = 1, num_tracers
1396 if (localpet==0) print*,
"write to file tracer ", trim(tracers(n))
1397 error = nf90_def_var(ncid, tracers(n), nf90_float, (/dim_lon,dim_lat,dim_lev/), id_tracers(n))
1399 error = nf90_put_att(ncid, id_tracers(n),
"coordinates",
"geolon geolat")
1400 call
netcdf_err(error,
'DEFINING TRACERS COORD' )
1403 if (use_thomp_mp_climo)
then
1404 error = nf90_def_var(ncid,
'ice_aero', nf90_float, (/dim_lon,dim_lat,dim_lev/), id_qnifa)
1406 error = nf90_put_att(ncid, id_qnifa,
"coordinates",
"geolon geolat")
1407 call
netcdf_err(error,
'DEFINING QNIFA COORD' )
1409 error = nf90_def_var(ncid,
'liq_aero', nf90_float, (/dim_lon,dim_lat,dim_lev/), id_qnwfa)
1411 error = nf90_put_att(ncid, id_qnwfa,
"coordinates",
"geolon geolat")
1412 call
netcdf_err(error,
'DEFINING QNWFA COORD' )
1415 error = nf90_def_var(ncid,
'u_w', nf90_float, (/dim_lonp,dim_lat,dim_lev/), id_u_w)
1417 error = nf90_put_att(ncid, id_u_w,
"coordinates",
"geolon_w geolat_w")
1418 call
netcdf_err(error,
'DEFINING U_W COORD' )
1420 error = nf90_def_var(ncid,
'v_w', nf90_float, (/dim_lonp,dim_lat,dim_lev/), id_v_w)
1422 error = nf90_put_att(ncid, id_v_w,
"coordinates",
"geolon_w geolat_w")
1423 call
netcdf_err(error,
'DEFINING V_W COORD' )
1425 error = nf90_def_var(ncid,
'u_s', nf90_float, (/dim_lon,dim_latp,dim_lev/), id_u_s)
1427 error = nf90_put_att(ncid, id_u_s,
"coordinates",
"geolon_s geolat_s")
1428 call
netcdf_err(error,
'DEFINING U_S COORD' )
1430 error = nf90_def_var(ncid,
'v_s', nf90_float, (/dim_lon,dim_latp,dim_lev/), id_v_s)
1432 error = nf90_put_att(ncid, id_v_s,
"coordinates",
"geolon_s geolat_s")
1433 call
netcdf_err(error,
'DEFINING V_S COORD' )
1435 error = nf90_enddef(ncid, header_buffer_val,4,0,4)
1442 do tile = 1, num_tiles_target_grid
1443 print*,
"- CALL FieldGather FOR TARGET GRID LONGITUDE FOR TILE: ", tile
1444 call esmf_fieldgather(longitude_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1445 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1449 if (localpet < num_tiles_target_grid)
then
1450 dum2d(:,:) =
real(data_one_tile(i_start:i_end, j_start:j_end),kind=4)
1451 error = nf90_put_var( ncid, id_lon, dum2d)
1452 call
netcdf_err(error,
'WRITING LONGITUDE RECORD' )
1457 do tile = 1, num_tiles_target_grid
1458 print*,
"- CALL FieldGather FOR TARGET GRID LATITUDE FOR TILE: ", tile
1459 call esmf_fieldgather(latitude_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1460 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1464 if (localpet < num_tiles_target_grid)
then
1465 dum2d(:,:) =
real(data_one_tile(i_start:i_end, j_start:j_end),kind=4)
1466 error = nf90_put_var( ncid, id_lat, dum2d)
1467 call
netcdf_err(error,
'WRITING LATITUDE RECORD' )
1472 do tile = 1, num_tiles_target_grid
1473 print*,
"- CALL FieldGather FOR TARGET GRID SURFACE PRESSURE FOR TILE: ", tile
1474 call esmf_fieldgather(ps_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1475 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1479 if (localpet < num_tiles_target_grid)
then
1480 dum2d(:,:) =
real(data_one_tile(i_start:i_end, j_start:j_end),kind=4)
1481 error = nf90_put_var( ncid, id_ps, dum2d)
1482 call
netcdf_err(error,
'WRITING SURFACE PRESSURE RECORD' )
1485 deallocate(dum2d, data_one_tile)
1489 if (localpet < num_tiles_target_grid)
then
1490 allocate(dum3d(i_target_out,j_target_out,levp1_target))
1491 allocate(data_one_tile_3d(i_target,j_target,levp1_target))
1493 allocate(dum3d(0,0,0))
1494 allocate(data_one_tile_3d(0,0,0))
1497 do tile = 1, num_tiles_target_grid
1498 print*,
"- CALL FieldGather FOR TARGET GRID HEIGHT FOR TILE: ", tile
1499 call esmf_fieldgather(zh_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1500 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1504 if (localpet < num_tiles_target_grid)
then
1505 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1506 dum3d(:,:,1:levp1_target) = dum3d(:,:,levp1_target:1:-1)
1507 error = nf90_put_var( ncid, id_zh, dum3d)
1508 call
netcdf_err(error,
'WRITING HEIGHT RECORD' )
1511 deallocate(dum3d, data_one_tile_3d)
1515 if (localpet < num_tiles_target_grid)
then
1516 allocate(dum3d(i_target_out,j_target_out,lev_target))
1517 allocate(data_one_tile_3d(i_target,j_target,lev_target))
1519 allocate(dum3d(0,0,0))
1520 allocate(data_one_tile_3d(0,0,0))
1523 do tile = 1, num_tiles_target_grid
1524 print*,
"- CALL FieldGather FOR TARGET GRID VERTICAL VELOCITY FOR TILE: ", tile
1525 call esmf_fieldgather(dzdt_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1526 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1530 if (localpet < num_tiles_target_grid)
then
1531 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1532 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1533 print*,
"MIN MAX W AT WRITE = ", minval(dum3d(:,:,:)), maxval(dum3d(:,:,:))
1534 error = nf90_put_var( ncid, id_w, dum3d)
1535 call
netcdf_err(error,
'WRITING VERTICAL VELOCITY RECORD' )
1540 do tile = 1, num_tiles_target_grid
1541 print*,
"- CALL FieldGather FOR TARGET GRID DELP FOR TILE: ", tile
1542 call esmf_fieldgather(delp_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1543 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1547 if (localpet < num_tiles_target_grid)
then
1548 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1549 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1550 error = nf90_put_var( ncid, id_delp, dum3d)
1551 call
netcdf_err(error,
'WRITING DELP RECORD' )
1556 do tile = 1, num_tiles_target_grid
1557 print*,
"- CALL FieldGather FOR TARGET GRID TEMPERATURE FOR TILE: ", tile
1558 call esmf_fieldgather(temp_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1559 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1563 if (localpet < num_tiles_target_grid)
then
1564 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1565 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1566 error = nf90_put_var( ncid, id_t, dum3d)
1567 call
netcdf_err(error,
'WRITING TEMPERTAURE RECORD' )
1572 do n = 1, num_tracers
1574 do tile = 1, num_tiles_target_grid
1575 print*,
"- CALL FieldGather FOR TARGET GRID TRACER ", trim(tracers(n)),
" TILE: ", tile
1576 call esmf_fieldgather(tracers_target_grid(n), data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1577 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1581 if (localpet < num_tiles_target_grid)
then
1582 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1583 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1584 error = nf90_put_var( ncid, id_tracers(n), dum3d)
1585 call
netcdf_err(error,
'WRITING TRACER RECORD' )
1592 if (use_thomp_mp_climo)
then
1593 do tile = 1, num_tiles_target_grid
1594 print*,
"- CALL FieldGather FOR TARGET GRID QNIFA FOR TILE: ", tile
1595 call esmf_fieldgather(qnifa_climo_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1596 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1600 if (localpet < num_tiles_target_grid)
then
1601 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1602 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1603 error = nf90_put_var( ncid, id_qnifa, dum3d)
1604 call
netcdf_err(error,
'WRITING QNIFA RECORD' )
1609 do tile = 1, num_tiles_target_grid
1610 print*,
"- CALL FieldGather FOR TARGET GRID QNWFA FOR TILE: ", tile
1611 call esmf_fieldgather(qnwfa_climo_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1612 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1616 if (localpet < num_tiles_target_grid)
then
1617 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:j_end,:),kind=4)
1618 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1619 error = nf90_put_var( ncid, id_qnwfa, dum3d)
1620 call
netcdf_err(error,
'WRITING QNWFA RECORD' )
1624 deallocate(dum3d, data_one_tile_3d)
1628 if (localpet < num_tiles_target_grid)
then
1629 allocate(dum2d(i_target_out,jp1_target_out))
1630 allocate(data_one_tile(i_target,jp1_target))
1632 allocate(dum2d(0,0))
1633 allocate(data_one_tile(0,0))
1636 do tile = 1, num_tiles_target_grid
1637 print*,
"- CALL FieldGather FOR TARGET GRID LON_S FOR TILE: ", tile
1638 call esmf_fieldgather(longitude_s_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1639 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1643 if (localpet < num_tiles_target_grid)
then
1644 dum2d(:,:) =
real(data_one_tile(i_start:i_end,j_start:jp1_end),kind=4)
1645 error = nf90_put_var( ncid, id_lon_s, dum2d)
1646 call
netcdf_err(error,
'WRITING LON_S RECORD' )
1649 do tile = 1, num_tiles_target_grid
1650 print*,
"- CALL FieldGather FOR TARGET GRID LAT_S FOR TILE: ", tile
1651 call esmf_fieldgather(latitude_s_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1652 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1656 if (localpet < num_tiles_target_grid)
then
1657 dum2d(:,:) =
real(data_one_tile(i_start:i_end,j_start:jp1_end),kind=4)
1658 error = nf90_put_var( ncid, id_lat_s, dum2d)
1659 call
netcdf_err(error,
'WRITING LAT_S RECORD' )
1662 deallocate(dum2d, data_one_tile)
1666 if (localpet < num_tiles_target_grid)
then
1667 allocate(dum3d(i_target_out,jp1_target_out,lev_target))
1668 allocate(data_one_tile_3d(i_target,jp1_target,lev_target))
1670 allocate(dum3d(0,0,0))
1671 allocate(data_one_tile_3d(0,0,0))
1674 do tile = 1, num_tiles_target_grid
1675 print*,
"- CALL FieldGather FOR TARGET GRID U_S FOR TILE: ", tile
1676 call esmf_fieldgather(u_s_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1677 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1681 if (localpet < num_tiles_target_grid)
then
1682 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:jp1_end,:),kind=4)
1683 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1684 print*,
"MIN MAX US AT WRITE = ", minval(dum3d(:,:,:)), maxval(dum3d(:,:,:))
1685 error = nf90_put_var( ncid, id_u_s, dum3d)
1686 call
netcdf_err(error,
'WRITING U_S RECORD' )
1691 do tile = 1, num_tiles_target_grid
1692 print*,
"- CALL FieldGather FOR TARGET GRID V_S FOR TILE: ", tile
1693 call esmf_fieldgather(v_s_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1694 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1698 if (localpet < num_tiles_target_grid)
then
1699 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:i_end,j_start:jp1_end,:),kind=4)
1700 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1701 print*,
"MIN MAX VS AT WRITE = ", minval(dum3d(:,:,:)), maxval(dum3d(:,:,:))
1702 error = nf90_put_var( ncid, id_v_s, dum3d)
1703 call
netcdf_err(error,
'WRITING V_S RECORD' )
1706 deallocate(dum3d, data_one_tile_3d)
1710 if (localpet < num_tiles_target_grid)
then
1711 allocate(dum2d(ip1_target_out,j_target_out))
1712 allocate(data_one_tile(ip1_target,j_target))
1714 allocate(dum2d(0,0))
1715 allocate(data_one_tile(0,0))
1718 do tile = 1, num_tiles_target_grid
1719 print*,
"- CALL FieldGather FOR TARGET GRID LON_W FOR TILE: ", tile
1720 call esmf_fieldgather(longitude_w_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1721 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1725 if (localpet < num_tiles_target_grid)
then
1726 dum2d(:,:) =
real(data_one_tile(i_start:ip1_end,j_start:j_end),kind=4)
1727 error = nf90_put_var( ncid, id_lon_w, dum2d)
1728 call
netcdf_err(error,
'WRITING LON_W RECORD' )
1731 do tile = 1, num_tiles_target_grid
1732 print*,
"- CALL FieldGather FOR TARGET GRID LAT_W FOR TILE: ", tile
1733 call esmf_fieldgather(latitude_w_target_grid, data_one_tile, rootpet=tile-1, tile=tile, rc=error)
1734 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1738 if (localpet < num_tiles_target_grid)
then
1739 dum2d(:,:) =
real(data_one_tile(i_start:ip1_end,j_start:j_end),kind=4)
1740 error = nf90_put_var( ncid, id_lat_w, dum2d)
1741 call
netcdf_err(error,
'WRITING LAT_W RECORD' )
1744 deallocate(dum2d, data_one_tile)
1748 if (localpet < num_tiles_target_grid)
then
1749 allocate(dum3d(ip1_target_out,j_target_out,lev_target))
1750 allocate(data_one_tile_3d(ip1_target,j_target,lev_target))
1752 allocate(dum3d(0,0,0))
1753 allocate(data_one_tile_3d(0,0,0))
1756 do tile = 1, num_tiles_target_grid
1757 print*,
"- CALL FieldGather FOR TARGET GRID U_W FOR TILE: ", tile
1758 call esmf_fieldgather(u_w_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1759 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1763 if (localpet < num_tiles_target_grid)
then
1764 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:ip1_end,j_start:j_end,:),kind=4)
1765 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1766 print*,
"MIN MAX UW AT WRITE = ", minval(dum3d(:,:,:)), maxval(dum3d(:,:,:))
1767 error = nf90_put_var( ncid, id_u_w, dum3d)
1768 call
netcdf_err(error,
'WRITING U_W RECORD' )
1773 do tile = 1, num_tiles_target_grid
1774 print*,
"- CALL FieldGather FOR TARGET GRID V_W FOR TILE: ", tile
1775 call esmf_fieldgather(v_w_target_grid, data_one_tile_3d, rootpet=tile-1, tile=tile, rc=error)
1776 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1780 if (localpet < num_tiles_target_grid)
then
1781 dum3d(:,:,:) =
real(data_one_tile_3d(i_start:ip1_end,j_start:j_end,:),kind=4)
1782 dum3d(:,:,1:lev_target) = dum3d(:,:,lev_target:1:-1)
1783 print*,
"MIN MAX VW AT WRITE = ", minval(dum3d(:,:,:)), maxval(dum3d(:,:,:))
1784 error = nf90_put_var( ncid, id_v_w, dum3d)
1785 call
netcdf_err(error,
'WRITING V_W RECORD' )
1788 deallocate(dum3d, data_one_tile_3d, id_tracers)
1794 if (localpet < num_tiles_target_grid) error = nf90_close(ncid)
1807 use model_grid, only : num_tiles_target_grid, &
1808 landmask_target_grid, &
1809 latitude_target_grid, &
1810 longitude_target_grid, &
1811 i_target, j_target, lsoil_target
1814 regional, lai_from_climo
1820 seaice_depth_target_grid, &
1821 seaice_fract_target_grid, &
1822 seaice_skin_temp_target_grid, &
1823 skin_temp_target_grid, &
1825 soil_temp_target_grid, &
1826 ice_temp_target_grid, &
1827 soilm_liq_target_grid, &
1828 soilm_tot_target_grid, &
1829 srflag_target_grid, &
1830 snow_liq_equiv_target_grid, &
1831 snow_depth_target_grid, &
1832 snow_liq_equiv_at_ice_target_grid, &
1833 snow_depth_at_ice_target_grid, &
1835 tprcp_target_grid, &
1836 ustar_target_grid, &
1837 z0_ice_target_grid, &
1838 z0_water_target_grid, &
1842 d_conv_target_grid, &
1843 dt_cool_target_grid, &
1845 qrain_target_grid, &
1860 alnsf_target_grid, &
1861 alvwf_target_grid, &
1862 alnwf_target_grid, &
1863 facsf_target_grid, &
1864 facwf_target_grid, &
1865 max_veg_greenness_target_grid, &
1866 min_veg_greenness_target_grid, &
1867 mxsno_albedo_target_grid, &
1868 slope_type_target_grid, &
1869 soil_type_target_grid, &
1870 substrate_temp_target_grid, &
1871 veg_greenness_target_grid, &
1872 veg_type_target_grid
1876 integer,
intent(in) :: localpet
1877 character(len=128) :: outfile
1879 integer :: header_buffer_val = 16384
1880 integer :: dim_x, dim_y, dim_lsoil, dim_ice, dim_time
1881 integer :: error, i, ncid, tile
1882 integer :: id_x, id_y, id_lsoil, id_ice
1883 integer :: id_slmsk, id_time
1884 integer :: id_lat, id_lon
1885 integer :: id_tsfcl, id_tsea, id_sheleg_ice, id_sheleg_land
1886 integer :: id_zorl_water, id_zorl_ice, id_alvsf, id_alvwf
1887 integer :: id_alnsf, id_alnwf, id_vfrac
1888 integer :: id_canopy, id_f10m, id_t2m, id_tg3
1889 integer :: id_q2m, id_vtype, id_stype
1890 integer :: id_facsf, id_facwf, id_uustar
1891 integer :: id_ffmm, id_ffhh, id_hice
1892 integer :: id_fice, id_tisfc, id_tprcp
1893 integer :: id_srflag, id_snwdph_ice, id_snwdph_land, id_shdmin
1894 integer :: id_shdmax, id_slope, id_snoalb
1895 integer :: id_lai, id_ice_temp
1896 integer :: id_stc, id_smc, id_slc
1897 integer :: id_tref, id_z_c, id_c_0
1898 integer :: id_c_d, id_w_0, id_w_d
1899 integer :: id_xt, id_xs, id_xu, id_xv
1900 integer :: id_xz, id_zm, id_xtts, id_xzts
1901 integer :: id_d_conv, id_ifd, id_dt_cool
1903 integer :: i_target_out, j_target_out
1904 integer :: istart, iend, jstart, jend
1906 integer(esmf_kind_i8),
allocatable :: idata_one_tile(:,:)
1908 real(kind=4),
allocatable :: lsoil_data(:), x_data(:), y_data(:)
1909 real(kind=8),
allocatable :: dum2d(:,:), dum3d(:,:,:)
1910 real(kind=4) :: times
1911 real(kind=8),
parameter :: missing=-1.e+20_8
1912 real(esmf_kind_r8),
allocatable :: data_one_tile(:,:)
1913 real(esmf_kind_r8),
allocatable :: data_one_tile_3d(:,:,:)
1917 i_target_out = i_target-(2*halo)
1918 j_target_out = j_target-(2*halo)
1922 iend = i_target - halo
1923 jend = j_target - halo
1925 allocate(lsoil_data(lsoil_target))
1926 do i = 1, lsoil_target
1927 lsoil_data(i) =
real(float(i),kind=4)
1930 allocate(x_data(i_target_out))
1931 do i = 1, i_target_out
1932 x_data(i) =
real(float(i),kind=4)
1935 allocate(y_data(j_target_out))
1936 do i = 1, j_target_out
1937 y_data(i) =
real(float(i),kind=4)
1940 if (convert_nst)
then
1941 print*,
'- WRITE FV3 SURFACE AND NST DATA TO NETCDF FILE'
1943 print*,
'- WRITE FV3 SURFACE DATA TO NETCDF FILE'
1946 if (localpet == 0)
then
1947 allocate(data_one_tile(i_target,j_target))
1948 allocate(data_one_tile_3d(i_target,j_target,lsoil_target))
1949 allocate(idata_one_tile(i_target,j_target))
1950 allocate(dum2d(i_target_out,j_target_out))
1951 allocate(dum3d(i_target_out,j_target_out,lsoil_target))
1953 allocate(data_one_tile(0,0))
1954 allocate(data_one_tile_3d(0,0,0))
1955 allocate(idata_one_tile(0,0))
1956 allocate(dum2d(0,0))
1957 allocate(dum3d(0,0,0))
1960 tile_loop :
do tile = 1, num_tiles_target_grid
1962 local_pet :
if (localpet == 0)
then
1964 if (regional > 0)
then
1965 outfile =
"out.sfc.tile7.nc"
1967 WRITE(outfile,
'(A, I1, A)')
'out.sfc.tile', tile,
'.nc'
1971 error = nf90_create(outfile, nf90_netcdf4, ncid)
1972 call
netcdf_err(error,
'CREATING FILE='//trim(outfile) )
1975 error = nf90_def_dim(ncid,
'xaxis_1', i_target_out, dim_x)
1976 call
netcdf_err(error,
'DEFINING XAXIS DIMENSION' )
1977 error = nf90_def_dim(ncid,
'yaxis_1', j_target_out, dim_y)
1978 call
netcdf_err(error,
'DEFINING YAXIS DIMENSION' )
1979 error = nf90_def_dim(ncid,
'zaxis_1', lsoil_target, dim_lsoil)
1980 call
netcdf_err(error,
'DEFINING ZAXIS DIMENSION' )
1981 error = nf90_def_dim(ncid,
'zaxis_2', 2, dim_ice)
1982 call
netcdf_err(error,
'DEFINING ZAXIS2 DIMENSION' )
1983 error = nf90_def_dim(ncid,
'Time', 1, dim_time)
1984 call
netcdf_err(error,
'DEFINING TIME DIMENSION' )
1990 error = nf90_put_att(ncid, nf90_global,
'file_version',
'V2')
1991 call
netcdf_err(error,
'DEFINING GLOBAL ATTRIBUTE' )
1994 error = nf90_def_var(ncid,
'xaxis_1', nf90_float, (/dim_x/), id_x)
1995 call
netcdf_err(error,
'DEFINING XAXIS_1 FIELD' )
1996 error = nf90_put_att(ncid, id_x,
"long_name",
"xaxis_1")
1997 call
netcdf_err(error,
'DEFINING XAXIS_1 LONG NAME' )
1998 error = nf90_put_att(ncid, id_x,
"units",
"none")
1999 call
netcdf_err(error,
'DEFINING XAXIS_1 UNITS' )
2000 error = nf90_put_att(ncid, id_x,
"cartesian_axis",
"X")
2001 call
netcdf_err(error,
'WRITING XAXIS_1 FIELD' )
2003 error = nf90_def_var(ncid,
'yaxis_1', nf90_float, (/dim_y/), id_y)
2004 call
netcdf_err(error,
'DEFINING YAXIS_1 FIELD' )
2005 error = nf90_put_att(ncid, id_y,
"long_name",
"yaxis_1")
2006 call
netcdf_err(error,
'DEFINING YAXIS_1 LONG NAME' )
2007 error = nf90_put_att(ncid, id_y,
"units",
"none")
2008 call
netcdf_err(error,
'DEFINING YAXIS_1 UNITS' )
2009 error = nf90_put_att(ncid, id_y,
"cartesian_axis",
"Y")
2010 call
netcdf_err(error,
'WRITING YAXIS_1 FIELD' )
2012 error = nf90_def_var(ncid,
'zaxis_1', nf90_float, (/dim_lsoil/), id_lsoil)
2013 call
netcdf_err(error,
'DEFINING ZAXIS_1 FIELD' )
2014 error = nf90_put_att(ncid, id_lsoil,
"long_name",
"zaxis_1")
2015 call
netcdf_err(error,
'DEFINING ZAXIS_1 LONG NAME' )
2016 error = nf90_put_att(ncid, id_lsoil,
"units",
"none")
2017 call
netcdf_err(error,
'DEFINING ZAXIS_1 UNITS' )
2018 error = nf90_put_att(ncid, id_lsoil,
"cartesian_axis",
"Z")
2019 call
netcdf_err(error,
'WRITING ZAXIS_1 FIELD' )
2021 error = nf90_def_var(ncid,
'zaxis_2', nf90_float, (/dim_ice/), id_ice)
2022 call
netcdf_err(error,
'DEFINING ZAXIS_2 FIELD' )
2023 error = nf90_put_att(ncid, id_ice,
"long_name",
"zaxis_2")
2024 call
netcdf_err(error,
'DEFINING ZAXIS_2 LONG NAME' )
2025 error = nf90_put_att(ncid, id_ice,
"units",
"none")
2026 call
netcdf_err(error,
'DEFINING ZAXIS_2 UNITS' )
2027 error = nf90_put_att(ncid, id_ice,
"cartesian_axis",
"Z")
2028 call
netcdf_err(error,
'WRITING ZAXIS_2 FIELD' )
2030 error = nf90_def_var(ncid,
'Time', nf90_float, dim_time, id_time)
2031 call
netcdf_err(error,
'DEFINING TIME FIELD' )
2032 error = nf90_put_att(ncid, id_time,
"long_name",
"Time")
2033 call
netcdf_err(error,
'DEFINING TIME LONG NAME' )
2034 error = nf90_put_att(ncid, id_time,
"units",
"time level")
2035 call
netcdf_err(error,
'DEFINING TIME UNITS' )
2036 error = nf90_put_att(ncid, id_time,
"cartesian_axis",
"T")
2037 call
netcdf_err(error,
'WRITING TIME FIELD' )
2039 error = nf90_def_var(ncid,
'geolon', nf90_double, (/dim_x,dim_y/), id_lon)
2041 error = nf90_put_att(ncid, id_lon,
"long_name",
"Longitude")
2042 call
netcdf_err(error,
'DEFINING GEOLON LONG NAME' )
2043 error = nf90_put_att(ncid, id_lon,
"units",
"degrees_east")
2044 call
netcdf_err(error,
'DEFINING GEOLON UNITS' )
2046 error = nf90_def_var(ncid,
'geolat', nf90_double, (/dim_x,dim_y/), id_lat)
2048 error = nf90_put_att(ncid, id_lat,
"long_name",
"Latitude")
2049 call
netcdf_err(error,
'DEFINING GEOLAT LONG NAME' )
2050 error = nf90_put_att(ncid, id_lat,
"units",
"degrees_north")
2051 call
netcdf_err(error,
'DEFINING GEOLAT UNITS' )
2053 error = nf90_def_var(ncid,
'slmsk', nf90_double, (/dim_x,dim_y,dim_time/), id_slmsk)
2055 error = nf90_put_att(ncid, id_slmsk,
"long_name",
"slmsk")
2056 call
netcdf_err(error,
'DEFINING SLMSK LONG NAME' )
2057 error = nf90_put_att(ncid, id_slmsk,
"units",
"none")
2058 call
netcdf_err(error,
'DEFINING SLMSK UNITS' )
2059 error = nf90_put_att(ncid, id_slmsk,
"coordinates",
"geolon geolat")
2060 call
netcdf_err(error,
'DEFINING SLMSK COORD' )
2062 error = nf90_def_var(ncid,
'tsfcl', nf90_double, (/dim_x,dim_y,dim_time/), id_tsfcl)
2064 error = nf90_put_att(ncid, id_tsfcl,
"long_name",
"tsfcl")
2065 call
netcdf_err(error,
'DEFINING TSFCL LONG NAME' )
2066 error = nf90_put_att(ncid, id_tsfcl,
"units",
"none")
2067 call
netcdf_err(error,
'DEFINING TSFCL UNITS' )
2068 error = nf90_put_att(ncid, id_tsfcl,
"coordinates",
"geolon geolat")
2069 call
netcdf_err(error,
'DEFINING TSFCL COORD' )
2070 error = nf90_put_att(ncid, id_tsfcl,
"missing_value", missing)
2071 call
netcdf_err(error,
'DEFINING TSFCL MISSING FLAG' )
2073 error = nf90_def_var(ncid,
'tsea', nf90_double, (/dim_x,dim_y,dim_time/), id_tsea)
2075 error = nf90_put_att(ncid, id_tsea,
"long_name",
"tsea")
2076 call
netcdf_err(error,
'DEFINING TSEA LONG NAME' )
2077 error = nf90_put_att(ncid, id_tsea,
"units",
"none")
2078 call
netcdf_err(error,
'DEFINING TSEA UNITS' )
2079 error = nf90_put_att(ncid, id_tsea,
"coordinates",
"geolon geolat")
2080 call
netcdf_err(error,
'DEFINING TSEA COORD' )
2081 error = nf90_put_att(ncid, id_tsea,
"missing_value", missing)
2082 call
netcdf_err(error,
'DEFINING TSEA MISSING FLAG' )
2084 error = nf90_def_var(ncid,
'weasdi', nf90_double, (/dim_x,dim_y,dim_time/), id_sheleg_ice)
2085 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT ICE' )
2086 error = nf90_put_att(ncid, id_sheleg_ice,
"long_name",
"sheleg_ice")
2087 call
netcdf_err(error,
'DEFINING WEASD/SHELEG ICE LONG NAME' )
2088 error = nf90_put_att(ncid, id_sheleg_ice,
"units",
"none")
2089 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT ICE UNITS' )
2090 error = nf90_put_att(ncid, id_sheleg_ice,
"coordinates",
"geolon geolat")
2091 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT ICE COORD' )
2092 error = nf90_put_att(ncid, id_sheleg_ice,
"missing_value", missing)
2093 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT ICE MISSING FLAG' )
2095 error = nf90_def_var(ncid,
'weasdl', nf90_double, (/dim_x,dim_y,dim_time/), id_sheleg_land)
2096 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT LAND' )
2097 error = nf90_put_att(ncid, id_sheleg_land,
"long_name",
"sheleg_land")
2098 call
netcdf_err(error,
'DEFINING WEASD/SHELEG LAND LONG NAME' )
2099 error = nf90_put_att(ncid, id_sheleg_land,
"units",
"none")
2100 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT LAND UNITS' )
2101 error = nf90_put_att(ncid, id_sheleg_land,
"coordinates",
"geolon geolat")
2102 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT LAND COORD' )
2103 error = nf90_put_att(ncid, id_sheleg_land,
"missing_value", missing)
2104 call
netcdf_err(error,
'DEFINING WEASD/SHELEG AT LAND MISSING FLAG' )
2106 error = nf90_def_var(ncid,
'tg3', nf90_double, (/dim_x,dim_y,dim_time/), id_tg3)
2108 error = nf90_put_att(ncid, id_tg3,
"long_name",
"tg3")
2109 call
netcdf_err(error,
'DEFINING TG3 LONG NAME' )
2110 error = nf90_put_att(ncid, id_tg3,
"units",
"none")
2111 call
netcdf_err(error,
'DEFINING TG3 UNITS' )
2112 error = nf90_put_att(ncid, id_tg3,
"coordinates",
"geolon geolat")
2113 call
netcdf_err(error,
'DEFINING TG3 COORD' )
2114 error = nf90_put_att(ncid, id_tg3,
"missing_value", missing)
2115 call
netcdf_err(error,
'DEFINING TG3 MISSING FLAG' )
2117 error = nf90_def_var(ncid,
'zorli', nf90_double, (/dim_x,dim_y,dim_time/), id_zorl_ice)
2119 error = nf90_put_att(ncid, id_zorl_ice,
"long_name",
"zorli")
2120 call
netcdf_err(error,
'DEFINING ZORLI LONG NAME' )
2121 error = nf90_put_att(ncid, id_zorl_ice,
"units",
"none")
2122 call
netcdf_err(error,
'DEFINING ZORLI UNITS' )
2123 error = nf90_put_att(ncid, id_zorl_ice,
"coordinates",
"geolon geolat")
2124 call
netcdf_err(error,
'DEFINING ZORLI COORD' )
2125 error = nf90_put_att(ncid, id_zorl_ice,
"missing_value", missing)
2126 call
netcdf_err(error,
'DEFINING ZORLI MISSING FLAG' )
2128 error = nf90_def_var(ncid,
'zorlw', nf90_double, (/dim_x,dim_y,dim_time/), id_zorl_water)
2130 error = nf90_put_att(ncid, id_zorl_water,
"long_name",
"zorlw")
2131 call
netcdf_err(error,
'DEFINING ZORLW LONG NAME' )
2132 error = nf90_put_att(ncid, id_zorl_water,
"units",
"none")
2133 call
netcdf_err(error,
'DEFINING ZORLW UNITS' )
2134 error = nf90_put_att(ncid, id_zorl_water,
"coordinates",
"geolon geolat")
2135 call
netcdf_err(error,
'DEFINING ZORLW COORD' )
2136 error = nf90_put_att(ncid, id_zorl_water,
"missing_value", missing)
2137 call
netcdf_err(error,
'DEFINING ZORLW MISSING FLAG' )
2139 error = nf90_def_var(ncid,
'alvsf', nf90_double, (/dim_x,dim_y,dim_time/), id_alvsf)
2141 error = nf90_put_att(ncid, id_alvsf,
"long_name",
"alvsf")
2142 call
netcdf_err(error,
'DEFINING ALVSF LONG NAME' )
2143 error = nf90_put_att(ncid, id_alvsf,
"units",
"none")
2144 call
netcdf_err(error,
'DEFINING ALVSF UNITS' )
2145 error = nf90_put_att(ncid, id_alvsf,
"coordinates",
"geolon geolat")
2146 call
netcdf_err(error,
'DEFINING ALVSF COORD' )
2147 error = nf90_put_att(ncid, id_alvsf,
"missing_value", missing)
2148 call
netcdf_err(error,
'DEFINING ALVSF MISSING FLAG' )
2150 error = nf90_def_var(ncid,
'alvwf', nf90_double, (/dim_x,dim_y,dim_time/), id_alvwf)
2152 error = nf90_put_att(ncid, id_alvwf,
"long_name",
"alvwf")
2153 call
netcdf_err(error,
'DEFINING ALVWF LONG NAME' )
2154 error = nf90_put_att(ncid, id_alvwf,
"units",
"none")
2155 call
netcdf_err(error,
'DEFINING ALVWF UNITS' )
2156 error = nf90_put_att(ncid, id_alvwf,
"coordinates",
"geolon geolat")
2157 call
netcdf_err(error,
'DEFINING ALVWF COORD' )
2158 error = nf90_put_att(ncid, id_alvwf,
"missing_value", missing)
2159 call
netcdf_err(error,
'DEFINING ALVWF MISSING FLAG' )
2161 error = nf90_def_var(ncid,
'alnsf', nf90_double, (/dim_x,dim_y,dim_time/), id_alnsf)
2163 error = nf90_put_att(ncid, id_alnsf,
"long_name",
"alnsf")
2164 call
netcdf_err(error,
'DEFINING ALNSF LONG NAME' )
2165 error = nf90_put_att(ncid, id_alnsf,
"units",
"none")
2166 call
netcdf_err(error,
'DEFINING ALNSF UNITS' )
2167 error = nf90_put_att(ncid, id_alnsf,
"coordinates",
"geolon geolat")
2168 call
netcdf_err(error,
'DEFINING ALNSF COORD' )
2169 error = nf90_put_att(ncid, id_alnsf,
"missing_value", missing)
2170 call
netcdf_err(error,
'DEFINING ALNSF MISSING FLAG' )
2172 error = nf90_def_var(ncid,
'alnwf', nf90_double, (/dim_x,dim_y,dim_time/), id_alnwf)
2174 error = nf90_put_att(ncid, id_alnwf,
"long_name",
"alnwf")
2175 call
netcdf_err(error,
'DEFINING ALNWF LONG NAME' )
2176 error = nf90_put_att(ncid, id_alnwf,
"units",
"none")
2177 call
netcdf_err(error,
'DEFINING ALNWF UNITS' )
2178 error = nf90_put_att(ncid, id_alnwf,
"coordinates",
"geolon geolat")
2179 call
netcdf_err(error,
'DEFINING ALNWF COORD' )
2180 error = nf90_put_att(ncid, id_alnwf,
"missing_value", missing)
2181 call
netcdf_err(error,
'DEFINING ALNWF MISSING FLAG' )
2183 error = nf90_def_var(ncid,
'facsf', nf90_double, (/dim_x,dim_y,dim_time/), id_facsf)
2185 error = nf90_put_att(ncid, id_facsf,
"long_name",
"facsf")
2186 call
netcdf_err(error,
'DEFINING FACSF LONG NAME' )
2187 error = nf90_put_att(ncid, id_facsf,
"units",
"none")
2188 call
netcdf_err(error,
'DEFINING FACSF UNITS' )
2189 error = nf90_put_att(ncid, id_facsf,
"coordinates",
"geolon geolat")
2190 call
netcdf_err(error,
'DEFINING FACSF COORD' )
2192 error = nf90_def_var(ncid,
'facwf', nf90_double, (/dim_x,dim_y,dim_time/), id_facwf)
2194 error = nf90_put_att(ncid, id_facwf,
"long_name",
"facwf")
2195 call
netcdf_err(error,
'DEFINING FACWF LONG NAME' )
2196 error = nf90_put_att(ncid, id_facwf,
"units",
"none")
2197 call
netcdf_err(error,
'DEFINING FACWF UNITS' )
2198 error = nf90_put_att(ncid, id_facwf,
"coordinates",
"geolon geolat")
2199 call
netcdf_err(error,
'DEFINING FACWF COORD' )
2201 error = nf90_def_var(ncid,
'vfrac', nf90_double, (/dim_x,dim_y,dim_time/), id_vfrac)
2203 error = nf90_put_att(ncid, id_vfrac,
"long_name",
"vfrac")
2204 call
netcdf_err(error,
'DEFINING VFRAC LONG NAME' )
2205 error = nf90_put_att(ncid, id_vfrac,
"units",
"none")
2206 call
netcdf_err(error,
'DEFINING VFRAC UNITS' )
2207 error = nf90_put_att(ncid, id_vfrac,
"coordinates",
"geolon geolat")
2208 call
netcdf_err(error,
'DEFINING VFRAC COORD' )
2210 error = nf90_def_var(ncid,
'canopy', nf90_double, (/dim_x,dim_y,dim_time/), id_canopy)
2212 error = nf90_put_att(ncid, id_canopy,
"long_name",
"canopy")
2213 call
netcdf_err(error,
'DEFINING CANOPY LONG NAME' )
2214 error = nf90_put_att(ncid, id_canopy,
"units",
"none")
2215 call
netcdf_err(error,
'DEFINING CANOPY UNITS' )
2216 error = nf90_put_att(ncid, id_canopy,
"coordinates",
"geolon geolat")
2217 call
netcdf_err(error,
'DEFINING CANOPY COORD' )
2219 error = nf90_def_var(ncid,
'f10m', nf90_double, (/dim_x,dim_y,dim_time/), id_f10m)
2221 error = nf90_put_att(ncid, id_f10m,
"long_name",
"f10m")
2222 call
netcdf_err(error,
'DEFINING F10M LONG NAME' )
2223 error = nf90_put_att(ncid, id_f10m,
"units",
"none")
2224 call
netcdf_err(error,
'DEFINING F10M UNITS' )
2225 error = nf90_put_att(ncid, id_f10m,
"coordinates",
"geolon geolat")
2226 call
netcdf_err(error,
'DEFINING F10M COORD' )
2228 error = nf90_def_var(ncid,
't2m', nf90_double, (/dim_x,dim_y,dim_time/), id_t2m)
2230 error = nf90_put_att(ncid, id_t2m,
"long_name",
"t2m")
2231 call
netcdf_err(error,
'DEFINING T2M LONG NAME' )
2232 error = nf90_put_att(ncid, id_t2m,
"units",
"none")
2233 call
netcdf_err(error,
'DEFINING T2M UNITS' )
2234 error = nf90_put_att(ncid, id_t2m,
"coordinates",
"geolon geolat")
2235 call
netcdf_err(error,
'DEFINING T2M COORD' )
2237 error = nf90_def_var(ncid,
'q2m', nf90_double, (/dim_x,dim_y,dim_time/), id_q2m)
2239 error = nf90_put_att(ncid, id_q2m,
"long_name",
"q2m")
2240 call
netcdf_err(error,
'DEFINING Q2M LONG NAME' )
2241 error = nf90_put_att(ncid, id_q2m,
"units",
"none")
2242 call
netcdf_err(error,
'DEFINING Q2M UNITS' )
2243 error = nf90_put_att(ncid, id_q2m,
"coordinates",
"geolon geolat")
2244 call
netcdf_err(error,
'DEFINING Q2M COORD' )
2246 error = nf90_def_var(ncid,
'vtype', nf90_double, (/dim_x,dim_y,dim_time/), id_vtype)
2248 error = nf90_put_att(ncid, id_vtype,
"long_name",
"vtype")
2249 call
netcdf_err(error,
'DEFINING VTYPE LONG NAME' )
2250 error = nf90_put_att(ncid, id_vtype,
"units",
"none")
2251 call
netcdf_err(error,
'DEFINING VTYPE UNITS' )
2252 error = nf90_put_att(ncid, id_vtype,
"coordinates",
"geolon geolat")
2253 call
netcdf_err(error,
'DEFINING VTYPE COORD' )
2255 error = nf90_def_var(ncid,
'stype', nf90_double, (/dim_x,dim_y,dim_time/), id_stype)
2257 error = nf90_put_att(ncid, id_stype,
"long_name",
"stype")
2258 call
netcdf_err(error,
'DEFINING STYPE LONG NAME' )
2259 error = nf90_put_att(ncid, id_stype,
"units",
"none")
2260 call
netcdf_err(error,
'DEFINING STYPE UNITS' )
2261 error = nf90_put_att(ncid, id_stype,
"coordinates",
"geolon geolat")
2262 call
netcdf_err(error,
'DEFINING STYPE COORD' )
2264 error = nf90_def_var(ncid,
'uustar', nf90_double, (/dim_x,dim_y,dim_time/), id_uustar)
2266 error = nf90_put_att(ncid, id_uustar,
"long_name",
"uustar")
2267 call
netcdf_err(error,
'DEFINING UUSTAR LONG NAME' )
2268 error = nf90_put_att(ncid, id_uustar,
"units",
"none")
2269 call
netcdf_err(error,
'DEFINING UUSTAR UNITS' )
2270 error = nf90_put_att(ncid, id_uustar,
"coordinates",
"geolon geolat")
2271 call
netcdf_err(error,
'DEFINING UUSTAR COORD' )
2273 error = nf90_def_var(ncid,
'ffmm', nf90_double, (/dim_x,dim_y,dim_time/), id_ffmm)
2275 error = nf90_put_att(ncid, id_ffmm,
"long_name",
"ffmm")
2276 call
netcdf_err(error,
'DEFINING FFMM LONG NAME' )
2277 error = nf90_put_att(ncid, id_ffmm,
"units",
"none")
2278 call
netcdf_err(error,
'DEFINING FFMM UNITS' )
2279 error = nf90_put_att(ncid, id_ffmm,
"coordinates",
"geolon geolat")
2280 call
netcdf_err(error,
'DEFINING FFMM COORD' )
2282 error = nf90_def_var(ncid,
'ffhh', nf90_double, (/dim_x,dim_y,dim_time/), id_ffhh)
2284 error = nf90_put_att(ncid, id_ffhh,
"long_name",
"ffhh")
2285 call
netcdf_err(error,
'DEFINING FFHH LONG NAME' )
2286 error = nf90_put_att(ncid, id_ffhh,
"units",
"none")
2287 call
netcdf_err(error,
'DEFINING FFHH UNITS' )
2288 error = nf90_put_att(ncid, id_ffhh,
"coordinates",
"geolon geolat")
2289 call
netcdf_err(error,
'DEFINING FFHH COORD' )
2291 error = nf90_def_var(ncid,
'hice', nf90_double, (/dim_x,dim_y,dim_time/), id_hice)
2293 error = nf90_put_att(ncid, id_hice,
"long_name",
"hice")
2294 call
netcdf_err(error,
'DEFINING HICE LONG NAME' )
2295 error = nf90_put_att(ncid, id_hice,
"units",
"none")
2296 call
netcdf_err(error,
'DEFINING HICE UNITS' )
2297 error = nf90_put_att(ncid, id_hice,
"coordinates",
"geolon geolat")
2298 call
netcdf_err(error,
'DEFINING HICE COORD' )
2300 error = nf90_def_var(ncid,
'fice', nf90_double, (/dim_x,dim_y,dim_time/), id_fice)
2302 error = nf90_put_att(ncid, id_fice,
"long_name",
"fice")
2303 call
netcdf_err(error,
'DEFINING FICE LONG NAME' )
2304 error = nf90_put_att(ncid, id_fice,
"units",
"none")
2305 call
netcdf_err(error,
'DEFINING FICE UNITS' )
2306 error = nf90_put_att(ncid, id_fice,
"coordinates",
"geolon geolat")
2307 call
netcdf_err(error,
'DEFINING FICE COORD' )
2309 error = nf90_def_var(ncid,
'tisfc', nf90_double, (/dim_x,dim_y,dim_time/), id_tisfc)
2311 error = nf90_put_att(ncid, id_tisfc,
"long_name",
"tisfc")
2312 call
netcdf_err(error,
'DEFINING TISFC LONG NAME' )
2313 error = nf90_put_att(ncid, id_tisfc,
"units",
"none")
2314 call
netcdf_err(error,
'DEFINING TISFC UNITS' )
2315 error = nf90_put_att(ncid, id_tisfc,
"coordinates",
"geolon geolat")
2316 call
netcdf_err(error,
'DEFINING TISFC COORD' )
2317 error = nf90_put_att(ncid, id_tisfc,
"missing_value", missing)
2318 call
netcdf_err(error,
'DEFINING TISFC MISSING FLAG' )
2320 error = nf90_def_var(ncid,
'tprcp', nf90_double, (/dim_x,dim_y,dim_time/), id_tprcp)
2322 error = nf90_put_att(ncid, id_tprcp,
"long_name",
"tprcp")
2323 call
netcdf_err(error,
'DEFINING TPRCP LONG NAME' )
2324 error = nf90_put_att(ncid, id_tprcp,
"units",
"none")
2325 call
netcdf_err(error,
'DEFINING TPRCP UNITS' )
2326 error = nf90_put_att(ncid, id_tprcp,
"coordinates",
"geolon geolat")
2327 call
netcdf_err(error,
'DEFINING TPRCP COORD' )
2329 error = nf90_def_var(ncid,
'srflag', nf90_double, (/dim_x,dim_y,dim_time/), id_srflag)
2331 error = nf90_put_att(ncid, id_srflag,
"long_name",
"srflag")
2332 call
netcdf_err(error,
'DEFINING SRFLAG LONG NAME' )
2333 error = nf90_put_att(ncid, id_srflag,
"units",
"none")
2334 call
netcdf_err(error,
'DEFINING SRFLAG UNITS' )
2335 error = nf90_put_att(ncid, id_srflag,
"coordinates",
"geolon geolat")
2336 call
netcdf_err(error,
'DEFINING SRFLAG COORD' )
2338 error = nf90_def_var(ncid,
'snodi', nf90_double, (/dim_x,dim_y,dim_time/), id_snwdph_ice)
2339 call
netcdf_err(error,
'DEFINING SNWDPH AT ICE' )
2340 error = nf90_put_att(ncid, id_snwdph_ice,
"long_name",
"snwdph_ice")
2341 call
netcdf_err(error,
'DEFINING SNWDPH AT ICE LONG NAME' )
2342 error = nf90_put_att(ncid, id_snwdph_ice,
"units",
"none")
2343 call
netcdf_err(error,
'DEFINING SNWDPH AT ICE UNITS' )
2344 error = nf90_put_att(ncid, id_snwdph_ice,
"coordinates",
"geolon geolat")
2345 call
netcdf_err(error,
'DEFINING SNWDPH AT ICE COORD' )
2346 error = nf90_put_att(ncid, id_snwdph_ice,
"missing_value", missing)
2347 call
netcdf_err(error,
'DEFINING SNWDPH AT ICE MISSING FLAG' )
2349 error = nf90_def_var(ncid,
'snodl', nf90_double, (/dim_x,dim_y,dim_time/), id_snwdph_land)
2350 call
netcdf_err(error,
'DEFINING SNWDPH AT LAND' )
2351 error = nf90_put_att(ncid, id_snwdph_land,
"long_name",
"snwdph_land")
2352 call
netcdf_err(error,
'DEFINING SNWDPH AT LAND LONG NAME' )
2353 error = nf90_put_att(ncid, id_snwdph_land,
"units",
"none")
2354 call
netcdf_err(error,
'DEFINING SNWDPH AT LAND UNITS' )
2355 error = nf90_put_att(ncid, id_snwdph_land,
"coordinates",
"geolon geolat")
2356 call
netcdf_err(error,
'DEFINING SNWDPH AT LAND COORD' )
2357 error = nf90_put_att(ncid, id_snwdph_land,
"missing_value", missing)
2358 call
netcdf_err(error,
'DEFINING SNWDPH AT LAND MISSING FLAG' )
2360 error = nf90_def_var(ncid,
'shdmin', nf90_double, (/dim_x,dim_y,dim_time/), id_shdmin)
2362 error = nf90_put_att(ncid, id_shdmin,
"long_name",
"shdmin")
2363 call
netcdf_err(error,
'DEFINING SHDMIN LONG NAME' )
2364 error = nf90_put_att(ncid, id_shdmin,
"units",
"none")
2365 call
netcdf_err(error,
'DEFINING SHDMIN UNITS' )
2366 error = nf90_put_att(ncid, id_shdmin,
"coordinates",
"geolon geolat")
2367 call
netcdf_err(error,
'DEFINING SHDMIN COORD' )
2369 error = nf90_def_var(ncid,
'shdmax', nf90_double, (/dim_x,dim_y,dim_time/), id_shdmax)
2371 error = nf90_put_att(ncid, id_shdmax,
"long_name",
"shdmax")
2372 call
netcdf_err(error,
'DEFINING SHDMAX LONG NAME' )
2373 error = nf90_put_att(ncid, id_shdmax,
"units",
"none")
2374 call
netcdf_err(error,
'DEFINING SHDMAX UNITS' )
2375 error = nf90_put_att(ncid, id_shdmax,
"coordinates",
"geolon geolat")
2376 call
netcdf_err(error,
'DEFINING SHDMAX COORD' )
2378 error = nf90_def_var(ncid,
'slope', nf90_double, (/dim_x,dim_y,dim_time/), id_slope)
2380 error = nf90_put_att(ncid, id_slope,
"long_name",
"slope")
2381 call
netcdf_err(error,
'DEFINING SLOPE LONG NAME' )
2382 error = nf90_put_att(ncid, id_slope,
"units",
"none")
2383 call
netcdf_err(error,
'DEFINING SLOPE UNITS' )
2384 error = nf90_put_att(ncid, id_slope,
"coordinates",
"geolon geolat")
2385 call
netcdf_err(error,
'DEFINING SLOPE COORD' )
2387 error = nf90_def_var(ncid,
'snoalb', nf90_double, (/dim_x,dim_y,dim_time/), id_snoalb)
2389 error = nf90_put_att(ncid, id_snoalb,
"long_name",
"snoalb")
2390 call
netcdf_err(error,
'DEFINING SNOALB LONG NAME' )
2391 error = nf90_put_att(ncid, id_snoalb,
"units",
"none")
2392 call
netcdf_err(error,
'DEFINING SNOALB UNITS' )
2393 error = nf90_put_att(ncid, id_snoalb,
"coordinates",
"geolon geolat")
2394 call
netcdf_err(error,
'DEFINING SNOALB COORD' )
2396 if (.not. lai_from_climo)
then
2397 error = nf90_def_var(ncid,
'lai', nf90_double, (/dim_x,dim_y,dim_time/), id_lai)
2399 error = nf90_put_att(ncid, id_lai,
"long_name",
"lai")
2400 call
netcdf_err(error,
'DEFINING LAI LONG NAME' )
2401 error = nf90_put_att(ncid, id_lai,
"units",
"none")
2402 call
netcdf_err(error,
'DEFINING LAI UNITS' )
2403 error = nf90_put_att(ncid, id_lai,
"coordinates",
"geolon geolat")
2404 call
netcdf_err(error,
'DEFINING LAI COORD' )
2407 error = nf90_def_var(ncid,
'stc', nf90_double, (/dim_x,dim_y,dim_lsoil,dim_time/), id_stc)
2409 error = nf90_put_att(ncid, id_stc,
"long_name",
"stc")
2410 call
netcdf_err(error,
'DEFINING STC LONG NAME' )
2411 error = nf90_put_att(ncid, id_stc,
"units",
"none")
2412 call
netcdf_err(error,
'DEFINING STC UNITS' )
2413 error = nf90_put_att(ncid, id_stc,
"coordinates",
"geolon geolat")
2414 call
netcdf_err(error,
'DEFINING STC COORD' )
2415 error = nf90_put_att(ncid, id_stc,
"missing_value", missing)
2416 call
netcdf_err(error,
'DEFINING STC MISSING FLAG' )
2418 error = nf90_def_var(ncid,
'smc', nf90_double, (/dim_x,dim_y,dim_lsoil,dim_time/), id_smc)
2420 error = nf90_put_att(ncid, id_smc,
"long_name",
"smc")
2421 call
netcdf_err(error,
'DEFINING SMC LONG NAME' )
2422 error = nf90_put_att(ncid, id_smc,
"units",
"none")
2423 call
netcdf_err(error,
'DEFINING SMC UNITS' )
2424 error = nf90_put_att(ncid, id_smc,
"coordinates",
"geolon geolat")
2425 call
netcdf_err(error,
'DEFINING SMC COORD' )
2427 error = nf90_def_var(ncid,
'slc', nf90_double, (/dim_x,dim_y,dim_lsoil,dim_time/), id_slc)
2429 error = nf90_put_att(ncid, id_slc,
"long_name",
"slc")
2430 call
netcdf_err(error,
'DEFINING SLC LONG NAME' )
2431 error = nf90_put_att(ncid, id_slc,
"units",
"none")
2432 call
netcdf_err(error,
'DEFINING SLC UNITS' )
2433 error = nf90_put_att(ncid, id_slc,
"coordinates",
"geolon geolat")
2434 call
netcdf_err(error,
'DEFINING SLC COORD' )
2436 error = nf90_def_var(ncid,
'tiice', nf90_double, (/dim_x,dim_y,dim_ice,dim_time/), id_ice_temp)
2438 error = nf90_put_att(ncid, id_ice_temp,
"long_name",
"tiice")
2439 call
netcdf_err(error,
'DEFINING TIICE LONG NAME' )
2440 error = nf90_put_att(ncid, id_ice_temp,
"units",
"none")
2441 call
netcdf_err(error,
'DEFINING TIICE UNITS' )
2442 error = nf90_put_att(ncid, id_ice_temp,
"coordinates",
"geolon geolat")
2443 call
netcdf_err(error,
'DEFINING TIICE COORD' )
2444 error = nf90_put_att(ncid, id_ice_temp,
"missing_value", missing)
2445 call
netcdf_err(error,
'DEFINING TIICE MISSING FLAG' )
2447 if (convert_nst)
then
2449 error = nf90_def_var(ncid,
'tref', nf90_double, (/dim_x,dim_y,dim_time/), id_tref)
2451 error = nf90_put_att(ncid, id_tref,
"long_name",
"tref")
2452 call
netcdf_err(error,
'DEFINING TREF LONG NAME' )
2453 error = nf90_put_att(ncid, id_tref,
"units",
"none")
2454 call
netcdf_err(error,
'DEFINING TREF UNITS' )
2455 error = nf90_put_att(ncid, id_tref,
"coordinates",
"geolon geolat")
2456 call
netcdf_err(error,
'DEFINING TREF COORD' )
2458 error = nf90_def_var(ncid,
'z_c', nf90_double, (/dim_x,dim_y,dim_time/), id_z_c)
2460 error = nf90_put_att(ncid, id_z_c,
"long_name",
"z_c")
2461 call
netcdf_err(error,
'DEFINING Z_C LONG NAME' )
2462 error = nf90_put_att(ncid, id_z_c,
"units",
"none")
2463 call
netcdf_err(error,
'DEFINING Z_C UNITS' )
2464 error = nf90_put_att(ncid, id_z_c,
"coordinates",
"geolon geolat")
2465 call
netcdf_err(error,
'DEFINING Z_C COORD' )
2467 error = nf90_def_var(ncid,
'c_0', nf90_double, (/dim_x,dim_y,dim_time/), id_c_0)
2469 error = nf90_put_att(ncid, id_c_0,
"long_name",
"c_0")
2470 call
netcdf_err(error,
'DEFINING C_0 LONG NAME' )
2471 error = nf90_put_att(ncid, id_c_0,
"units",
"none")
2472 call
netcdf_err(error,
'DEFINING C_0 UNITS' )
2473 error = nf90_put_att(ncid, id_c_0,
"coordinates",
"geolon geolat")
2474 call
netcdf_err(error,
'DEFINING C_0 COORD' )
2476 error = nf90_def_var(ncid,
'c_d', nf90_double, (/dim_x,dim_y,dim_time/), id_c_d)
2478 error = nf90_put_att(ncid, id_c_d,
"long_name",
"c_d")
2479 call
netcdf_err(error,
'DEFINING C_D LONG NAME' )
2480 error = nf90_put_att(ncid, id_c_d,
"units",
"none")
2481 call
netcdf_err(error,
'DEFINING C_D UNITS' )
2482 error = nf90_put_att(ncid, id_c_d,
"coordinates",
"geolon geolat")
2483 call
netcdf_err(error,
'DEFINING C_D COORD' )
2485 error = nf90_def_var(ncid,
'w_0', nf90_double, (/dim_x,dim_y,dim_time/), id_w_0)
2487 error = nf90_put_att(ncid, id_w_0,
"long_name",
"w_0")
2488 call
netcdf_err(error,
'DEFINING W_0 LONG NAME' )
2489 error = nf90_put_att(ncid, id_w_0,
"units",
"none")
2490 call
netcdf_err(error,
'DEFINING W_0 UNITS' )
2491 error = nf90_put_att(ncid, id_w_0,
"coordinates",
"geolon geolat")
2492 call
netcdf_err(error,
'DEFINING W_0 COORD' )
2494 error = nf90_def_var(ncid,
'w_d', nf90_double, (/dim_x,dim_y,dim_time/), id_w_d)
2496 error = nf90_put_att(ncid, id_w_d,
"long_name",
"w_d")
2497 call
netcdf_err(error,
'DEFINING W_D LONG NAME' )
2498 error = nf90_put_att(ncid, id_w_d,
"units",
"none")
2499 call
netcdf_err(error,
'DEFINING W_D UNITS' )
2500 error = nf90_put_att(ncid, id_w_d,
"coordinates",
"geolon geolat")
2501 call
netcdf_err(error,
'DEFINING W_D COORD' )
2503 error = nf90_def_var(ncid,
'xt', nf90_double, (/dim_x,dim_y,dim_time/), id_xt)
2505 error = nf90_put_att(ncid, id_xt,
"long_name",
"xt")
2506 call
netcdf_err(error,
'DEFINING XT LONG NAME' )
2507 error = nf90_put_att(ncid, id_xt,
"units",
"none")
2509 error = nf90_put_att(ncid, id_xt,
"coordinates",
"geolon geolat")
2512 error = nf90_def_var(ncid,
'xs', nf90_double, (/dim_x,dim_y,dim_time/), id_xs)
2514 error = nf90_put_att(ncid, id_xs,
"long_name",
"xs")
2515 call
netcdf_err(error,
'DEFINING XS LONG NAME' )
2516 error = nf90_put_att(ncid, id_xs,
"units",
"none")
2518 error = nf90_put_att(ncid, id_xs,
"coordinates",
"geolon geolat")
2521 error = nf90_def_var(ncid,
'xu', nf90_double, (/dim_x,dim_y,dim_time/), id_xu)
2523 error = nf90_put_att(ncid, id_xu,
"long_name",
"xu")
2524 call
netcdf_err(error,
'DEFINING XU LONG NAME' )
2525 error = nf90_put_att(ncid, id_xu,
"units",
"none")
2527 error = nf90_put_att(ncid, id_xu,
"coordinates",
"geolon geolat")
2530 error = nf90_def_var(ncid,
'xv', nf90_double, (/dim_x,dim_y,dim_time/), id_xv)
2532 error = nf90_put_att(ncid, id_xv,
"long_name",
"xv")
2533 call
netcdf_err(error,
'DEFINING XV LONG NAME' )
2534 error = nf90_put_att(ncid, id_xv,
"units",
"none")
2536 error = nf90_put_att(ncid, id_xv,
"coordinates",
"geolon geolat")
2539 error = nf90_def_var(ncid,
'xz', nf90_double, (/dim_x,dim_y,dim_time/), id_xz)
2541 error = nf90_put_att(ncid, id_xz,
"long_name",
"xz")
2542 call
netcdf_err(error,
'DEFINING XZ LONG NAME' )
2543 error = nf90_put_att(ncid, id_xz,
"units",
"none")
2545 error = nf90_put_att(ncid, id_xz,
"coordinates",
"geolon geolat")
2548 error = nf90_def_var(ncid,
'zm', nf90_double, (/dim_x,dim_y,dim_time/), id_zm)
2550 error = nf90_put_att(ncid, id_zm,
"long_name",
"zm")
2551 call
netcdf_err(error,
'DEFINING ZM LONG NAME' )
2552 error = nf90_put_att(ncid, id_zm,
"units",
"none")
2554 error = nf90_put_att(ncid, id_zm,
"coordinates",
"geolon geolat")
2557 error = nf90_def_var(ncid,
'xtts', nf90_double, (/dim_x,dim_y,dim_time/), id_xtts)
2559 error = nf90_put_att(ncid, id_xtts,
"long_name",
"xtts")
2560 call
netcdf_err(error,
'DEFINING XTTS LONG NAME' )
2561 error = nf90_put_att(ncid, id_xtts,
"units",
"none")
2562 call
netcdf_err(error,
'DEFINING XTTS UNITS' )
2563 error = nf90_put_att(ncid, id_xtts,
"coordinates",
"geolon geolat")
2564 call
netcdf_err(error,
'DEFINING XTTS COORD' )
2566 error = nf90_def_var(ncid,
'xzts', nf90_double, (/dim_x,dim_y,dim_time/), id_xzts)
2568 error = nf90_put_att(ncid, id_xzts,
"long_name",
"xzts")
2569 call
netcdf_err(error,
'DEFINING XZTS LONG NAME' )
2570 error = nf90_put_att(ncid, id_xzts,
"units",
"none")
2571 call
netcdf_err(error,
'DEFINING XZTS UNITS' )
2572 error = nf90_put_att(ncid, id_xzts,
"coordinates",
"geolon geolat")
2573 call
netcdf_err(error,
'DEFINING XZTS COORD' )
2575 error = nf90_def_var(ncid,
'd_conv', nf90_double, (/dim_x,dim_y,dim_time/), id_d_conv)
2577 error = nf90_put_att(ncid, id_d_conv,
"long_name",
"d_conv")
2578 call
netcdf_err(error,
'DEFINING D_CONV LONG NAME' )
2579 error = nf90_put_att(ncid, id_d_conv,
"units",
"none")
2580 call
netcdf_err(error,
'DEFINING D_CONV UNITS' )
2581 error = nf90_put_att(ncid, id_d_conv,
"coordinates",
"geolon geolat")
2582 call
netcdf_err(error,
'DEFINING D_CONV COORD' )
2584 error = nf90_def_var(ncid,
'ifd', nf90_double, (/dim_x,dim_y,dim_time/), id_ifd)
2586 error = nf90_put_att(ncid, id_ifd,
"long_name",
"ifd")
2587 call
netcdf_err(error,
'DEFINING IFD LONG NAME' )
2588 error = nf90_put_att(ncid, id_ifd,
"units",
"none")
2589 call
netcdf_err(error,
'DEFINING IFD UNITS' )
2590 error = nf90_put_att(ncid, id_ifd,
"coordinates",
"geolon geolat")
2591 call
netcdf_err(error,
'DEFINING IFD COORD' )
2593 error = nf90_def_var(ncid,
'dt_cool', nf90_double, (/dim_x,dim_y,dim_time/), id_dt_cool)
2595 error = nf90_put_att(ncid, id_dt_cool,
"long_name",
"dt_cool")
2596 call
netcdf_err(error,
'DEFINING DT_COOL LONG NAME' )
2597 error = nf90_put_att(ncid, id_dt_cool,
"units",
"none")
2598 call
netcdf_err(error,
'DEFINING DT_COOL UNITS' )
2599 error = nf90_put_att(ncid, id_dt_cool,
"coordinates",
"geolon geolat")
2600 call
netcdf_err(error,
'DEFINING DT_COOL COORD' )
2602 error = nf90_def_var(ncid,
'qrain', nf90_double, (/dim_x,dim_y,dim_time/), id_qrain)
2604 error = nf90_put_att(ncid, id_qrain,
"long_name",
"qrain")
2605 call
netcdf_err(error,
'DEFINING QRAIN LONG NAME' )
2606 error = nf90_put_att(ncid, id_qrain,
"units",
"none")
2607 call
netcdf_err(error,
'DEFINING QRAIN UNITS' )
2608 error = nf90_put_att(ncid, id_qrain,
"coordinates",
"geolon geolat")
2609 call
netcdf_err(error,
'DEFINING QRAIN COORD' )
2613 error = nf90_enddef(ncid, header_buffer_val,4,0,4)
2618 if (localpet == 0)
then
2619 error = nf90_put_var( ncid, id_lsoil, lsoil_data)
2620 call
netcdf_err(error,
'WRITING ZAXIS RECORD' )
2621 error = nf90_put_var( ncid, id_ice, (/1,2/))
2622 call
netcdf_err(error,
'WRITING ZAXIS2 RECORD' )
2623 error = nf90_put_var( ncid, id_x, x_data)
2624 call
netcdf_err(error,
'WRITING XAXIS RECORD' )
2625 error = nf90_put_var( ncid, id_y, y_data)
2626 call
netcdf_err(error,
'WRITING YAXIS RECORD' )
2628 error = nf90_put_var( ncid, id_time, times)
2629 call
netcdf_err(error,
'WRITING TIME RECORD' )
2632 print*,
"- CALL FieldGather FOR TARGET GRID LATITUDE FOR TILE: ", tile
2633 call esmf_fieldgather(latitude_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2634 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2637 if (localpet == 0)
then
2638 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2639 error = nf90_put_var( ncid, id_lat, dum2d)
2640 call
netcdf_err(error,
'WRITING LATITUDE RECORD' )
2643 print*,
"- CALL FieldGather FOR TARGET GRID LONGITUDE FOR TILE: ", tile
2644 call esmf_fieldgather(longitude_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2645 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2648 if (localpet == 0)
then
2649 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2650 error = nf90_put_var( ncid, id_lon, dum2d)
2651 call
netcdf_err(error,
'WRITING LONGITUDE RECORD' )
2654 print*,
"- CALL FieldGather FOR TARGET GRID SNOW LIQ EQUIV AT LAND FOR TILE: ", tile
2655 call esmf_fieldgather(snow_liq_equiv_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2656 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2659 if (localpet == 0)
then
2660 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2661 error = nf90_put_var( ncid, id_sheleg_land, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2662 call
netcdf_err(error,
'WRITING SNOW LIQ EQUIV AT LAND RECORD' )
2665 print*,
"- CALL FieldGather FOR TARGET GRID SNOW LIQ EQUIV AT ICE FOR TILE: ", tile
2666 call esmf_fieldgather(snow_liq_equiv_at_ice_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2667 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2670 if (localpet == 0)
then
2671 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2672 error = nf90_put_var( ncid, id_sheleg_ice, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2673 call
netcdf_err(error,
'WRITING SNOW LIQ EQUIV AT ICE RECORD' )
2676 print*,
"- CALL FieldGather FOR TARGET GRID SNOW DEPTH AT LAND FOR TILE: ", tile
2677 call esmf_fieldgather(snow_depth_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2678 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2681 if (localpet == 0)
then
2682 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2683 error = nf90_put_var( ncid, id_snwdph_land, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2684 call
netcdf_err(error,
'WRITING SNWDPH AT LAND RECORD' )
2687 print*,
"- CALL FieldGather FOR TARGET GRID SNOW DEPTH AT ICE FOR TILE: ", tile
2688 call esmf_fieldgather(snow_depth_at_ice_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2689 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2692 if (localpet == 0)
then
2693 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2694 error = nf90_put_var( ncid, id_snwdph_ice, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2695 call
netcdf_err(error,
'WRITING SNWDPH AT ICE RECORD' )
2698 print*,
"- CALL FieldGather FOR TARGET GRID SLOPE TYPE FOR TILE: ", tile
2699 call esmf_fieldgather(slope_type_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2700 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2703 if (localpet == 0)
then
2704 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2705 error = nf90_put_var( ncid, id_slope, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2706 call
netcdf_err(error,
'WRITING SLOPE RECORD' )
2709 print*,
"- CALL FieldGather FOR TARGET GRID Z0_ICE FOR TILE: ", tile
2710 call esmf_fieldgather(z0_ice_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2711 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2714 if (localpet == 0)
then
2715 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2716 error = nf90_put_var( ncid, id_zorl_ice, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2717 call
netcdf_err(error,
'WRITING Z0_ICE RECORD' )
2720 print*,
"- CALL FieldGather FOR TARGET GRID Z0_WATER FOR TILE: ", tile
2721 call esmf_fieldgather(z0_water_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2722 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2725 if (localpet == 0)
then
2726 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2727 error = nf90_put_var( ncid, id_zorl_water, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2728 call
netcdf_err(error,
'WRITING Z0_WATER RECORD' )
2731 print*,
"- CALL FieldGather FOR TARGET GRID MAX SNOW ALBEDO FOR TILE: ", tile
2732 call esmf_fieldgather(mxsno_albedo_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2733 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2736 if (localpet == 0)
then
2737 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2738 error = nf90_put_var( ncid, id_snoalb, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2739 call
netcdf_err(error,
'WRITING MAX SNOW ALBEDO RECORD' )
2742 if (.not. lai_from_climo)
then
2743 print*,
"- CALL FieldGather FOR TARGET GRID LEAF AREA INDEX FOR TILE: ", tile
2744 call esmf_fieldgather(lai_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2745 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2748 if (localpet == 0)
then
2749 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2750 error = nf90_put_var( ncid, id_lai, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2751 call
netcdf_err(error,
'WRITING LEAF AREA INDEX RECORD' )
2755 print*,
"- CALL FieldGather FOR TARGET GRID SOIL TYPE FOR TILE: ", tile
2756 call esmf_fieldgather(soil_type_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2757 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2760 if (localpet == 0)
then
2761 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2762 error = nf90_put_var( ncid, id_stype, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2763 call
netcdf_err(error,
'WRITING SOIL TYPE RECORD' )
2766 print*,
"- CALL FieldGather FOR TARGET GRID VEGETATION TYPE FOR TILE: ", tile
2767 call esmf_fieldgather(veg_type_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2768 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2771 if (localpet == 0)
then
2772 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2773 error = nf90_put_var( ncid, id_vtype, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2774 call
netcdf_err(error,
'WRITING VEGETATION TYPE RECORD' )
2777 print*,
"- CALL FieldGather FOR TARGET GRID VEGETATION GREENNESS FOR TILE: ", tile
2778 call esmf_fieldgather(veg_greenness_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2779 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2782 if (localpet == 0)
then
2783 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2784 error = nf90_put_var( ncid, id_vfrac, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2785 call
netcdf_err(error,
'WRITING VEGETATION GREENNESS RECORD' )
2788 print*,
"- CALL FieldGather FOR TARGET GRID SUBSTRATE TEMPERATURE FOR TILE: ", tile
2789 call esmf_fieldgather(substrate_temp_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2790 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2793 if (localpet == 0)
then
2794 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2795 error = nf90_put_var( ncid, id_tg3, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2796 call
netcdf_err(error,
'WRITING SUBSTRATE TEMPERATURE RECORD' )
2799 print*,
"- CALL FieldGather FOR TARGET GRID FACSF FOR TILE: ", tile
2800 call esmf_fieldgather(facsf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2801 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2804 if (localpet == 0)
then
2805 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2806 error = nf90_put_var( ncid, id_facsf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2807 call
netcdf_err(error,
'WRITING FACSF RECORD' )
2810 print*,
"- CALL FieldGather FOR TARGET GRID FACWF FOR TILE: ", tile
2811 call esmf_fieldgather(facwf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2812 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2815 if (localpet == 0)
then
2816 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2817 error = nf90_put_var( ncid, id_facwf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2818 call
netcdf_err(error,
'WRITING FACWF RECORD' )
2821 print*,
"- CALL FieldGather FOR TARGET GRID ALNSF FOR TILE: ", tile
2822 call esmf_fieldgather(alnsf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2823 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2826 if (localpet == 0)
then
2827 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2828 error = nf90_put_var( ncid, id_alnsf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2829 call
netcdf_err(error,
'WRITING ALNSF RECORD' )
2832 print*,
"- CALL FieldGather FOR TARGET GRID ALNWF FOR TILE: ", tile
2833 call esmf_fieldgather(alnwf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2834 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2837 if (localpet == 0)
then
2838 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2839 error = nf90_put_var( ncid, id_alnwf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2840 call
netcdf_err(error,
'WRITING ALNWF RECORD' )
2843 print*,
"- CALL FieldGather FOR TARGET GRID ALVSF FOR TILE: ", tile
2844 call esmf_fieldgather(alvsf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2845 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2848 if (localpet == 0)
then
2849 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2850 error = nf90_put_var( ncid, id_alvsf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2851 call
netcdf_err(error,
'WRITING ALVSF RECORD' )
2854 print*,
"- CALL FieldGather FOR TARGET GRID ALVWF FOR TILE: ", tile
2855 call esmf_fieldgather(alvwf_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2856 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2859 if (localpet == 0)
then
2860 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2861 error = nf90_put_var( ncid, id_alvwf, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2862 call
netcdf_err(error,
'WRITING ALVWF RECORD' )
2865 print*,
"- CALL FieldGather FOR TARGET GRID MAX VEGETATION GREENNESS FOR TILE: ", tile
2866 call esmf_fieldgather(max_veg_greenness_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2867 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2870 if (localpet == 0)
then
2871 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2872 error = nf90_put_var( ncid, id_shdmax, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2873 call
netcdf_err(error,
'WRITING MAX VEGETATION GREENNESS RECORD' )
2876 print*,
"- CALL FieldGather FOR TARGET GRID MIN VEGETATION GREENNESS FOR TILE: ", tile
2877 call esmf_fieldgather(min_veg_greenness_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2878 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2881 if (localpet == 0)
then
2882 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2883 error = nf90_put_var( ncid, id_shdmin, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2884 call
netcdf_err(error,
'WRITING MIN VEGETATION GREENNESS RECORD' )
2887 print*,
"- CALL FieldGather FOR TARGET GRID T2M FOR TILE: ", tile
2888 call esmf_fieldgather(t2m_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2889 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2892 if (localpet == 0)
then
2893 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2894 error = nf90_put_var( ncid, id_t2m, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2895 call
netcdf_err(error,
'WRITING T2M RECORD' )
2898 print*,
"- CALL FieldGather FOR TARGET GRID Q2M FOR TILE: ", tile
2899 call esmf_fieldgather(q2m_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2900 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2903 if (localpet == 0)
then
2904 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2905 error = nf90_put_var( ncid, id_q2m, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2906 call
netcdf_err(error,
'WRITING Q2M RECORD' )
2909 print*,
"- CALL FieldGather FOR TARGET GRID TPRCP FOR TILE: ", tile
2910 call esmf_fieldgather(tprcp_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2911 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2914 if (localpet == 0)
then
2915 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2916 error = nf90_put_var( ncid, id_tprcp, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2917 call
netcdf_err(error,
'WRITING TPRCP RECORD' )
2920 print*,
"- CALL FieldGather FOR TARGET GRID F10M FOR TILE: ", tile
2921 call esmf_fieldgather(f10m_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2922 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2925 if (localpet == 0)
then
2926 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2927 error = nf90_put_var( ncid, id_f10m, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2928 call
netcdf_err(error,
'WRITING F10M RECORD' )
2931 print*,
"- CALL FieldGather FOR TARGET GRID FFMM FOR TILE: ", tile
2932 call esmf_fieldgather(ffmm_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2933 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2936 if (localpet == 0)
then
2937 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2938 error = nf90_put_var( ncid, id_ffmm, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2939 call
netcdf_err(error,
'WRITING FFMM RECORD' )
2941 error = nf90_put_var( ncid, id_ffhh, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2942 call
netcdf_err(error,
'WRITING FFHH RECORD' )
2945 print*,
"- CALL FieldGather FOR TARGET GRID USTAR FOR TILE: ", tile
2946 call esmf_fieldgather(ustar_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2947 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2950 if (localpet == 0)
then
2951 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2952 error = nf90_put_var( ncid, id_uustar, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2953 call
netcdf_err(error,
'WRITING USTAR RECORD' )
2956 print*,
"- CALL FieldGather FOR TARGET GRID SRFLAG FOR TILE: ", tile
2957 call esmf_fieldgather(srflag_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2958 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2961 if (localpet == 0)
then
2962 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2963 error = nf90_put_var( ncid, id_srflag, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2964 call
netcdf_err(error,
'WRITING SRFLAG RECORD' )
2967 print*,
"- CALL FieldGather FOR TARGET GRID SEA ICE FRACTION FOR TILE: ", tile
2968 call esmf_fieldgather(seaice_fract_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2969 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2972 if (localpet == 0)
then
2973 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2974 error = nf90_put_var( ncid, id_fice, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2975 call
netcdf_err(error,
'WRITING FICE RECORD' )
2978 print*,
"- CALL FieldGather FOR TARGET GRID SEA ICE DEPTH FOR TILE: ", tile
2979 call esmf_fieldgather(seaice_depth_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2980 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2983 if (localpet == 0)
then
2984 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2985 error = nf90_put_var( ncid, id_hice, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2986 call
netcdf_err(error,
'WRITING HICE RECORD' )
2989 print*,
"- CALL FieldGather FOR TARGET GRID SEA ICE SKIN TEMP FOR TILE: ", tile
2990 call esmf_fieldgather(seaice_skin_temp_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
2991 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2994 if (localpet == 0)
then
2995 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
2996 error = nf90_put_var( ncid, id_tisfc, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
2997 call
netcdf_err(error,
'WRITING TISFC RECORD' )
3000 print*,
"- CALL FieldGather FOR TARGET GRID SKIN TEMP FOR TILE: ", tile
3001 call esmf_fieldgather(skin_temp_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3002 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3005 if (localpet == 0)
then
3006 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3007 error = nf90_put_var( ncid, id_tsfcl, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3008 call
netcdf_err(error,
'WRITING TSFCL RECORD' )
3011 print*,
"- CALL FieldGather FOR TARGET GRID sst FOR TILE: ", tile
3012 call esmf_fieldgather(sst_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3013 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3016 if (localpet == 0)
then
3017 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3018 error = nf90_put_var( ncid, id_tsea, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3019 call
netcdf_err(error,
'WRITING TSEA RECORD' )
3022 print*,
"- CALL FieldGather FOR TARGET GRID LANDMASK FOR TILE: ", tile
3023 call esmf_fieldgather(landmask_target_grid, idata_one_tile, rootpet=0, tile=tile, rc=error)
3024 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3027 if (localpet == 0)
then
3028 dum2d(:,:) = float(idata_one_tile(istart:iend, jstart:jend))
3029 error = nf90_put_var( ncid, id_slmsk, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3030 call
netcdf_err(error,
'WRITING LANDMASK RECORD' )
3033 print*,
"- CALL FieldGather FOR TARGET GRID CANOPY MOISTURE CONTENT FOR TILE: ", tile
3034 call esmf_fieldgather(canopy_mc_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3035 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3038 if (localpet == 0)
then
3039 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3040 error = nf90_put_var( ncid, id_canopy, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3041 call
netcdf_err(error,
'WRITING CANOPY MC RECORD' )
3046 print*,
"- CALL FieldGather FOR TARGET GRID SEA ICE COLUMN TEMPERATURE FOR TILE: ", tile
3047 call esmf_fieldgather(ice_temp_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
3048 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3051 if (localpet == 0)
then
3052 dum3d(:,:,:) = data_one_tile_3d(istart:iend, jstart:jend,:)
3053 error = nf90_put_var( ncid, id_ice_temp, dum3d(:,:,1:2), start=(/1,1,1,1/), count=(/i_target_out,j_target_out,2,1/))
3054 call
netcdf_err(error,
'WRITING SEA ICE COLUMN TEMP RECORD' )
3059 print*,
"- CALL FieldGather FOR TARGET GRID SOIL TEMPERATURE FOR TILE: ", tile
3060 call esmf_fieldgather(soil_temp_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
3061 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3064 if (localpet == 0)
then
3065 dum3d(:,:,:) = data_one_tile_3d(istart:iend, jstart:jend,:)
3066 error = nf90_put_var( ncid, id_stc, dum3d, start=(/1,1,1,1/), count=(/i_target_out,j_target_out,lsoil_target,1/))
3067 call
netcdf_err(error,
'WRITING SOIL TEMP RECORD' )
3072 print*,
"- CALL FieldGather FOR TARGET GRID TOTAL SOIL MOISTURE FOR TILE: ", tile
3073 call esmf_fieldgather(soilm_tot_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
3074 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3077 if (localpet == 0)
then
3078 dum3d(:,:,:) = data_one_tile_3d(istart:iend, jstart:jend,:)
3079 error = nf90_put_var( ncid, id_smc, dum3d, start=(/1,1,1,1/), count=(/i_target_out,j_target_out,lsoil_target,1/))
3080 call
netcdf_err(error,
'WRITING TOTAL SOIL MOISTURE RECORD' )
3085 print*,
"- CALL FieldGather FOR TARGET GRID LIQUID SOIL MOISTURE FOR TILE: ", tile
3086 call esmf_fieldgather(soilm_liq_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=error)
3087 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3090 if (localpet == 0)
then
3091 dum3d(:,:,:) = data_one_tile_3d(istart:iend, jstart:jend,:)
3092 error = nf90_put_var( ncid, id_slc, dum3d, start=(/1,1,1,1/), count=(/i_target_out,j_target_out,lsoil_target,1/))
3093 call
netcdf_err(error,
'WRITING LIQUID SOIL MOISTURE RECORD' )
3096 if (convert_nst)
then
3098 print*,
"- CALL FieldGather FOR TARGET C_D FOR TILE: ", tile
3099 call esmf_fieldgather(c_d_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3100 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3103 if (localpet == 0)
then
3104 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3105 error = nf90_put_var( ncid, id_c_d, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3106 call
netcdf_err(error,
'WRITING C_D RECORD' )
3109 print*,
"- CALL FieldGather FOR TARGET C_0 FOR TILE: ", tile
3110 call esmf_fieldgather(c_0_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3111 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3114 if (localpet == 0)
then
3115 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3116 error = nf90_put_var( ncid, id_c_0, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3117 call
netcdf_err(error,
'WRITING C_0 RECORD' )
3120 print*,
"- CALL FieldGather FOR TARGET D_CONV FOR TILE: ", tile
3121 call esmf_fieldgather(d_conv_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3122 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3125 if (localpet == 0)
then
3126 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3127 error = nf90_put_var( ncid, id_d_conv, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3128 call
netcdf_err(error,
'WRITING D_CONV RECORD' )
3131 print*,
"- CALL FieldGather FOR TARGET DT_COOL FOR TILE: ", tile
3132 call esmf_fieldgather(dt_cool_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3133 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3136 if (localpet == 0)
then
3137 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3138 error = nf90_put_var( ncid, id_dt_cool, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3139 call
netcdf_err(error,
'WRITING DT_COOL RECORD' )
3142 print*,
"- CALL FieldGather FOR TARGET IFD FOR TILE: ", tile
3143 call esmf_fieldgather(ifd_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3144 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3147 if (localpet == 0)
then
3148 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3149 error = nf90_put_var( ncid, id_ifd, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3150 call
netcdf_err(error,
'WRITING IFD RECORD' )
3153 print*,
"- CALL FieldGather FOR TARGET QRAIN FOR TILE: ", tile
3154 call esmf_fieldgather(qrain_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3155 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3158 if (localpet == 0)
then
3159 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3160 error = nf90_put_var( ncid, id_qrain, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3161 call
netcdf_err(error,
'WRITING QRAIN RECORD' )
3164 print*,
"- CALL FieldGather FOR TARGET TREF FOR TILE: ", tile
3165 call esmf_fieldgather(tref_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3166 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3169 if (localpet == 0)
then
3170 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3171 error = nf90_put_var( ncid, id_tref, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3172 call
netcdf_err(error,
'WRITING TREF RECORD' )
3175 print*,
"- CALL FieldGather FOR TARGET W_D FOR TILE: ", tile
3176 call esmf_fieldgather(w_d_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3177 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3180 if (localpet == 0)
then
3181 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3182 error = nf90_put_var( ncid, id_w_d, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3183 call
netcdf_err(error,
'WRITING W_D RECORD' )
3186 print*,
"- CALL FieldGather FOR TARGET W_0 FOR TILE: ", tile
3187 call esmf_fieldgather(w_0_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3188 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3191 if (localpet == 0)
then
3192 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3193 error = nf90_put_var( ncid, id_w_0, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3194 call
netcdf_err(error,
'WRITING W_0 RECORD' )
3197 print*,
"- CALL FieldGather FOR TARGET XS FOR TILE: ", tile
3198 call esmf_fieldgather(xs_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3199 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3202 if (localpet == 0)
then
3203 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3204 error = nf90_put_var( ncid, id_xs, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3208 print*,
"- CALL FieldGather FOR TARGET XT FOR TILE: ", tile
3209 call esmf_fieldgather(xt_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3210 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3213 if (localpet == 0)
then
3214 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3215 error = nf90_put_var( ncid, id_xt, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3219 print*,
"- CALL FieldGather FOR TARGET XU FOR TILE: ", tile
3220 call esmf_fieldgather(xu_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3221 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3224 if (localpet == 0)
then
3225 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3226 error = nf90_put_var( ncid, id_xu, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3230 print*,
"- CALL FieldGather FOR TARGET XV FOR TILE: ", tile
3231 call esmf_fieldgather(xv_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3232 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3235 if (localpet == 0)
then
3236 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3237 error = nf90_put_var( ncid, id_xv, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3241 print*,
"- CALL FieldGather FOR TARGET XZ FOR TILE: ", tile
3242 call esmf_fieldgather(xz_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3243 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3246 if (localpet == 0)
then
3247 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3248 error = nf90_put_var( ncid, id_xz, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3252 print*,
"- CALL FieldGather FOR TARGET XTTS FOR TILE: ", tile
3253 call esmf_fieldgather(xtts_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3254 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3257 if (localpet == 0)
then
3258 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3259 error = nf90_put_var( ncid, id_xtts, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3260 call
netcdf_err(error,
'WRITING XTTS RECORD' )
3263 print*,
"- CALL FieldGather FOR TARGET XZTS FOR TILE: ", tile
3264 call esmf_fieldgather(xzts_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3265 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3268 if (localpet == 0)
then
3269 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3270 error = nf90_put_var( ncid, id_xzts, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3271 call
netcdf_err(error,
'WRITING XZTS RECORD' )
3274 print*,
"- CALL FieldGather FOR TARGET Z_C FOR TILE: ", tile
3275 call esmf_fieldgather(z_c_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3276 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3279 if (localpet == 0)
then
3280 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3281 error = nf90_put_var( ncid, id_z_c, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3282 call
netcdf_err(error,
'WRITING Z_C RECORD' )
3285 print*,
"- CALL FieldGather FOR TARGET ZM FOR TILE: ", tile
3286 call esmf_fieldgather(zm_target_grid, data_one_tile, rootpet=0, tile=tile, rc=error)
3287 if(esmf_logfounderror(rctocheck=error,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3290 if (localpet == 0)
then
3291 dum2d(:,:) = data_one_tile(istart:iend, jstart:jend)
3292 error = nf90_put_var( ncid, id_zm, dum2d, start=(/1,1,1/), count=(/i_target_out,j_target_out,1/))
3302 error = nf90_close(ncid)
3306 deallocate(lsoil_data, x_data, y_data)
3307 deallocate(data_one_tile, data_one_tile_3d, idata_one_tile, dum2d, dum3d)
subroutine, public write_fv3_sfc_data_netcdf(localpet)
Writes surface and nst data into a 'coldstart' file (netcdf).
subroutine, public write_fv3_atm_bndy_data_netcdf(localpet)
Writes atmospheric fields along the lateral boundary.
subroutine, public write_fv3_atm_data_netcdf(localpet)
Write atmospheric coldstart files (netcdf format).
subroutine netcdf_err(err, string)
Error handler for netcdf.
Sets up the ESMF grid objects for the input data grid and target FV3 grid.
subroutine, public write_fv3_atm_header_netcdf(localpet)
Writes atmospheric header file in netcdf format.
subroutine error_handler(string, rc)
General error handler.
Module to hold variables and ESMF fields associated with the target grid atmospheric data...
Module to hold ESMF fields associated with the target grid surface data.
This module contains code to read the setup namelist file, handle the varmap file for GRIB2 data...
Reads static surface climatological data for the target FV3 grid (such as soil type and vegetation ty...