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 :: icell2d => null()
411 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert => null()
412 integer(I4B),
dimension(:),
contiguous,
pointer :: icvert => null()
413 real(DP),
dimension(:),
contiguous,
pointer :: cell_x => null()
414 real(DP),
dimension(:),
contiguous,
pointer :: cell_y => null()
415 real(DP),
dimension(:),
contiguous,
pointer :: vert_x => null()
416 real(DP),
dimension(:),
contiguous,
pointer :: vert_y => null()
417 real(DP),
dimension(:),
contiguous,
pointer :: cell_xt => null()
418 real(DP),
dimension(:),
contiguous,
pointer :: cell_yt => null()
419 real(DP),
dimension(:),
contiguous,
pointer :: vert_xt => null()
420 real(DP),
dimension(:),
contiguous,
pointer :: vert_yt => null()
421 real(DP) :: x_transform, y_transform
422 integer(I4B) :: n, m, idx, cnt, iv, maxvert
423 integer(I4B),
dimension(:),
allocatable :: verts
424 real(DP),
dimension(:),
allocatable :: bnds
425 integer(I4B) :: istop
428 call mem_setptr(icell2d,
'ICELL2D', this%dis_mempath)
429 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
430 call mem_setptr(icvert,
'ICVERT', this%dis_mempath)
431 call mem_setptr(cell_x,
'XC', this%dis_mempath)
432 call mem_setptr(cell_y,
'YC', this%dis_mempath)
433 call mem_setptr(vert_x,
'XV', this%dis_mempath)
434 call mem_setptr(vert_y,
'YV', this%dis_mempath)
437 allocate (cell_xt(
size(cell_x)))
438 allocate (cell_yt(
size(cell_y)))
439 allocate (vert_xt(
size(vert_x)))
440 allocate (vert_yt(
size(vert_y)))
443 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh, 1), &
447 do n = 1,
size(vert_x)
452 x_transform, y_transform)
453 vert_xt(n) = x_transform
454 vert_yt(n) = y_transform
458 do n = 1,
size(cell_x)
463 x_transform, y_transform)
464 cell_xt(n) = x_transform
465 cell_yt(n) = y_transform
469 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_x, &
470 vert_xt), this%nc_fname)
471 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_y, &
472 vert_yt), this%nc_fname)
475 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_x, &
476 cell_xt), this%nc_fname)
477 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_y, &
478 cell_yt), this%nc_fname)
481 maxvert = maxval(ncvert)
484 allocate (verts(maxvert))
485 allocate (bnds(maxvert))
489 do n = 1,
size(ncvert)
490 verts = nf90_fill_int
491 idx = cnt + ncvert(n)
494 do m = idx, istop, -1
497 verts(iv) = icvert(m)
501 if (verts(iv) == verts(1)) verts(iv) = nf90_fill_int
504 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_nodes, &
505 verts, start=(/1, n/), &
506 count=(/maxvert, 1/)), &
510 bnds = nf90_fill_double
512 if (verts(m) /= nf90_fill_int)
then
513 bnds(m) = vert_yt(verts(m))
516 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_ybnds, &
517 bnds, start=(/1, n/), &
518 count=(/maxvert, 1/)), &
523 bnds = nf90_fill_double
525 if (verts(m) /= nf90_fill_int)
then
526 bnds(m) = vert_xt(verts(m))
529 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_xbnds, &
530 bnds, start=(/1, n/), &
531 count=(/maxvert, 1/)), &
548 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
549 chunk_face, iper, nc_fname)
551 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
552 integer(I4B),
intent(in) :: ncid
555 type(
disvtype),
pointer,
intent(in) :: disv
557 character(len=*),
intent(in) :: mempath
558 character(len=*),
intent(in) :: nc_tag
559 character(len=*),
intent(in) :: pkgname
560 character(len=*),
intent(in) :: gridmap_name
561 integer(I4B),
intent(in) :: deflate
562 integer(I4B),
intent(in) :: shuffle
563 integer(I4B),
intent(in) :: chunk_face
564 integer(I4B),
intent(in) :: iper
565 character(len=*),
intent(in) :: nc_fname
566 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
567 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
568 integer(I4B) :: axis_sz, k
569 integer(I4B),
dimension(:),
allocatable :: var_id
570 character(len=LINELENGTH) :: longname, varname
572 if (idt%shape ==
'NCPL' .or. &
573 idt%shape ==
'NAUX NCPL')
then
578 longname =
export_longname(idt%longname, pkgname, idt%tagname, mempath)
581 axis_sz = dim_ids%nmesh_face
584 call nf_verify(nf90_redef(ncid), nc_fname)
585 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
586 (/axis_sz/), var_id(1)), &
590 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
592 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
595 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
596 (/nf90_fill_int/)), nc_fname)
597 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
605 call nf_verify(nf90_enddef(ncid), nc_fname)
606 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
611 var_ids%export(1), p_mem, &
613 count=(/disv%ncpl, 1/)), nc_fname)
618 int2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
621 allocate (var_id(disv%nlay))
624 call nf_verify(nf90_redef(ncid), nc_fname)
631 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
632 (/dim_ids%nmesh_face/), var_id(k)), &
636 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
638 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
641 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
642 (/nf90_fill_int/)), nc_fname)
643 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
652 call nf_verify(nf90_enddef(ncid), nc_fname)
654 call nf_verify(nf90_put_var(ncid, var_id(k), int2d(:, k)), nc_fname)
662 int1d(1:disv%ncpl) => int2d(:, k)
664 var_ids%export(k), int1d, &
666 count=(/disv%ncpl, 1/)), nc_fname)
675 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
676 chunk_face, nc_fname)
677 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
678 integer(I4B),
intent(in) :: ncid
681 type(
disvtype),
pointer,
intent(in) :: disv
683 character(len=*),
intent(in) :: mempath
684 character(len=*),
intent(in) :: nc_tag
685 character(len=*),
intent(in) :: pkgname
686 character(len=*),
intent(in) :: gridmap_name
687 integer(I4B),
intent(in) :: deflate
688 integer(I4B),
intent(in) :: shuffle
689 integer(I4B),
intent(in) :: chunk_face
690 character(len=*),
intent(in) :: nc_fname
691 integer(I4B),
dimension(:),
allocatable :: var_id
692 character(len=LINELENGTH) :: longname, varname
695 allocate (var_id(disv%nlay))
698 call nf_verify(nf90_redef(ncid), nc_fname)
705 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
706 (/dim_ids%nmesh_face/), var_id(k)), &
710 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
712 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
715 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
716 (/nf90_fill_int/)), nc_fname)
717 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
726 call nf_verify(nf90_enddef(ncid), nc_fname)
728 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
737 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
738 chunk_face, iper, iaux, nc_fname)
740 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
741 integer(I4B),
intent(in) :: ncid
744 type(
disvtype),
pointer,
intent(in) :: disv
746 character(len=*),
intent(in) :: mempath
747 character(len=*),
intent(in) :: nc_tag
748 character(len=*),
intent(in) :: pkgname
749 character(len=*),
intent(in) :: gridmap_name
750 integer(I4B),
intent(in) :: deflate
751 integer(I4B),
intent(in) :: shuffle
752 integer(I4B),
intent(in) :: chunk_face
753 integer(I4B),
intent(in) :: iper
754 integer(I4B),
intent(in) :: iaux
755 character(len=*),
intent(in) :: nc_fname
756 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
757 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
758 integer(I4B) :: axis_sz, k
759 integer(I4B),
dimension(:),
allocatable :: var_id
760 character(len=LINELENGTH) :: longname, varname
762 if (idt%shape ==
'NCPL' .or. &
763 idt%shape ==
'NAUX NCPL')
then
773 axis_sz = dim_ids%nmesh_face
776 call nf_verify(nf90_redef(ncid), nc_fname)
777 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
778 (/axis_sz/), var_id(1)), &
782 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
784 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
787 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
788 (/nf90_fill_double/)), nc_fname)
789 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
794 call ncvar_mf6attr(ncid, var_id(1), 0, iaux, nc_tag, nc_fname)
797 call nf_verify(nf90_enddef(ncid), nc_fname)
798 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
803 var_ids%export(1), p_mem, &
805 count=(/disv%ncpl, 1/)), nc_fname)
810 dbl2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
813 allocate (var_id(disv%nlay))
816 call nf_verify(nf90_redef(ncid), nc_fname)
819 varname =
export_varname(pkgname, idt%tagname, mempath, layer=k, &
822 mempath, layer=k, iaux=iaux)
824 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
825 (/dim_ids%nmesh_face/), var_id(k)), &
829 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
831 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
834 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
835 (/nf90_fill_double/)), nc_fname)
836 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
841 call ncvar_mf6attr(ncid, var_id(k), k, iaux, nc_tag, nc_fname)
845 call nf_verify(nf90_enddef(ncid), nc_fname)
847 call nf_verify(nf90_put_var(ncid, var_id(k), dbl2d(:, k)), nc_fname)
855 dbl1d(1:disv%ncpl) => dbl2d(:, k)
857 var_ids%export(k), dbl1d, &
859 count=(/disv%ncpl, 1/)), nc_fname)
868 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
869 chunk_face, nc_fname)
870 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
871 integer(I4B),
intent(in) :: ncid
874 type(
disvtype),
pointer,
intent(in) :: disv
876 character(len=*),
intent(in) :: mempath
877 character(len=*),
intent(in) :: nc_tag
878 character(len=*),
intent(in) :: pkgname
879 character(len=*),
intent(in) :: gridmap_name
880 integer(I4B),
intent(in) :: deflate
881 integer(I4B),
intent(in) :: shuffle
882 integer(I4B),
intent(in) :: chunk_face
883 character(len=*),
intent(in) :: nc_fname
884 integer(I4B),
dimension(:),
allocatable :: var_id
885 character(len=LINELENGTH) :: longname, varname
888 allocate (var_id(disv%nlay))
891 call nf_verify(nf90_redef(ncid), nc_fname)
898 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
899 (/dim_ids%nmesh_face/), var_id(k)), &
903 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
905 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
908 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
909 (/nf90_fill_double/)), nc_fname)
910 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
919 call nf_verify(nf90_enddef(ncid), nc_fname)
921 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)
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