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 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_nodes, &
502 verts, start=(/1, n/), &
503 count=(/maxvert, 1/)), &
507 bnds = nf90_fill_double
509 if (verts(m) /= nf90_fill_int)
then
510 bnds(m) = vert_yt(verts(m))
513 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_ybnds, &
514 bnds, start=(/1, n/), &
515 count=(/maxvert, 1/)), &
520 bnds = nf90_fill_double
522 if (verts(m) /= nf90_fill_int)
then
523 bnds(m) = vert_xt(verts(m))
526 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_xbnds, &
527 bnds, start=(/1, n/), &
528 count=(/maxvert, 1/)), &
545 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
546 chunk_face, iper, nc_fname)
548 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
549 integer(I4B),
intent(in) :: ncid
552 type(
disvtype),
pointer,
intent(in) :: disv
554 character(len=*),
intent(in) :: mempath
555 character(len=*),
intent(in) :: nc_tag
556 character(len=*),
intent(in) :: pkgname
557 character(len=*),
intent(in) :: gridmap_name
558 integer(I4B),
intent(in) :: deflate
559 integer(I4B),
intent(in) :: shuffle
560 integer(I4B),
intent(in) :: chunk_face
561 integer(I4B),
intent(in) :: iper
562 character(len=*),
intent(in) :: nc_fname
563 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
564 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
565 integer(I4B) :: axis_sz, k
566 integer(I4B),
dimension(:),
allocatable :: var_id
567 character(len=LINELENGTH) :: longname, varname
569 if (idt%shape ==
'NCPL' .or. &
570 idt%shape ==
'NAUX NCPL')
then
575 longname =
export_longname(idt%longname, pkgname, idt%tagname, mempath)
578 axis_sz = dim_ids%nmesh_face
581 call nf_verify(nf90_redef(ncid), nc_fname)
582 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
583 (/axis_sz/), var_id(1)), &
587 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
589 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
592 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
593 (/nf90_fill_int/)), nc_fname)
594 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
602 call nf_verify(nf90_enddef(ncid), nc_fname)
603 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
608 var_ids%export(1), p_mem, &
610 count=(/disv%ncpl, 1/)), nc_fname)
615 int2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
618 allocate (var_id(disv%nlay))
621 call nf_verify(nf90_redef(ncid), nc_fname)
628 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
629 (/dim_ids%nmesh_face/), var_id(k)), &
633 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
635 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
638 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
639 (/nf90_fill_int/)), nc_fname)
640 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
649 call nf_verify(nf90_enddef(ncid), nc_fname)
651 call nf_verify(nf90_put_var(ncid, var_id(k), int2d(:, k)), nc_fname)
659 int1d(1:disv%ncpl) => int2d(:, k)
661 var_ids%export(k), int1d, &
663 count=(/disv%ncpl, 1/)), nc_fname)
672 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
673 chunk_face, nc_fname)
674 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
675 integer(I4B),
intent(in) :: ncid
678 type(
disvtype),
pointer,
intent(in) :: disv
680 character(len=*),
intent(in) :: mempath
681 character(len=*),
intent(in) :: nc_tag
682 character(len=*),
intent(in) :: pkgname
683 character(len=*),
intent(in) :: gridmap_name
684 integer(I4B),
intent(in) :: deflate
685 integer(I4B),
intent(in) :: shuffle
686 integer(I4B),
intent(in) :: chunk_face
687 character(len=*),
intent(in) :: nc_fname
688 integer(I4B),
dimension(:),
allocatable :: var_id
689 character(len=LINELENGTH) :: longname, varname
692 allocate (var_id(disv%nlay))
695 call nf_verify(nf90_redef(ncid), nc_fname)
702 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
703 (/dim_ids%nmesh_face/), var_id(k)), &
707 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
709 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
712 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
713 (/nf90_fill_int/)), nc_fname)
714 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
723 call nf_verify(nf90_enddef(ncid), nc_fname)
725 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
734 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
735 chunk_face, iper, iaux, nc_fname)
737 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
738 integer(I4B),
intent(in) :: ncid
741 type(
disvtype),
pointer,
intent(in) :: disv
743 character(len=*),
intent(in) :: mempath
744 character(len=*),
intent(in) :: nc_tag
745 character(len=*),
intent(in) :: pkgname
746 character(len=*),
intent(in) :: gridmap_name
747 integer(I4B),
intent(in) :: deflate
748 integer(I4B),
intent(in) :: shuffle
749 integer(I4B),
intent(in) :: chunk_face
750 integer(I4B),
intent(in) :: iper
751 integer(I4B),
intent(in) :: iaux
752 character(len=*),
intent(in) :: nc_fname
753 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
754 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
755 integer(I4B) :: axis_sz, k
756 integer(I4B),
dimension(:),
allocatable :: var_id
757 character(len=LINELENGTH) :: longname, varname
759 if (idt%shape ==
'NCPL' .or. &
760 idt%shape ==
'NAUX NCPL')
then
770 axis_sz = dim_ids%nmesh_face
773 call nf_verify(nf90_redef(ncid), nc_fname)
774 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
775 (/axis_sz/), var_id(1)), &
779 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
781 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
784 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
785 (/nf90_fill_double/)), nc_fname)
786 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
791 call ncvar_mf6attr(ncid, var_id(1), 0, iaux, nc_tag, nc_fname)
794 call nf_verify(nf90_enddef(ncid), nc_fname)
795 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
800 var_ids%export(1), p_mem, &
802 count=(/disv%ncpl, 1/)), nc_fname)
807 dbl2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
810 allocate (var_id(disv%nlay))
813 call nf_verify(nf90_redef(ncid), nc_fname)
816 varname =
export_varname(pkgname, idt%tagname, mempath, layer=k, &
819 mempath, layer=k, iaux=iaux)
821 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
822 (/dim_ids%nmesh_face/), var_id(k)), &
826 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
828 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
831 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
832 (/nf90_fill_double/)), nc_fname)
833 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
838 call ncvar_mf6attr(ncid, var_id(k), k, iaux, nc_tag, nc_fname)
842 call nf_verify(nf90_enddef(ncid), nc_fname)
844 call nf_verify(nf90_put_var(ncid, var_id(k), dbl2d(:, k)), nc_fname)
852 dbl1d(1:disv%ncpl) => dbl2d(:, k)
854 var_ids%export(k), dbl1d, &
856 count=(/disv%ncpl, 1/)), nc_fname)
865 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
866 chunk_face, nc_fname)
867 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
868 integer(I4B),
intent(in) :: ncid
871 type(
disvtype),
pointer,
intent(in) :: disv
873 character(len=*),
intent(in) :: mempath
874 character(len=*),
intent(in) :: nc_tag
875 character(len=*),
intent(in) :: pkgname
876 character(len=*),
intent(in) :: gridmap_name
877 integer(I4B),
intent(in) :: deflate
878 integer(I4B),
intent(in) :: shuffle
879 integer(I4B),
intent(in) :: chunk_face
880 character(len=*),
intent(in) :: nc_fname
881 integer(I4B),
dimension(:),
allocatable :: var_id
882 character(len=LINELENGTH) :: longname, varname
885 allocate (var_id(disv%nlay))
888 call nf_verify(nf90_redef(ncid), nc_fname)
895 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
896 (/dim_ids%nmesh_face/), var_id(k)), &
900 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
902 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
905 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
906 (/nf90_fill_double/)), nc_fname)
907 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
916 call nf_verify(nf90_enddef(ncid), nc_fname)
918 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