49 disenum, nctype, iout)
52 character(len=*),
intent(in) :: modelname
53 character(len=*),
intent(in) :: modeltype
54 character(len=*),
intent(in) :: modelfname
55 character(len=*),
intent(in) :: nc_fname
56 integer(I4B),
intent(in) :: disenum
57 integer(I4B),
intent(in) :: nctype
58 integer(I4B),
intent(in) :: iout
61 this%nlay = this%disv%nlay
64 allocate (this%var_ids%dependent(this%nlay))
65 allocate (this%var_ids%export(this%nlay))
68 call this%mesh_init(modelname, modeltype, modelfname, nc_fname, disenum, &
69 nctype, this%disv%lenuni, iout)
76 deallocate (this%var_ids%dependent)
78 call this%mesh_destroy()
79 call this%NCModelExportType%destroy()
89 call this%add_global_att()
91 call this%define_dim()
93 call this%create_mesh()
99 call this%define_dependent()
102 call nf_verify(nf90_enddef(this%ncid), this%nc_fname)
104 call this%add_mesh_data()
107 call this%add_pkg_data()
110 call this%define_gridmap()
112 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
121 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
122 integer(I4B) :: n, k, nvals, istp
123 integer(I4B),
dimension(2) :: dis_shape
124 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
133 dis_shape(1) = this%disv%ncpl
134 dis_shape(2) = this%disv%nlay
136 nvals = product(dis_shape)
139 if (
size(this%disv%nodeuser) < &
140 size(this%disv%nodereduced))
then
142 allocate (dbl1d(
size(this%disv%nodereduced)))
148 do n = 1,
size(this%disv%nodereduced)
149 if (this%disv%nodereduced(n) > 0)
then
150 dbl1d(n) = this%x(this%disv%nodereduced(n))
154 dbl2d(1:dis_shape(1), 1:dis_shape(2)) => dbl1d(1:nvals)
156 dbl2d(1:dis_shape(1), 1:dis_shape(2)) => this%x(1:nvals)
159 do k = 1, this%disv%nlay
162 this%var_ids%dependent(k), dbl2d(:, k), &
164 count=(/this%disv%ncpl, 1/)), &
169 call nf_verify(nf90_put_var(this%ncid, this%var_ids%time, &
170 totim, start=(/istp/)), &
174 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
177 if (
associated(dbl1d))
deallocate (dbl1d)
191 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
192 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d, nodes
193 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
194 character(len=LINELENGTH) :: nc_tag
195 integer(I4B) :: iaux, iparam, nvals
197 integer(I4B),
pointer :: nbound
203 do iparam = 1, export_pkg%nparam
205 if (export_pkg%param_reads(iparam)%invar < 1) cycle
210 export_pkg%mf6_input%component_type, &
211 export_pkg%mf6_input%subcomponent_type, &
212 'PERIOD', export_pkg%param_names(iparam),
'')
215 nc_tag = this%input_attribute(export_pkg%mf6_input%subcomponent_name, &
219 select case (idt%datatype)
221 call mem_setptr(int1d, idt%mf6varname, export_pkg%mf6_input%mempath)
222 this%var_ids%export(1) = export_pkg%varids_param(iparam, 1)
224 this%disv, idt, export_pkg%mf6_input%mempath, &
225 nc_tag, export_pkg%mf6_input%subcomponent_name, &
226 this%gridmap_name, this%deflate, this%shuffle, &
227 this%chunk_face,
kper, this%nc_fname)
229 call mem_setptr(dbl1d, idt%mf6varname, export_pkg%mf6_input%mempath)
230 select case (idt%shape)
232 this%var_ids%export(1) = export_pkg%varids_param(iparam, 1)
234 this%disv, idt, export_pkg%mf6_input%mempath, &
235 nc_tag, export_pkg%mf6_input%subcomponent_name, &
236 this%gridmap_name, this%deflate, this%shuffle, &
237 this%chunk_face,
kper, iaux, this%nc_fname)
239 nvals = this%disv%nodesuser
240 allocate (nodes(nvals))
242 do k = 1, this%disv%nlay
243 this%var_ids%export(k) = export_pkg%varids_param(iparam, k)
245 call mem_setptr(dbl1d, idt%mf6varname, export_pkg%mf6_input%mempath)
246 call mem_setptr(int1d,
'NODEULIST', export_pkg%mf6_input%mempath)
247 call mem_setptr(nbound,
'NBOUND', export_pkg%mf6_input%mempath)
249 nodes(int1d(n)) = dbl1d(n)
252 this%disv, idt, export_pkg%mf6_input%mempath, &
253 nc_tag, export_pkg%mf6_input%subcomponent_name, &
254 this%gridmap_name, this%deflate, this%shuffle, &
255 this%chunk_face,
kper, iaux, this%nc_fname)
260 call mem_setptr(dbl2d, idt%mf6varname, export_pkg%mf6_input%mempath)
261 select case (idt%shape)
263 nvals = this%disv%ncpl
264 allocate (nodes(nvals))
265 do iaux = 1,
size(dbl2d, dim=1)
266 this%var_ids%export(1) = export_pkg%varids_aux(iaux, 1)
268 nodes(n) = dbl2d(iaux, n)
271 this%disv, idt, export_pkg%mf6_input%mempath, &
272 nc_tag, export_pkg%mf6_input%subcomponent_name, &
273 this%gridmap_name, this%deflate, this%shuffle, &
274 this%chunk_face,
kper, iaux, this%nc_fname)
278 nvals = this%disv%nodesuser
279 allocate (nodes(nvals))
280 call mem_setptr(int1d,
'NODEULIST', export_pkg%mf6_input%mempath)
281 call mem_setptr(nbound,
'NBOUND', export_pkg%mf6_input%mempath)
282 do iaux = 1,
size(dbl2d, dim=1)
284 do k = 1, this%disv%nlay
285 this%var_ids%export(k) = export_pkg%varids_aux(iaux, k)
288 nodes(int1d(n)) = dbl2d(iaux, n)
291 this%disv, idt, export_pkg%mf6_input%mempath, &
292 nc_tag, export_pkg%mf6_input%subcomponent_name, &
293 this%gridmap_name, this%deflate, this%shuffle, &
294 this%chunk_face,
kper, iaux, this%nc_fname)
305 call nf_verify(nf90_put_var(this%ncid, this%var_ids%time, &
310 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
317 character(len=*),
intent(in) :: pkgtype
318 character(len=*),
intent(in) :: pkgname
319 character(len=*),
intent(in) :: mempath
321 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
322 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
323 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
324 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
325 character(len=LINELENGTH) :: nc_tag
326 integer(I4B) :: iper, iaux
332 nc_tag = this%input_attribute(pkgname, idt)
334 select case (idt%datatype)
336 call mem_setptr(int1d, idt%mf6varname, mempath)
338 this%disv, idt, mempath, nc_tag, pkgname, &
339 this%gridmap_name, this%deflate, this%shuffle, &
340 this%chunk_face, iper, this%nc_fname)
342 call mem_setptr(int2d, idt%mf6varname, mempath)
344 this%disv, idt, mempath, nc_tag, pkgname, &
345 this%gridmap_name, this%deflate, this%shuffle, &
346 this%chunk_face, this%nc_fname)
348 call mem_setptr(dbl1d, idt%mf6varname, mempath)
350 this%disv, idt, mempath, nc_tag, pkgname, &
351 this%gridmap_name, this%deflate, this%shuffle, &
352 this%chunk_face, iper, iaux, this%nc_fname)
354 call mem_setptr(dbl2d, idt%mf6varname, mempath)
356 this%disv, idt, mempath, nc_tag, pkgname, &
357 this%gridmap_name, this%deflate, this%shuffle, &
358 this%chunk_face, this%nc_fname)
370 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert
373 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
377 call nf_verify(nf90_def_dim(this%ncid,
'time', this%totnstp, &
378 this%dim_ids%time), this%nc_fname)
379 call nf_verify(nf90_def_var(this%ncid,
'time', nf90_double, &
380 this%dim_ids%time, this%var_ids%time), &
382 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'calendar', &
383 'standard'), this%nc_fname)
384 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'units', &
385 this%datetime), this%nc_fname)
386 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'axis',
'T'), &
388 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'standard_name', &
389 'time'), this%nc_fname)
390 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'long_name', &
391 'time'), this%nc_fname)
395 call nf_verify(nf90_def_dim(this%ncid,
'nmesh_node', this%disv%nvert, &
396 this%dim_ids%nmesh_node), this%nc_fname)
397 call nf_verify(nf90_def_dim(this%ncid,
'nmesh_face', this%disv%ncpl, &
398 this%dim_ids%nmesh_face), this%nc_fname)
399 call nf_verify(nf90_def_dim(this%ncid,
'max_nmesh_face_nodes', &
401 this%dim_ids%max_nmesh_face_nodes), &
410 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert => null()
411 integer(I4B),
dimension(:),
contiguous,
pointer :: icvert => null()
412 real(DP),
dimension(:),
contiguous,
pointer :: cell_xt => null()
413 real(DP),
dimension(:),
contiguous,
pointer :: cell_yt => null()
414 real(DP),
dimension(:),
contiguous,
pointer :: vert_xt => null()
415 real(DP),
dimension(:),
contiguous,
pointer :: vert_yt => null()
416 real(DP) :: x_transform, y_transform
417 integer(I4B) :: n, m, idx, cnt, iv, maxvert
418 integer(I4B),
dimension(:),
allocatable :: verts
419 real(DP),
dimension(:),
allocatable :: bnds
420 integer(I4B) :: istop
423 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
424 call mem_setptr(icvert,
'ICVERT', this%dis_mempath)
427 allocate (cell_xt(this%disv%ncpl))
428 allocate (cell_yt(this%disv%ncpl))
429 allocate (vert_xt(this%disv%nvert))
430 allocate (vert_yt(this%disv%nvert))
433 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh, 1), &
437 do n = 1, this%disv%nvert
442 x_transform, y_transform)
443 vert_xt(n) = x_transform
444 vert_yt(n) = y_transform
448 do n = 1, this%disv%ncpl
453 x_transform, y_transform)
454 cell_xt(n) = x_transform
455 cell_yt(n) = y_transform
459 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_x, &
460 vert_xt), this%nc_fname)
461 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_y, &
462 vert_yt), this%nc_fname)
465 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_x, &
466 cell_xt), this%nc_fname)
467 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_y, &
468 cell_yt), this%nc_fname)
471 maxvert = maxval(ncvert)
474 allocate (verts(maxvert))
475 allocate (bnds(maxvert))
479 do n = 1, this%disv%ncpl
480 verts = nf90_fill_int
481 idx = cnt + ncvert(n)
484 do m = idx, istop, -1
487 verts(iv) = icvert(m)
491 if (verts(iv) == verts(1)) verts(iv) = nf90_fill_int
494 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_nodes, &
495 verts, start=(/1, n/), &
496 count=(/maxvert, 1/)), &
500 bnds = nf90_fill_double
502 if (verts(m) /= nf90_fill_int)
then
503 bnds(m) = vert_yt(verts(m))
506 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_ybnds, &
507 bnds, start=(/1, n/), &
508 count=(/maxvert, 1/)), &
513 bnds = nf90_fill_double
515 if (verts(m) /= nf90_fill_int)
then
516 bnds(m) = vert_xt(verts(m))
519 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_xbnds, &
520 bnds, start=(/1, n/), &
521 count=(/maxvert, 1/)), &
538 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
539 chunk_face, iper, nc_fname)
541 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
542 integer(I4B),
intent(in) :: ncid
545 type(
disvtype),
pointer,
intent(in) :: disv
547 character(len=*),
intent(in) :: mempath
548 character(len=*),
intent(in) :: nc_tag
549 character(len=*),
intent(in) :: pkgname
550 character(len=*),
intent(in) :: gridmap_name
551 integer(I4B),
intent(in) :: deflate
552 integer(I4B),
intent(in) :: shuffle
553 integer(I4B),
intent(in) :: chunk_face
554 integer(I4B),
intent(in) :: iper
555 character(len=*),
intent(in) :: nc_fname
556 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
557 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
558 integer(I4B) :: axis_sz, k
559 integer(I4B),
dimension(:),
allocatable :: var_id
560 character(len=LINELENGTH) :: longname, varname
562 if (idt%shape ==
'NCPL' .or. &
563 idt%shape ==
'NAUX NCPL')
then
568 longname =
export_longname(idt%longname, pkgname, idt%tagname, mempath)
571 axis_sz = dim_ids%nmesh_face
574 call nf_verify(nf90_redef(ncid), nc_fname)
575 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
576 (/axis_sz/), var_id(1)), &
580 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
582 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
585 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
586 (/nf90_fill_int/)), nc_fname)
587 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
595 call nf_verify(nf90_enddef(ncid), nc_fname)
596 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
601 var_ids%export(1), p_mem, &
603 count=(/disv%ncpl, 1/)), nc_fname)
608 int2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
611 allocate (var_id(disv%nlay))
614 call nf_verify(nf90_redef(ncid), nc_fname)
621 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
622 (/dim_ids%nmesh_face/), var_id(k)), &
626 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
628 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
631 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
632 (/nf90_fill_int/)), nc_fname)
633 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
642 call nf_verify(nf90_enddef(ncid), nc_fname)
644 call nf_verify(nf90_put_var(ncid, var_id(k), int2d(:, k)), nc_fname)
652 int1d(1:disv%ncpl) => int2d(:, k)
654 var_ids%export(k), int1d, &
656 count=(/disv%ncpl, 1/)), nc_fname)
665 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
666 chunk_face, nc_fname)
667 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
668 integer(I4B),
intent(in) :: ncid
671 type(
disvtype),
pointer,
intent(in) :: disv
673 character(len=*),
intent(in) :: mempath
674 character(len=*),
intent(in) :: nc_tag
675 character(len=*),
intent(in) :: pkgname
676 character(len=*),
intent(in) :: gridmap_name
677 integer(I4B),
intent(in) :: deflate
678 integer(I4B),
intent(in) :: shuffle
679 integer(I4B),
intent(in) :: chunk_face
680 character(len=*),
intent(in) :: nc_fname
681 integer(I4B),
dimension(:),
allocatable :: var_id
682 character(len=LINELENGTH) :: longname, varname
685 allocate (var_id(disv%nlay))
688 call nf_verify(nf90_redef(ncid), nc_fname)
695 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
696 (/dim_ids%nmesh_face/), var_id(k)), &
700 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
702 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
705 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
706 (/nf90_fill_int/)), nc_fname)
707 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
716 call nf_verify(nf90_enddef(ncid), nc_fname)
718 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
727 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
728 chunk_face, iper, iaux, nc_fname)
730 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
731 integer(I4B),
intent(in) :: ncid
734 type(
disvtype),
pointer,
intent(in) :: disv
736 character(len=*),
intent(in) :: mempath
737 character(len=*),
intent(in) :: nc_tag
738 character(len=*),
intent(in) :: pkgname
739 character(len=*),
intent(in) :: gridmap_name
740 integer(I4B),
intent(in) :: deflate
741 integer(I4B),
intent(in) :: shuffle
742 integer(I4B),
intent(in) :: chunk_face
743 integer(I4B),
intent(in) :: iper
744 integer(I4B),
intent(in) :: iaux
745 character(len=*),
intent(in) :: nc_fname
746 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
747 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
748 integer(I4B) :: axis_sz, k
749 integer(I4B),
dimension(:),
allocatable :: var_id
750 character(len=LINELENGTH) :: longname, varname
752 if (idt%shape ==
'NCPL' .or. &
753 idt%shape ==
'NAUX NCPL')
then
763 axis_sz = dim_ids%nmesh_face
766 call nf_verify(nf90_redef(ncid), nc_fname)
767 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
768 (/axis_sz/), var_id(1)), &
772 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
774 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
777 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
778 (/nf90_fill_double/)), nc_fname)
779 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
784 call ncvar_mf6attr(ncid, var_id(1), 0, iaux, nc_tag, nc_fname)
787 call nf_verify(nf90_enddef(ncid), nc_fname)
788 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
793 var_ids%export(1), p_mem, &
795 count=(/disv%ncpl, 1/)), nc_fname)
800 dbl2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
803 allocate (var_id(disv%nlay))
806 call nf_verify(nf90_redef(ncid), nc_fname)
809 varname =
export_varname(pkgname, idt%tagname, mempath, layer=k, &
812 mempath, layer=k, iaux=iaux)
814 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
815 (/dim_ids%nmesh_face/), var_id(k)), &
819 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
821 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
824 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
825 (/nf90_fill_double/)), nc_fname)
826 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
831 call ncvar_mf6attr(ncid, var_id(k), k, iaux, nc_tag, nc_fname)
835 call nf_verify(nf90_enddef(ncid), nc_fname)
837 call nf_verify(nf90_put_var(ncid, var_id(k), dbl2d(:, k)), nc_fname)
845 dbl1d(1:disv%ncpl) => dbl2d(:, k)
847 var_ids%export(k), dbl1d, &
849 count=(/disv%ncpl, 1/)), nc_fname)
858 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
859 chunk_face, nc_fname)
860 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
861 integer(I4B),
intent(in) :: ncid
864 type(
disvtype),
pointer,
intent(in) :: disv
866 character(len=*),
intent(in) :: mempath
867 character(len=*),
intent(in) :: nc_tag
868 character(len=*),
intent(in) :: pkgname
869 character(len=*),
intent(in) :: gridmap_name
870 integer(I4B),
intent(in) :: deflate
871 integer(I4B),
intent(in) :: shuffle
872 integer(I4B),
intent(in) :: chunk_face
873 character(len=*),
intent(in) :: nc_fname
874 integer(I4B),
dimension(:),
allocatable :: var_id
875 character(len=LINELENGTH) :: longname, varname
878 allocate (var_id(disv%nlay))
881 call nf_verify(nf90_redef(ncid), nc_fname)
888 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
889 (/dim_ids%nmesh_face/), var_id(k)), &
893 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
895 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
898 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
899 (/nf90_fill_double/)), nc_fname)
900 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
909 call nf_verify(nf90_enddef(ncid), nc_fname)
911 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
subroutine, public dis_transform_xy(x, y, xorigin, yorigin, angrot, xglo, yglo)
Get global (x, y) coordinates from cell-local coordinates.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lencomponentname
maximum length of a component name
@ mvalidate
validation mode - do not run time steps
real(dp), parameter dnodata
real no data constant
integer(i4b), parameter lenbigline
maximum length of a big line
real(dp), parameter dhnoflo
real no flow constant
real(dp), parameter dzero
real constant zero
integer(i4b), parameter lenmempath
maximum length of the memory path
This module contains the DefinitionSelectModule.
type(inputparamdefinitiontype) function, pointer, public get_param_definition_type(input_definition_types, component_type, subcomponent_type, blockname, tagname, filename, found)
Return parameter definition.
This module defines variable data types.
This module contains the MeshDisvModelModule.
subroutine add_mesh_data(this)
netcdf export add mesh information
subroutine nc_export_dbl1d(p_mem, ncid, dim_ids, var_ids, disv, idt, mempath, nc_tag, pkgname, gridmap_name, deflate, shuffle, chunk_face, iper, iaux, nc_fname)
netcdf export 1D double array
subroutine disv_export_init(this, modelname, modeltype, modelfname, nc_fname, disenum, nctype, iout)
netcdf export disv init
subroutine nc_export_int2d(p_mem, ncid, dim_ids, var_ids, disv, idt, mempath, nc_tag, pkgname, gridmap_name, deflate, shuffle, chunk_face, nc_fname)
netcdf export 2D integer array
subroutine package_step(this, export_pkg)
netcdf export package dynamic input
subroutine nc_export_dbl2d(p_mem, ncid, dim_ids, var_ids, disv, idt, mempath, nc_tag, pkgname, gridmap_name, deflate, shuffle, chunk_face, nc_fname)
netcdf export 2D double array
subroutine define_dim(this)
netcdf export define dimensions
subroutine df(this)
netcdf export define
subroutine nc_export_int1d(p_mem, ncid, dim_ids, var_ids, disv, idt, mempath, nc_tag, pkgname, gridmap_name, deflate, shuffle, chunk_face, iper, nc_fname)
netcdf export 1D integer array
subroutine step(this)
netcdf export step
subroutine disv_export_destroy(this)
netcdf export disv destroy
subroutine export_input_array(this, pkgtype, pkgname, mempath, idt)
netcdf export an input array
This module contains the MeshModelModule.
subroutine, public ncvar_mf6attr(ncid, varid, layer, iaux, nc_tag, nc_fname)
put variable internal attributes
subroutine, public ncvar_gridmap(ncid, varid, gridmap_name, nc_fname)
put variable gridmap attributes
subroutine, public ncvar_chunk(ncid, varid, chunk_face, nc_fname)
define variable chunking
subroutine, public ncvar_deflate(ncid, varid, deflate, shuffle, nc_fname)
define variable compression
This module contains the NCModelExportModule.
character(len=linelength) function, public export_varname(pkgname, tagname, mempath, layer, iaux)
build netcdf variable name
character(len=linelength) function, public export_longname(longname, pkgname, tagname, mempath, layer, iaux)
build netcdf variable longname
This module contains the NetCDFCommonModule.
subroutine, public nf_verify(res, nc_fname)
error check a netcdf-fortran interface call
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
subroutine, public store_error_filename(filename, terminate)
Store the erroring file name.
This module contains simulation variables.
character(len=maxcharlen) errmsg
error message string
integer(i4b) isim_mode
simulation mode
real(dp), pointer, public totim
time relative to start of simulation
integer(i4b), pointer, public kper
current stress period number
This class is used to store a single deferred-length character string. It was designed to work in an ...
Vertex grid discretization.
type for storing model export dimension ids
type for storing model export variable ids