50 integer(I4B),
dimension(:),
pointer,
contiguous :: mshape => null()
54 character(len=LINELENGTH) :: filename
55 character(len=LINELENGTH),
dimension(:),
allocatable :: block_tags
56 logical(LGP) :: ts_active
57 logical(LGP) :: export
58 logical(LGP) :: readasarrays
59 integer(I4B) :: inamedbound
60 integer(I4B) :: iauxiliary
84 subroutine load(this, parser, mf6_input, nc_vars, filename, iout)
90 character(len=*),
intent(in) :: filename
91 integer(I4B),
intent(in) :: iout
95 call this%init(parser, mf6_input, filename, iout)
98 this%nc_vars => nc_vars
101 do iblk = 1,
size(this%mf6_input%block_dfns)
103 if (this%mf6_input%block_dfns(iblk)%blockname ==
'PERIOD')
exit
105 call this%load_block(iblk)
117 subroutine init(this, parser, mf6_input, filename, iout)
122 character(len=*),
intent(in) :: filename
123 integer(I4B),
intent(in) :: iout
124 integer(I4B) :: isize
126 this%parser => parser
127 this%mf6_input = mf6_input
128 this%filename = filename
129 this%ts_active = .false.
130 this%export = .false.
131 this%readasarrays = .false.
136 call get_isize(
'MODEL_SHAPE', mf6_input%component_mempath, isize)
138 call mem_setptr(this%mshape,
'MODEL_SHAPE', mf6_input%component_mempath)
143 this%mf6_input%subcomponent_name, this%iout)
157 integer(I4B),
intent(in) :: iblk
160 if (
associated(this%structarray))
then
165 allocate (this%block_tags(0))
167 call this%parse_block(iblk, .false.)
169 call this%block_post_process(iblk)
171 deallocate (this%block_tags)
183 if (
associated(this%structarray))
then
189 this%mf6_input%subcomponent_name, this%iout)
200 integer(I4B),
intent(in) :: iblk
202 integer(I4B) :: iparam
203 integer(I4B),
pointer :: intptr
206 do iparam = 1,
size(this%block_tags)
207 select case (this%mf6_input%block_dfns(iblk)%blockname)
209 if (this%block_tags(iparam) ==
'AUXILIARY')
then
211 else if (this%block_tags(iparam) ==
'BOUNDNAMES')
then
213 else if (this%block_tags(iparam) ==
'READASARRAYS')
then
214 this%readasarrays = .true.
215 else if (this%block_tags(iparam) ==
'TS6')
then
216 this%ts_active = .true.
217 else if (this%block_tags(iparam) ==
'EXPORT_ARRAY_ASCII')
then
225 select case (this%mf6_input%block_dfns(iblk)%blockname)
228 do iparam = 1,
size(this%mf6_input%param_dfns)
229 idt => this%mf6_input%param_dfns(iparam)
230 if (idt%blockname ==
'OPTIONS' .and. &
231 idt%tagname ==
'AUXILIARY')
then
232 if (this%iauxiliary == 0)
then
233 call mem_allocate(intptr,
'NAUX', this%mf6_input%mempath)
241 if (this%mf6_input%pkgtype(1:3) ==
'DIS')
then
243 this%mf6_input%component_mempath, &
244 this%mf6_input%mempath, this%mshape)
257 integer(I4B),
intent(in) :: iblk
258 logical(LGP),
intent(in) :: recursive_call
259 logical(LGP) :: isblockfound
260 logical(LGP) :: endofblock
261 logical(LGP) :: supportopenclose
263 logical(LGP) :: found, required
267 if (this%mf6_input%pkgtype ==
'DISU6' .or. &
268 this%mf6_input%pkgtype ==
'DISV1D6' .or. &
269 this%mf6_input%pkgtype ==
'DISV2D6')
then
270 if (this%mf6_input%block_dfns(iblk)%blockname ==
'VERTICES' .or. &
271 this%mf6_input%block_dfns(iblk)%blockname ==
'CELL2D')
then
274 if (.not. found)
return
275 if (mt%intsclr == 0)
return
280 supportopenclose = (this%mf6_input%block_dfns(iblk)%blockname /=
'GRIDDATA')
283 required = this%mf6_input%block_dfns(iblk)%required .and. .not. recursive_call
284 call this%parser%GetBlock(this%mf6_input%block_dfns(iblk)%blockname, &
285 isblockfound, ierr, &
286 supportopenclose=supportopenclose, &
287 blockrequired=required)
289 if (isblockfound)
then
290 if (this%mf6_input%block_dfns(iblk)%aggregate)
then
292 call this%parse_structarray_block(iblk)
296 call this%parser%GetNextLine(endofblock)
299 call this%parse_tag(iblk, .false.)
305 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
306 if (isblockfound)
then
307 call this%parse_block(iblk, .true.)
314 integer(I4B),
intent(in) :: iblk
315 character(len=*),
intent(in) :: pkgtype
316 character(len=*),
intent(in) :: which
317 character(len=*),
intent(in) :: tag
322 this%mf6_input%component_type, &
323 this%mf6_input%subcomponent_type, &
324 this%mf6_input%block_dfns(iblk)%blockname, &
327 call load_io_tag(this%parser, idt, this%mf6_input%mempath, which, this%iout)
333 integer(I4B),
intent(in) :: iblk
334 character(len=LINELENGTH),
intent(in) :: tag
336 character(len=40),
dimension(:),
allocatable :: words
337 integer(I4B) :: nwords
338 character(len=LINELENGTH) :: io_tag
339 logical(LGP) :: found
345 if (idt%in_record)
then
348 this%mf6_input%component_type, &
349 this%mf6_input%subcomponent_type, &
352 if (nwords == 4)
then
354 if (words(3) ==
'FILEIN' .or. words(3) ==
'FILEOUT')
then
356 call this%parser%GetStringCaps(io_tag)
358 if (io_tag == words(3))
then
359 call this%parse_io_tag(iblk, words(2), words(3), words(4))
362 errmsg =
'Expected "'//trim(words(3))//
'" following keyword "'// &
363 trim(tag)//
'" but instead found "'//trim(io_tag)//
'"'
365 call this%parser%StoreErrorUnit()
371 if (
allocated(words))
deallocate (words)
374 if (.not. found)
then
378 if (idt%tagname(1:4) ==
'DEV_' .and. &
379 this%mf6_input%block_dfns(iblk)%blockname ==
'OPTIONS')
then
380 call this%parser%DevOpt()
392 recursive subroutine parse_tag(this, iblk, recursive_call)
395 integer(I4B),
intent(in) :: iblk
396 logical(LGP),
intent(in) :: recursive_call
397 character(len=LINELENGTH) :: tag
401 call this%parser%GetStringCaps(tag)
402 if (recursive_call)
then
411 this%mf6_input%component_type, &
412 this%mf6_input%subcomponent_type, &
413 this%mf6_input%block_dfns(iblk)%blockname, &
417 select case (idt%datatype)
419 call this%parse_keyword_tag(iblk, tag, idt)
421 if (idt%shape ==
'NAUX')
then
431 this%export, this%nc_vars, this%filename, &
435 this%export, this%nc_vars, this%filename, &
439 this%export, this%nc_vars, this%filename, &
445 this%export, this%nc_vars, this%filename, this%iout)
448 this%export, this%nc_vars, this%filename, this%iout)
451 this%export, this%nc_vars, this%filename, this%iout)
453 write (
errmsg,
'(a,a)')
'Failure reading data for tag: ', trim(tag)
455 call this%parser%StoreErrorUnit()
459 if (idt%in_record)
then
461 call this%parse_tag(iblk, .true.)
465 this%block_tags(
size(this%block_tags)) = trim(idt%tagname)
470 integer(I4B),
intent(in) :: iblk
472 character(len=LENVARNAME) :: varname
474 character(len=3) :: block_suffix =
'NUM'
477 ilen = len_trim(this%mf6_input%block_dfns(iblk)%blockname)
479 if (ilen > (
lenvarname - len(block_suffix)))
then
481 this%mf6_input%block_dfns(iblk)% &
482 blockname(1:(
lenvarname - len(block_suffix)))//block_suffix
484 varname = trim(this%mf6_input%block_dfns(iblk)%blockname)//block_suffix
487 idt%component_type = trim(this%mf6_input%component_type)
488 idt%subcomponent_type = trim(this%mf6_input%subcomponent_type)
489 idt%blockname = trim(this%mf6_input%block_dfns(iblk)%blockname)
490 idt%tagname = varname
491 idt%mf6varname = varname
492 idt%datatype =
'INTEGER'
507 integer(I4B),
intent(in) :: iblk
511 integer(I4B) :: blocknum
512 integer(I4B),
pointer :: nrow
513 integer(I4B) :: nrows, nrowsread
514 integer(I4B) :: ibinary, oc_inunit
515 integer(I4B) :: icol, iparam
519 call block_params%init(this%mf6_input, &
520 this%mf6_input%block_dfns(iblk)%blockname, &
521 this%readasarrays, this%iauxiliary, this%inamedbound)
525 this%mf6_input%component_type, &
526 this%mf6_input%subcomponent_type, &
527 this%mf6_input%block_dfns(iblk)%blockname)
529 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
530 blocknum = this%parser%GetInteger()
536 ncol = block_params%nparam
538 if (blocknum > 0) ncol = ncol + 1
540 if (idt%shape /=
'')
then
541 call mem_setptr(nrow, idt%shape, this%mf6_input%mempath)
549 blocknum, this%mf6_input%mempath, &
550 this%mf6_input%component_mempath)
554 if (blocknum > 0)
then
556 blockvar_idt = this%block_index_dfn(iblk)
558 call this%structarray%mem_create_vector(icol, idt)
571 this%mf6_input%component_type, &
572 this%mf6_input%subcomponent_type, &
573 this%mf6_input%block_dfns(iblk)%blockname, &
574 block_params%params(iparam), this%filename)
576 call this%structarray%mem_create_vector(icol, idt)
582 if (ibinary == 1)
then
584 nrowsread = this%structarray%read_from_binary(oc_inunit, this%iout)
585 call this%parser%terminateblock()
589 nrowsread = this%structarray%read_from_parser(this%parser, this%ts_active, &
594 call block_params%destroy()
602 character(len=*),
intent(in) :: memoryPath
603 integer(I4B),
intent(in) :: iout
604 integer(I4B),
pointer :: intvar
607 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
616 character(len=*),
intent(in) :: memoryPath
617 integer(I4B),
intent(in) :: iout
618 character(len=LINELENGTH),
pointer :: cstr
619 character(len=LENBIGLINE),
pointer :: bigcstr
621 select case (idt%shape)
624 call mem_allocate(bigcstr, ilen, idt%mf6varname, memorypath)
625 call parser%GetString(bigcstr, (.not. idt%preserve_case))
626 call idm_log_var(bigcstr, idt%tagname, memorypath, iout)
629 call mem_allocate(cstr, ilen, idt%mf6varname, memorypath)
630 call parser%GetString(cstr, (.not. idt%preserve_case))
631 call idm_log_var(cstr, idt%tagname, memorypath, iout)
643 character(len=*),
intent(in) :: memoryPath
644 character(len=*),
intent(in) :: which
645 integer(I4B),
intent(in) :: iout
646 character(len=LINELENGTH) :: cstr
648 integer(I4B) :: ilen, isize, idx
650 if (which ==
'FILEIN')
then
651 call get_isize(idt%mf6varname, memorypath, isize)
653 call mem_allocate(charstr1d, ilen, 1, idt%mf6varname, memorypath)
656 call mem_setptr(charstr1d, idt%mf6varname, memorypath)
661 call parser%GetString(cstr, (.not. idt%preserve_case))
662 charstr1d(idx) = cstr
663 else if (which ==
'FILEOUT')
then
677 character(len=*),
intent(in) :: memoryPath
678 integer(I4B),
intent(in) :: iout
679 character(len=:),
allocatable :: line
680 character(len=LENAUXNAME),
dimension(:),
allocatable :: caux
682 integer(I4B) :: istart
683 integer(I4B) :: istop
685 character(len=LENPACKAGENAME) :: text =
''
686 integer(I4B),
pointer :: intvar
688 pointer,
contiguous :: acharstr1d
691 call parser%GetRemainingLine(line)
693 call urdaux(intvar, parser%iuactive, iout, lloc, &
694 istart, istop, caux, line, text)
697 acharstr1d(i) = caux(i)
708 character(len=*),
intent(in) :: memoryPath
709 integer(I4B),
intent(in) :: iout
710 integer(I4B),
pointer :: intvar
712 intvar = parser%GetInteger()
713 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
719 nc_vars, input_fname, iout)
725 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
726 logical(LGP),
intent(in) :: export
728 character(len=*),
intent(in) :: input_fname
729 integer(I4B),
intent(in) :: iout
730 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
732 integer(I4B) :: nvals
733 integer(I4B),
dimension(:),
allocatable :: array_shape
734 integer(I4B),
dimension(:),
allocatable :: layer_shape
735 character(len=LINELENGTH) :: keyword
739 if (idt%shape ==
'NODES')
then
740 nvals = product(mshape)
743 nvals = array_shape(1)
747 call mem_allocate(int1d, nvals, idt%mf6varname, mf6_input%mempath)
751 call parser%GetStringCaps(keyword)
754 if (keyword ==
'NETCDF')
then
757 else if (keyword ==
'LAYERED' .and. idt%layered)
then
761 call read_int1d(parser, int1d, idt%mf6varname)
765 call idm_log_var(int1d, idt%tagname, mf6_input%mempath, iout)
769 if (idt%blockname ==
'GRIDDATA')
then
770 call idm_export(int1d, idt%tagname, mf6_input%mempath, idt%shape, iout)
778 nc_vars, input_fname, iout)
784 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
785 logical(LGP),
intent(in) :: export
787 character(len=*),
intent(in) :: input_fname
788 integer(I4B),
intent(in) :: iout
789 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
791 integer(I4B) :: nsize1, nsize2
792 integer(I4B),
dimension(:),
allocatable :: array_shape
793 integer(I4B),
dimension(:),
allocatable :: layer_shape
794 character(len=LINELENGTH) :: keyword
799 nsize1 = array_shape(1)
800 nsize2 = array_shape(2)
803 call mem_allocate(int2d, nsize1, nsize2, idt%mf6varname, mf6_input%mempath)
807 call parser%GetStringCaps(keyword)
810 if (keyword ==
'NETCDF')
then
813 else if (keyword ==
'LAYERED' .and. idt%layered)
then
817 call read_int2d(parser, int2d, idt%mf6varname)
821 call idm_log_var(int2d, idt%tagname, mf6_input%mempath, iout)
825 if (idt%blockname ==
'GRIDDATA')
then
826 call idm_export(int2d, idt%tagname, mf6_input%mempath, idt%shape, iout)
834 nc_vars, input_fname, iout)
840 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
841 logical(LGP),
intent(in) :: export
843 character(len=*),
intent(in) :: input_fname
844 integer(I4B),
intent(in) :: iout
845 integer(I4B),
dimension(:, :, :),
pointer,
contiguous :: int3d
847 integer(I4B) :: nsize1, nsize2, nsize3
848 integer(I4B),
dimension(:),
allocatable :: array_shape
849 integer(I4B),
dimension(:),
allocatable :: layer_shape
850 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d_ptr
851 character(len=LINELENGTH) :: keyword
856 nsize1 = array_shape(1)
857 nsize2 = array_shape(2)
858 nsize3 = array_shape(3)
861 call mem_allocate(int3d, nsize1, nsize2, nsize3, idt%mf6varname, &
866 call parser%GetStringCaps(keyword)
869 if (keyword ==
'NETCDF')
then
872 else if (keyword ==
'LAYERED' .and. idt%layered)
then
877 int1d_ptr(1:nsize1 * nsize2 * nsize3) => int3d(:, :, :)
878 call read_int1d(parser, int1d_ptr, idt%mf6varname)
882 call idm_log_var(int3d, idt%tagname, mf6_input%mempath, iout)
886 if (idt%blockname ==
'GRIDDATA')
then
887 call idm_export(int3d, idt%tagname, mf6_input%mempath, idt%shape, iout)
897 character(len=*),
intent(in) :: memoryPath
898 integer(I4B),
intent(in) :: iout
899 real(DP),
pointer :: dblvar
901 dblvar = parser%GetDouble()
902 call idm_log_var(dblvar, idt%tagname, memorypath, iout)
908 nc_vars, input_fname, iout)
914 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
915 logical(LGP),
intent(in) :: export
917 character(len=*),
intent(in) :: input_fname
918 integer(I4B),
intent(in) :: iout
919 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
921 integer(I4B) :: nvals
922 integer(I4B),
dimension(:),
allocatable :: array_shape
923 integer(I4B),
dimension(:),
allocatable :: layer_shape
924 character(len=LINELENGTH) :: keyword
927 if (idt%shape ==
'NODES')
then
928 nvals = product(mshape)
931 nvals = array_shape(1)
935 call mem_allocate(dbl1d, nvals, idt%mf6varname, mf6_input%mempath)
939 call parser%GetStringCaps(keyword)
942 if (keyword ==
'NETCDF')
then
945 else if (keyword ==
'LAYERED' .and. idt%layered)
then
949 call read_dbl1d(parser, dbl1d, idt%mf6varname)
953 call idm_log_var(dbl1d, idt%tagname, mf6_input%mempath, iout)
957 if (idt%blockname ==
'GRIDDATA')
then
958 call idm_export(dbl1d, idt%tagname, mf6_input%mempath, idt%shape, iout)
966 nc_vars, input_fname, iout)
972 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
973 logical(LGP),
intent(in) :: export
975 character(len=*),
intent(in) :: input_fname
976 integer(I4B),
intent(in) :: iout
977 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
979 integer(I4B) :: nsize1, nsize2
980 integer(I4B),
dimension(:),
allocatable :: array_shape
981 integer(I4B),
dimension(:),
allocatable :: layer_shape
982 character(len=LINELENGTH) :: keyword
987 nsize1 = array_shape(1)
988 nsize2 = array_shape(2)
991 call mem_allocate(dbl2d, nsize1, nsize2, idt%mf6varname, mf6_input%mempath)
995 call parser%GetStringCaps(keyword)
998 if (keyword ==
'NETCDF')
then
1001 else if (keyword ==
'LAYERED' .and. idt%layered)
then
1005 call read_dbl2d(parser, dbl2d, idt%mf6varname)
1009 call idm_log_var(dbl2d, idt%tagname, mf6_input%mempath, iout)
1013 if (idt%blockname ==
'GRIDDATA')
then
1014 call idm_export(dbl2d, idt%tagname, mf6_input%mempath, idt%shape, iout)
1022 nc_vars, input_fname, iout)
1028 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1029 logical(LGP),
intent(in) :: export
1031 character(len=*),
intent(in) :: input_fname
1032 integer(I4B),
intent(in) :: iout
1033 real(DP),
dimension(:, :, :),
pointer,
contiguous :: dbl3d
1034 integer(I4B) :: nlay
1035 integer(I4B) :: nsize1, nsize2, nsize3
1036 integer(I4B),
dimension(:),
allocatable :: array_shape
1037 integer(I4B),
dimension(:),
allocatable :: layer_shape
1038 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d_ptr
1039 character(len=LINELENGTH) :: keyword
1044 nsize1 = array_shape(1)
1045 nsize2 = array_shape(2)
1046 nsize3 = array_shape(3)
1049 call mem_allocate(dbl3d, nsize1, nsize2, nsize3, idt%mf6varname, &
1054 call parser%GetStringCaps(keyword)
1057 if (keyword ==
'NETCDF')
then
1060 else if (keyword ==
'LAYERED' .and. idt%layered)
then
1065 dbl1d_ptr(1:nsize1 * nsize2 * nsize3) => dbl3d(:, :, :)
1066 call read_dbl1d(parser, dbl1d_ptr, idt%mf6varname)
1070 call idm_log_var(dbl3d, idt%tagname, mf6_input%mempath, iout)
1074 if (idt%blockname ==
'GRIDDATA')
then
1075 call idm_export(dbl3d, idt%tagname, mf6_input%mempath, idt%shape, iout)
1088 integer(I4B),
intent(inout) :: oc_inunit
1089 integer(I4B),
intent(in) :: iout
1090 integer(I4B) :: ibinary
1091 integer(I4B) :: lloc, istart, istop, idum, inunit, itmp, ierr
1092 integer(I4B) :: nunopn = 99
1093 character(len=:),
allocatable :: line
1094 character(len=LINELENGTH) :: fname
1095 logical(LGP) :: exists
1097 character(len=*),
parameter :: fmtocne = &
1098 &
"('Specified OPEN/CLOSE file ',(A),' does not exist')"
1099 character(len=*),
parameter :: fmtobf = &
1100 &
"(1X,/1X,'OPENING BINARY FILE ON UNIT ',I0,':',/1X,A)"
1105 inunit = parser%getunit()
1109 call parser%line_reader%rdcom(inunit, iout, line, ierr)
1110 call urword(line, lloc, istart, istop, 1, idum, r, iout, inunit)
1112 if (line(istart:istop) ==
'OPEN/CLOSE')
then
1114 call urword(line, lloc, istart, istop, 0, idum, r, &
1116 fname = line(istart:istop)
1118 inquire (file=fname, exist=exists)
1119 if (.not. exists)
then
1120 write (
errmsg, fmtocne) line(istart:istop)
1122 call store_error(
'Specified OPEN/CLOSE file does not exist')
1127 call urword(line, lloc, istart, istop, 1, idum, r, &
1130 if (line(istart:istop) ==
'(BINARY)') ibinary = 1
1132 if (ibinary == 1)
then
1137 write (iout, fmtobf) oc_inunit, trim(adjustl(fname))
1139 call openfile(oc_inunit, itmp, fname,
'OPEN/CLOSE', &
1144 if (ibinary == 0)
then
1145 call parser%line_reader%bkspc(parser%getunit())
This module contains block parser methods.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lenpackagename
maximum length of the package name
integer(i4b), parameter lenbigline
maximum length of a big line
integer(i4b), parameter lenvarname
maximum length of a variable name
integer(i4b), parameter lenauxname
maximum length of a aux variable
integer(i4b), parameter lenboundname
maximum length of a bound name
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.
subroutine, public split_record_definition(input_definition_types, component_type, subcomponent_type, tagname, nwords, words)
Return aggregate definition.
type(inputparamdefinitiontype) function, pointer, public get_aggregate_definition_type(input_definition_types, component_type, subcomponent_type, blockname)
Return aggregate definition.
subroutine, public read_dbl1d(parser, dbl1d, aname)
subroutine, public read_dbl2d(parser, dbl2d, aname)
This module contains the DynamicPackageParamsModule.
This module contains the Input Data Model Logger Module.
subroutine, public idm_log_close(component, subcomponent, iout)
@ brief log the closing message
subroutine, public idm_log_header(component, subcomponent, iout)
@ brief log a header message
subroutine, public read_int1d(parser, int1d, aname)
subroutine, public read_int2d(parser, int2d, aname)
This module defines variable data types.
subroutine, public read_int1d_layered(parser, int1d, aname, nlay, layer_shape)
subroutine, public read_dbl1d_layered(parser, dbl1d, aname, nlay, layer_shape)
subroutine, public read_dbl2d_layered(parser, dbl2d, aname, nlay, layer_shape)
subroutine, public read_int3d_layered(parser, int3d, aname, nlay, layer_shape)
subroutine, public read_dbl3d_layered(parser, dbl3d, aname, nlay, layer_shape)
subroutine, public read_int2d_layered(parser, int2d, aname, nlay, layer_shape)
This module contains the LoadMf6FileModule.
type(inputparamdefinitiontype) function block_index_dfn(this, iblk)
subroutine parse_keyword_tag(this, iblk, tag, idt)
recursive subroutine parse_tag(this, iblk, recursive_call)
load an individual input record into memory
subroutine load_integer1d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 1d integer
subroutine load_io_tag(parser, idt, memoryPath, which, iout)
load io tag
subroutine load_double3d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 3d double
subroutine load_string_type(parser, idt, memoryPath, iout)
load type string
subroutine load_keyword_type(parser, idt, memoryPath, iout)
load type keyword
subroutine load_auxvar_names(parser, idt, memoryPath, iout)
load aux variable names
subroutine load_double1d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 1d double
subroutine load_block(this, iblk)
load a single block
subroutine parse_io_tag(this, iblk, pkgtype, which, tag)
subroutine load_double2d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 2d double
subroutine load_integer_type(parser, idt, memoryPath, iout)
load type integer
recursive subroutine parse_block(this, iblk, recursive_call)
parse block
subroutine load_integer3d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 3d integer
subroutine block_post_process(this, iblk)
Post parse block handling.
subroutine finalize(this)
finalize
subroutine load_double_type(parser, idt, memoryPath, iout)
load type double
subroutine load_integer2d_type(parser, idt, mf6_input, mshape, export, nc_vars, input_fname, iout)
load type 2d integer
subroutine parse_structarray_block(this, iblk)
parse a structured array record into memory manager
subroutine load(this, parser, mf6_input, nc_vars, filename, iout)
load all static input blocks
integer(i4b) function, public read_control_record(parser, oc_inunit, iout)
character(len=lenmempath) function create_mem_path(component, subcomponent, context)
returns the path to the memory object
subroutine, public get_from_memorystore(name, mem_path, mt, found, check)
@ brief Get a memory type entry from the memory list
subroutine, public get_isize(name, mem_path, isize)
@ brief Get the number of elements for this variable
This module contains the NCFileVarsModule.
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
subroutine, public store_error_unit(iunit, terminate)
Store the file unit number.
This module contains simulation variables.
character(len=maxcharlen) errmsg
error message string
This module contains the SourceCommonModule.
subroutine, public get_layered_shape(mshape, nlay, layer_shape)
subroutine, public get_shape_from_string(shape_string, array_shape, memoryPath)
subroutine, public set_model_shape(ftype, fname, model_mempath, dis_mempath, model_shape)
routine for setting the model shape
This module contains the StructArrayModule.
type(structarraytype) function, pointer, public constructstructarray(mf6_input, ncol, nrow, blocknum, mempath, component_mempath)
constructor for a struct_array
subroutine, public destructstructarray(struct_array)
destructor for a struct_array
This class is used to store a single deferred-length character string. It was designed to work in an ...
dynamic parameter filter type
Static parser based input loader.
Type describing input variables for a package in NetCDF file.
type for structured array