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), &
394 call nf_verify(nf90_def_dim(this%ncid,
'nlay', this%disv%nlay, &
395 this%dim_ids%nlay), this%nc_fname)
403 integer(I4B),
dimension(:),
contiguous,
pointer :: icell2d => null()
404 integer(I4B),
dimension(:),
contiguous,
pointer :: ncvert => null()
405 integer(I4B),
dimension(:),
contiguous,
pointer :: icvert => null()
406 real(DP),
dimension(:),
contiguous,
pointer :: cell_x => null()
407 real(DP),
dimension(:),
contiguous,
pointer :: cell_y => null()
408 real(DP),
dimension(:),
contiguous,
pointer :: vert_x => null()
409 real(DP),
dimension(:),
contiguous,
pointer :: vert_y => null()
410 real(DP),
dimension(:),
contiguous,
pointer :: cell_xt => null()
411 real(DP),
dimension(:),
contiguous,
pointer :: cell_yt => null()
412 real(DP),
dimension(:),
contiguous,
pointer :: vert_xt => null()
413 real(DP),
dimension(:),
contiguous,
pointer :: vert_yt => null()
414 real(DP) :: x_transform, y_transform
415 integer(I4B) :: n, m, idx, cnt, iv, maxvert
416 integer(I4B),
dimension(:),
allocatable :: verts
417 real(DP),
dimension(:),
allocatable :: bnds
418 integer(I4B) :: istop
421 call mem_setptr(icell2d,
'ICELL2D', this%dis_mempath)
422 call mem_setptr(ncvert,
'NCVERT', this%dis_mempath)
423 call mem_setptr(icvert,
'ICVERT', this%dis_mempath)
424 call mem_setptr(cell_x,
'XC', this%dis_mempath)
425 call mem_setptr(cell_y,
'YC', this%dis_mempath)
426 call mem_setptr(vert_x,
'XV', this%dis_mempath)
427 call mem_setptr(vert_y,
'YV', this%dis_mempath)
430 allocate (cell_xt(
size(cell_x)))
431 allocate (cell_yt(
size(cell_y)))
432 allocate (vert_xt(
size(vert_x)))
433 allocate (vert_yt(
size(vert_y)))
436 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh, 1), &
440 do n = 1,
size(vert_x)
445 x_transform, y_transform)
446 vert_xt(n) = x_transform
447 vert_yt(n) = y_transform
451 do n = 1,
size(cell_x)
456 x_transform, y_transform)
457 cell_xt(n) = x_transform
458 cell_yt(n) = y_transform
462 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_x, &
463 vert_xt), this%nc_fname)
464 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_node_y, &
465 vert_yt), this%nc_fname)
468 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_x, &
469 cell_xt), this%nc_fname)
470 call nf_verify(nf90_put_var(this%ncid, this%var_ids%mesh_face_y, &
471 cell_yt), this%nc_fname)
474 maxvert = maxval(ncvert)
477 allocate (verts(maxvert))
478 allocate (bnds(maxvert))
482 do n = 1,
size(ncvert)
483 verts = nf90_fill_int
484 idx = cnt + ncvert(n)
487 do m = idx, istop, -1
490 verts(iv) = icvert(m)
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, istp
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 call nf_verify(nf90_put_var(ncid, &
602 var_ids%export(1), p_mem, &
604 count=(/disv%ncpl, 1/)), nc_fname)
609 int2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
612 allocate (var_id(disv%nlay))
615 call nf_verify(nf90_redef(ncid), nc_fname)
622 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
623 (/dim_ids%nmesh_face/), var_id(k)), &
627 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
629 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
632 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
633 (/nf90_fill_int/)), nc_fname)
634 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
643 call nf_verify(nf90_enddef(ncid), nc_fname)
645 call nf_verify(nf90_put_var(ncid, var_id(k), int2d(:, k)), nc_fname)
654 int1d(1:disv%ncpl) => int2d(:, k)
655 call nf_verify(nf90_put_var(ncid, &
656 var_ids%export(k), int1d, &
658 count=(/disv%ncpl, 1/)), nc_fname)
667 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
668 chunk_face, nc_fname)
669 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
670 integer(I4B),
intent(in) :: ncid
673 type(
disvtype),
pointer,
intent(in) :: disv
675 character(len=*),
intent(in) :: mempath
676 character(len=*),
intent(in) :: nc_tag
677 character(len=*),
intent(in) :: pkgname
678 character(len=*),
intent(in) :: gridmap_name
679 integer(I4B),
intent(in) :: deflate
680 integer(I4B),
intent(in) :: shuffle
681 integer(I4B),
intent(in) :: chunk_face
682 character(len=*),
intent(in) :: nc_fname
683 integer(I4B),
dimension(:),
allocatable :: var_id
684 character(len=LINELENGTH) :: longname, varname
687 allocate (var_id(disv%nlay))
690 call nf_verify(nf90_redef(ncid), nc_fname)
697 call nf_verify(nf90_def_var(ncid, varname, nf90_int, &
698 (/dim_ids%nmesh_face/), var_id(k)), &
702 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
704 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
707 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
708 (/nf90_fill_int/)), nc_fname)
709 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
718 call nf_verify(nf90_enddef(ncid), nc_fname)
720 call nf_verify(nf90_put_var(ncid, var_id(k), p_mem(:, k)), nc_fname)
729 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
730 chunk_face, iper, iaux, nc_fname)
732 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: p_mem
733 integer(I4B),
intent(in) :: ncid
736 type(
disvtype),
pointer,
intent(in) :: disv
738 character(len=*),
intent(in) :: mempath
739 character(len=*),
intent(in) :: nc_tag
740 character(len=*),
intent(in) :: pkgname
741 character(len=*),
intent(in) :: gridmap_name
742 integer(I4B),
intent(in) :: deflate
743 integer(I4B),
intent(in) :: shuffle
744 integer(I4B),
intent(in) :: chunk_face
745 integer(I4B),
intent(in) :: iper
746 integer(I4B),
intent(in) :: iaux
747 character(len=*),
intent(in) :: nc_fname
748 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
749 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
750 integer(I4B) :: axis_sz, k, istp
751 integer(I4B),
dimension(:),
allocatable :: var_id
752 character(len=LINELENGTH) :: longname, varname
754 if (idt%shape ==
'NCPL' .or. &
755 idt%shape ==
'NAUX NCPL')
then
765 axis_sz = dim_ids%nmesh_face
768 call nf_verify(nf90_redef(ncid), nc_fname)
769 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
770 (/axis_sz/), var_id(1)), &
774 call ncvar_chunk(ncid, var_id(1), chunk_face, nc_fname)
776 call ncvar_deflate(ncid, var_id(1), deflate, shuffle, nc_fname)
779 call nf_verify(nf90_put_att(ncid, var_id(1),
'_FillValue', &
780 (/nf90_fill_double/)), nc_fname)
781 call nf_verify(nf90_put_att(ncid, var_id(1),
'long_name', &
786 call ncvar_mf6attr(ncid, var_id(1), 0, iaux, nc_tag, nc_fname)
789 call nf_verify(nf90_enddef(ncid), nc_fname)
790 call nf_verify(nf90_put_var(ncid, var_id(1), p_mem), &
795 call nf_verify(nf90_put_var(ncid, &
796 var_ids%export(1), p_mem, &
798 count=(/disv%ncpl, 1/)), nc_fname)
803 dbl2d(1:disv%ncpl, 1:disv%nlay) => p_mem(1:disv%nodesuser)
806 allocate (var_id(disv%nlay))
809 call nf_verify(nf90_redef(ncid), nc_fname)
812 varname =
export_varname(pkgname, idt%tagname, mempath, layer=k, &
815 mempath, layer=k, iaux=iaux)
817 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
818 (/dim_ids%nmesh_face/), var_id(k)), &
822 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
824 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
827 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
828 (/nf90_fill_double/)), nc_fname)
829 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
834 call ncvar_mf6attr(ncid, var_id(k), k, iaux, nc_tag, nc_fname)
838 call nf_verify(nf90_enddef(ncid), nc_fname)
840 call nf_verify(nf90_put_var(ncid, var_id(k), dbl2d(:, k)), nc_fname)
849 dbl1d(1:disv%ncpl) => dbl2d(:, k)
850 call nf_verify(nf90_put_var(ncid, &
851 var_ids%export(k), dbl1d, &
853 count=(/disv%ncpl, 1/)), nc_fname)
862 nc_tag, pkgname, gridmap_name, deflate, shuffle, &
863 chunk_face, nc_fname)
864 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(in) :: p_mem
865 integer(I4B),
intent(in) :: ncid
868 type(
disvtype),
pointer,
intent(in) :: disv
870 character(len=*),
intent(in) :: mempath
871 character(len=*),
intent(in) :: nc_tag
872 character(len=*),
intent(in) :: pkgname
873 character(len=*),
intent(in) :: gridmap_name
874 integer(I4B),
intent(in) :: deflate
875 integer(I4B),
intent(in) :: shuffle
876 integer(I4B),
intent(in) :: chunk_face
877 character(len=*),
intent(in) :: nc_fname
878 integer(I4B),
dimension(:),
allocatable :: var_id
879 character(len=LINELENGTH) :: longname, varname
882 allocate (var_id(disv%nlay))
885 call nf_verify(nf90_redef(ncid), nc_fname)
892 call nf_verify(nf90_def_var(ncid, varname, nf90_double, &
893 (/dim_ids%nmesh_face/), var_id(k)), &
897 call ncvar_chunk(ncid, var_id(k), chunk_face, nc_fname)
899 call ncvar_deflate(ncid, var_id(k), deflate, shuffle, nc_fname)
902 call nf_verify(nf90_put_att(ncid, var_id(k),
'_FillValue', &
903 (/nf90_fill_double/)), nc_fname)
904 call nf_verify(nf90_put_att(ncid, var_id(k),
'long_name', &
913 call nf_verify(nf90_enddef(ncid), nc_fname)
915 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