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()
96 call this%define_dependent()
101 call nf_verify(nf90_enddef(this%ncid), this%nc_fname)
103 call this%add_mesh_data()
105 call this%add_pkg_data()
107 call this%define_gridmap()
109 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
119 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
120 integer(I4B) :: n, k, nvals, istp
121 integer(I4B),
dimension(2) :: dis_shape
122 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
131 dis_shape(1) = this%disv%ncpl
132 dis_shape(2) = this%disv%nlay
134 nvals = product(dis_shape)
137 if (
size(this%disv%nodeuser) < &
138 size(this%disv%nodereduced))
then
140 allocate (dbl1d(
size(this%disv%nodereduced)))
146 do n = 1,
size(this%disv%nodereduced)
147 if (this%disv%nodereduced(n) > 0)
then
148 dbl1d(n) = this%x(this%disv%nodereduced(n))
152 dbl2d(1:dis_shape(1), 1:dis_shape(2)) => dbl1d(1:nvals)
154 dbl2d(1:dis_shape(1), 1:dis_shape(2)) => this%x(1:nvals)
157 do k = 1, this%disv%nlay
159 call nf_verify(nf90_put_var(this%ncid, &
160 this%var_ids%dependent(k), dbl2d(:, k), &
162 count=(/this%disv%ncpl, 1/)), &
167 call nf_verify(nf90_put_var(this%ncid, this%var_ids%time, &
168 totim, start=(/istp/)), &
172 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
175 if (
associated(dbl1d))
deallocate (dbl1d)
189 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
190 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d, nodes
191 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
192 character(len=LINELENGTH) :: nc_tag
193 integer(I4B) :: iaux, iparam, nvals
195 integer(I4B),
pointer :: nbound
201 do iparam = 1, export_pkg%nparam
203 if (export_pkg%param_reads(iparam)%invar < 1) cycle
208 export_pkg%mf6_input%component_type, &
209 export_pkg%mf6_input%subcomponent_type, &
210 'PERIOD', export_pkg%param_names(iparam),
'')
213 nc_tag = this%input_attribute(export_pkg%mf6_input%subcomponent_name, &
217 select case (idt%datatype)
219 call mem_setptr(int1d, idt%mf6varname, export_pkg%mf6_input%mempath)
220 this%var_ids%export(1) = export_pkg%varids_param(iparam, 1)
222 this%disv, idt, export_pkg%mf6_input%mempath, &
223 nc_tag, export_pkg%mf6_input%subcomponent_name, &
224 this%gridmap_name, this%deflate, this%shuffle, &
225 this%chunk_face,
kper, this%nc_fname)
227 call mem_setptr(dbl1d, idt%mf6varname, export_pkg%mf6_input%mempath)
228 select case (idt%shape)
230 this%var_ids%export(1) = export_pkg%varids_param(iparam, 1)
232 this%disv, idt, export_pkg%mf6_input%mempath, &
233 nc_tag, export_pkg%mf6_input%subcomponent_name, &
234 this%gridmap_name, this%deflate, this%shuffle, &
235 this%chunk_face,
kper, iaux, this%nc_fname)
237 nvals = this%disv%nodesuser
238 allocate (nodes(nvals))
240 do k = 1, this%disv%nlay
241 this%var_ids%export(k) = export_pkg%varids_param(iparam, k)
243 call mem_setptr(dbl1d, idt%mf6varname, export_pkg%mf6_input%mempath)
244 call mem_setptr(int1d,
'NODEULIST', export_pkg%mf6_input%mempath)
245 call mem_setptr(nbound,
'NBOUND', export_pkg%mf6_input%mempath)
247 nodes(int1d(n)) = dbl1d(n)
250 this%disv, idt, export_pkg%mf6_input%mempath, &
251 nc_tag, export_pkg%mf6_input%subcomponent_name, &
252 this%gridmap_name, this%deflate, this%shuffle, &
253 this%chunk_face,
kper, iaux, this%nc_fname)
258 call mem_setptr(dbl2d, idt%mf6varname, export_pkg%mf6_input%mempath)
259 select case (idt%shape)
261 nvals = this%disv%ncpl
262 allocate (nodes(nvals))
263 do iaux = 1,
size(dbl2d, dim=1)
264 this%var_ids%export(1) = export_pkg%varids_aux(iaux, 1)
266 nodes(n) = dbl2d(iaux, n)
269 this%disv, idt, export_pkg%mf6_input%mempath, &
270 nc_tag, export_pkg%mf6_input%subcomponent_name, &
271 this%gridmap_name, this%deflate, this%shuffle, &
272 this%chunk_face,
kper, iaux, this%nc_fname)
276 nvals = this%disv%nodesuser
277 allocate (nodes(nvals))
278 call mem_setptr(int1d,
'NODEULIST', export_pkg%mf6_input%mempath)
279 call mem_setptr(nbound,
'NBOUND', export_pkg%mf6_input%mempath)
280 do iaux = 1,
size(dbl2d, dim=1)
282 do k = 1, this%disv%nlay
283 this%var_ids%export(k) = export_pkg%varids_aux(iaux, k)
286 nodes(int1d(n)) = dbl2d(iaux, n)
289 this%disv, idt, export_pkg%mf6_input%mempath, &
290 nc_tag, export_pkg%mf6_input%subcomponent_name, &
291 this%gridmap_name, this%deflate, this%shuffle, &
292 this%chunk_face,
kper, iaux, this%nc_fname)
303 call nf_verify(nf90_sync(this%ncid), this%nc_fname)
310 character(len=*),
intent(in) :: pkgtype
311 character(len=*),
intent(in) :: pkgname
312 character(len=*),
intent(in) :: mempath
314 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
315 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
316 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
317 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
318 character(len=LINELENGTH) :: nc_tag
319 integer(I4B) :: iper, iaux
325 nc_tag = this%input_attribute(pkgname, idt)
327 select case (idt%datatype)
329 call mem_setptr(int1d, idt%mf6varname, mempath)
331 this%disv, idt, mempath, nc_tag, pkgname, &
332 this%gridmap_name, this%deflate, this%shuffle, &
333 this%chunk_face, iper, this%nc_fname)
335 call mem_setptr(int2d, idt%mf6varname, mempath)
337 this%disv, idt, mempath, nc_tag, pkgname, &
338 this%gridmap_name, this%deflate, this%shuffle, &
339 this%chunk_face, this%nc_fname)
341 call mem_setptr(dbl1d, idt%mf6varname, mempath)
343 this%disv, idt, mempath, nc_tag, pkgname, &
344 this%gridmap_name, this%deflate, this%shuffle, &
345 this%chunk_face, iper, iaux, this%nc_fname)
347 call mem_setptr(dbl2d, idt%mf6varname, mempath)
349 this%disv, idt, mempath, nc_tag, pkgname, &
350 this%gridmap_name, this%deflate, this%shuffle, &
351 this%chunk_face, this%nc_fname)
361 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert
364 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
367 call nf_verify(nf90_def_dim(this%ncid,
'time', this%totnstp, &
368 this%dim_ids%time), this%nc_fname)
369 call nf_verify(nf90_def_var(this%ncid,
'time', nf90_double, &
370 this%dim_ids%time, this%var_ids%time), &
372 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'calendar', &
373 'standard'), this%nc_fname)
374 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'units', &
375 this%datetime), this%nc_fname)
376 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'axis',
'T'), &
378 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'standard_name', &
379 'time'), this%nc_fname)
380 call nf_verify(nf90_put_att(this%ncid, this%var_ids%time,
'long_name', &
381 'time'), this%nc_fname)
384 call nf_verify(nf90_def_dim(this%ncid,
'nmesh_node', this%disv%nvert, &
385 this%dim_ids%nmesh_node), this%nc_fname)
386 call nf_verify(nf90_def_dim(this%ncid,
'nmesh_face', this%disv%ncpl, &
387 this%dim_ids%nmesh_face), this%nc_fname)
388 call nf_verify(nf90_def_dim(this%ncid,
'max_nmesh_face_nodes', &
390 this%dim_ids%max_nmesh_face_nodes), &
399 integer(I4B),
dimension(:),
contiguous,
pointer :: icell2d => null()
400 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert => null()
401 integer(I4B),
dimension(:),
contiguous,
pointer :: icvert => null()
402 real(DP),
dimension(:),
contiguous,
pointer :: cell_x => null()
403 real(DP),
dimension(:),
contiguous,
pointer :: cell_y => null()
404 real(DP),
dimension(:),
contiguous,
pointer :: vert_x => null()
405 real(DP),
dimension(:),
contiguous,
pointer :: vert_y => null()
406 real(DP),
dimension(:),
contiguous,
pointer :: cell_xt => null()
407 real(DP),
dimension(:),
contiguous,
pointer :: cell_yt => null()
408 real(DP),
dimension(:),
contiguous,
pointer :: vert_xt => null()
409 real(DP),
dimension(:),
contiguous,
pointer :: vert_yt => null()
410 real(DP) :: x_transform, y_transform
411 integer(I4B) :: n, m, idx, cnt, iv, maxvert
412 integer(I4B),
dimension(:),
allocatable :: verts
413 real(DP),
dimension(:),
allocatable :: bnds
414 integer(I4B) :: istop
417 call mem_setptr(icell2d,
'ICELL2D', this%dis_mempath)
418 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
419 call mem_setptr(icvert,
'ICVERT', this%dis_mempath)
420 call mem_setptr(cell_x,
'XC', this%dis_mempath)
421 call mem_setptr(cell_y,
'YC', this%dis_mempath)
422 call mem_setptr(vert_x,
'XV', this%dis_mempath)
423 call mem_setptr(vert_y,
'YV', this%dis_mempath)
426 allocate (cell_xt(
size(cell_x)))
427 allocate (cell_yt(
size(cell_y)))
428 allocate (vert_xt(
size(vert_x)))
429 allocate (vert_yt(
size(vert_y)))
432 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh, 1), &
436 do n = 1,
size(vert_x)
441 x_transform, y_transform)
442 vert_xt(n) = x_transform
443 vert_yt(n) = y_transform
447 do n = 1,
size(cell_x)
452 x_transform, y_transform)
453 cell_xt(n) = x_transform
454 cell_yt(n) = y_transform
458 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_x, &
459 vert_xt), this%nc_fname)
460 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_y, &
461 vert_yt), this%nc_fname)
464 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_x, &
465 cell_xt), this%nc_fname)
466 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_y, &
467 cell_yt), this%nc_fname)
470 maxvert = maxval(ncvert)
473 allocate (verts(maxvert))
474 allocate (bnds(maxvert))
478 do n = 1,
size(ncvert)
479 verts = nf90_fill_int
480 idx = cnt + ncvert(n)
483 do m = idx, istop, -1
486 verts(iv) = icvert(m)
490 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_nodes, &
491 verts, start=(/1, n/), &
492 count=(/maxvert, 1/)), &
496 bnds = nf90_fill_double
498 if (verts(m) /= nf90_fill_int)
then
499 bnds(m) = vert_yt(verts(m))
502 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_ybnds, &
503 bnds, start=(/1, n/), &
504 count=(/maxvert, 1/)), &
509 bnds = nf90_fill_double
511 if (verts(m) /= nf90_fill_int)
then
512 bnds(m) = vert_xt(verts(m))
515 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_xbnds, &
516 bnds, start=(/1, n/), &
517 count=(/maxvert, 1/)), &
534 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
535 chunk_face, iper, nc_fname)
537 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
538 integer(I4B),
intent(in) :: ncid
541 type(
disvtype),
pointer,
intent(in) :: disv
543 character(len=*),
intent(in) :: mempath
544 character(len=*),
intent(in) :: nc_tag
545 character(len=*),
intent(in) :: pkgname
546 character(len=*),
intent(in) :: gridmap_name
547 integer(I4B),
intent(in) :: deflate
548 integer(I4B),
intent(in) :: shuffle
549 integer(I4B),
intent(in) :: chunk_face
550 integer(I4B),
intent(in) :: iper
551 character(len=*),
intent(in) :: nc_fname
552 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
553 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
554 integer(I4B) :: axis_sz, k, istp
555 integer(I4B),
dimension(:),
allocatable :: var_id
556 character(len=LINELENGTH) :: longname, varname
558 if (idt%shape ==
'NCPL' .or. &
559 idt%shape ==
'NAUX NCPL')
then
564 longname =
export_longname(idt%longname, pkgname, idt%tagname, mempath)
567 axis_sz = dim_ids%nmesh_face
570 call nf_verify(nf90_redef(ncid), nc_fname)
571 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
572 (/axis_sz/), var_id(1)), &
576 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
578 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
581 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
582 (/nf90_fill_int/)), nc_fname)
583 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
591 call nf_verify(nf90_enddef(ncid), nc_fname)
592 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
597 call nf_verify(nf90_put_var(ncid, &
598 var_ids%export(1), p_mem, &
600 count=(/disv%ncpl, 1/)), nc_fname)
605 int2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
608 allocate (var_id(disv%nlay))
611 call nf_verify(nf90_redef(ncid), nc_fname)
618 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
619 (/dim_ids%nmesh_face/), var_id(k)), &
623 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
625 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
628 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
629 (/nf90_fill_int/)), nc_fname)
630 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
639 call nf_verify(nf90_enddef(ncid), nc_fname)
641 call nf_verify(nf90_put_var(ncid, var_id(k), int2d(:, k)), nc_fname)
650 int1d(1:disv%ncpl) => int2d(:, k)
651 call nf_verify(nf90_put_var(ncid, &
652 var_ids%export(k), int1d, &
654 count=(/disv%ncpl, 1/)), nc_fname)
663 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
664 chunk_face, nc_fname)
665 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
666 integer(I4B),
intent(in) :: ncid
669 type(
disvtype),
pointer,
intent(in) :: disv
671 character(len=*),
intent(in) :: mempath
672 character(len=*),
intent(in) :: nc_tag
673 character(len=*),
intent(in) :: pkgname
674 character(len=*),
intent(in) :: gridmap_name
675 integer(I4B),
intent(in) :: deflate
676 integer(I4B),
intent(in) :: shuffle
677 integer(I4B),
intent(in) :: chunk_face
678 character(len=*),
intent(in) :: nc_fname
679 integer(I4B),
dimension(:),
allocatable :: var_id
680 character(len=LINELENGTH) :: longname, varname
683 allocate (var_id(disv%nlay))
686 call nf_verify(nf90_redef(ncid), nc_fname)
693 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
694 (/dim_ids%nmesh_face/), var_id(k)), &
698 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
700 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
703 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
704 (/nf90_fill_int/)), nc_fname)
705 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
714 call nf_verify(nf90_enddef(ncid), nc_fname)
716 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
725 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
726 chunk_face, iper, iaux, nc_fname)
728 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
729 integer(I4B),
intent(in) :: ncid
732 type(
disvtype),
pointer,
intent(in) :: disv
734 character(len=*),
intent(in) :: mempath
735 character(len=*),
intent(in) :: nc_tag
736 character(len=*),
intent(in) :: pkgname
737 character(len=*),
intent(in) :: gridmap_name
738 integer(I4B),
intent(in) :: deflate
739 integer(I4B),
intent(in) :: shuffle
740 integer(I4B),
intent(in) :: chunk_face
741 integer(I4B),
intent(in) :: iper
742 integer(I4B),
intent(in) :: iaux
743 character(len=*),
intent(in) :: nc_fname
744 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
745 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
746 integer(I4B) :: axis_sz, k, istp
747 integer(I4B),
dimension(:),
allocatable :: var_id
748 character(len=LINELENGTH) :: longname, varname
750 if (idt%shape ==
'NCPL' .or. &
751 idt%shape ==
'NAUX NCPL')
then
761 axis_sz = dim_ids%nmesh_face
764 call nf_verify(nf90_redef(ncid), nc_fname)
765 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
766 (/axis_sz/), var_id(1)), &
770 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
772 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
775 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
776 (/nf90_fill_double/)), nc_fname)
777 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
782 call ncvar_mf6attr(ncid, var_id(1), 0, iaux, nc_tag, nc_fname)
785 call nf_verify(nf90_enddef(ncid), nc_fname)
786 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
791 call nf_verify(nf90_put_var(ncid, &
792 var_ids%export(1), p_mem, &
794 count=(/disv%ncpl, 1/)), nc_fname)
799 dbl2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
802 allocate (var_id(disv%nlay))
805 call nf_verify(nf90_redef(ncid), nc_fname)
808 varname =
export_varname(pkgname, idt%tagname, mempath, layer=k, &
811 mempath, layer=k, iaux=iaux)
813 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
814 (/dim_ids%nmesh_face/), var_id(k)), &
818 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
820 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
823 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
824 (/nf90_fill_double/)), nc_fname)
825 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
830 call ncvar_mf6attr(ncid, var_id(k), k, iaux, nc_tag, nc_fname)
834 call nf_verify(nf90_enddef(ncid), nc_fname)
836 call nf_verify(nf90_put_var(ncid, var_id(k), dbl2d(:, k)), nc_fname)
845 dbl1d(1:disv%ncpl) => dbl2d(:, k)
846 call nf_verify(nf90_put_var(ncid, &
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)
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.
integer(i4b) function, public ixstp()
step index for timeseries data
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