49 integer(I4B),
dimension(:),
pointer,
contiguous :: mshape => null()
52 character(len=LINELENGTH) :: filename
53 character(len=LINELENGTH),
dimension(:),
allocatable :: block_tags
54 logical(LGP) :: ts_active
55 logical(LGP) :: export
56 logical(LGP) :: readasarrays
57 integer(I4B) :: inamedbound
58 integer(I4B) :: iauxiliary
82 subroutine load(this, parser, mf6_input, filename, iout)
89 character(len=*),
intent(in) :: filename
90 integer(I4B),
intent(in) :: iout
95 call this%init(parser, mf6_input, filename, iout)
98 do iblk = 1,
size(this%mf6_input%block_dfns)
101 if (this%mf6_input%block_dfns(iblk)%blockname ==
'PERIOD')
exit
104 call this%load_block(iblk)
120 subroutine init(this, parser, mf6_input, filename, iout)
127 character(len=*),
intent(in) :: filename
128 integer(I4B),
intent(in) :: iout
130 integer(I4B) :: isize
132 this%parser => parser
133 this%mf6_input = mf6_input
134 this%filename = filename
135 this%ts_active = .false.
136 this%export = .false.
137 this%readasarrays = .false.
142 call get_isize(
'MODEL_SHAPE', mf6_input%component_mempath, isize)
145 call mem_setptr(this%mshape,
'MODEL_SHAPE', mf6_input%component_mempath)
150 this%mf6_input%subcomponent_name, this%iout)
169 integer(I4B),
intent(in) :: iblk
173 if (
associated(this%structarray))
then
178 allocate (this%block_tags(0))
181 call this%parse_block(iblk, .false.)
184 call this%block_post_process(iblk)
186 deallocate (this%block_tags)
205 if (
associated(this%structarray))
then
212 this%mf6_input%subcomponent_name, this%iout)
228 integer(I4B),
intent(in) :: iblk
231 integer(I4B) :: iparam
232 integer(I4B),
pointer :: intptr
235 do iparam = 1,
size(this%block_tags)
236 select case (this%mf6_input%block_dfns(iblk)%blockname)
238 if (this%block_tags(iparam) ==
'AUXILIARY')
then
240 else if (this%block_tags(iparam) ==
'BOUNDNAMES')
then
242 else if (this%block_tags(iparam) ==
'READASARRAYS')
then
243 this%readasarrays = .true.
244 else if (this%block_tags(iparam) ==
'TS6')
then
245 this%ts_active = .true.
246 else if (this%block_tags(iparam) ==
'EXPORT_ARRAY_ASCII')
then
254 select case (this%mf6_input%block_dfns(iblk)%blockname)
257 do iparam = 1,
size(this%mf6_input%param_dfns)
258 idt => this%mf6_input%param_dfns(iparam)
260 if (idt%blockname ==
'OPTIONS' .and. &
261 idt%tagname ==
'AUXILIARY')
then
262 if (this%iauxiliary == 0)
then
263 call mem_allocate(intptr,
'NAUX', this%mf6_input%mempath)
271 if (this%mf6_input%pkgtype(1:3) ==
'DIS')
then
273 this%mf6_input%component_mempath, &
274 this%mf6_input%mempath, this%mshape)
292 integer(I4B),
intent(in) :: iblk
293 logical(LGP),
intent(in) :: recursive_call
295 logical(LGP) :: isblockfound
296 logical(LGP) :: endofblock
297 logical(LGP) :: supportopenclose
299 logical(LGP) :: found, required
303 if (this%mf6_input%pkgtype ==
'DISU6' .or. &
304 this%mf6_input%pkgtype ==
'DISV1D6' .or. &
305 this%mf6_input%pkgtype ==
'DISV2D6')
then
306 if (this%mf6_input%block_dfns(iblk)%blockname ==
'VERTICES' .or. &
307 this%mf6_input%block_dfns(iblk)%blockname ==
'CELL2D')
then
310 if (.not. found)
return
311 if (mt%intsclr == 0)
return
316 supportopenclose = (this%mf6_input%block_dfns(iblk)%blockname /=
'GRIDDATA')
319 required = this%mf6_input%block_dfns(iblk)%required .and. .not. recursive_call
320 call this%parser%GetBlock(this%mf6_input%block_dfns(iblk)%blockname, &
321 isblockfound, ierr, &
322 supportopenclose=supportopenclose, &
323 blockrequired=required)
326 if (isblockfound)
then
327 if (this%mf6_input%block_dfns(iblk)%aggregate)
then
330 call this%parse_structarray_block(iblk)
335 call this%parser%GetNextLine(endofblock)
339 call this%parse_tag(iblk, .false.)
346 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
347 if (isblockfound)
then
348 call this%parse_block(iblk, .true.)
360 integer(I4B),
intent(in) :: iblk
361 character(len=*),
intent(in) :: pkgtype
362 character(len=*),
intent(in) :: which
363 character(len=*),
intent(in) :: tag
370 this%mf6_input%component_type, &
371 this%mf6_input%subcomponent_type, &
372 this%mf6_input%block_dfns(iblk)%blockname, &
376 call load_io_tag(this%parser, idt, this%mf6_input%mempath, which, this%iout)
387 integer(I4B),
intent(in) :: iblk
388 character(len=LINELENGTH),
intent(in) :: tag
391 character(len=40),
dimension(:),
allocatable :: words
392 integer(I4B) :: nwords
393 character(len=LINELENGTH) :: io_tag
394 logical(LGP) :: found
400 if (idt%in_record)
then
404 this%mf6_input%component_type, &
405 this%mf6_input%subcomponent_type, &
409 if (nwords == 4)
then
412 if (words(3) ==
'FILEIN' .or. words(3) ==
'FILEOUT')
then
415 call this%parser%GetStringCaps(io_tag)
418 if (io_tag == words(3))
then
419 call this%parse_io_tag(iblk, words(2), words(3), words(4))
422 errmsg =
'Expected "'//trim(words(3))//
'" following keyword "'// &
423 trim(tag)//
'" but instead found "'//trim(io_tag)//
'"'
425 call this%parser%StoreErrorUnit()
432 if (
allocated(words))
deallocate (words)
435 if (.not. found)
then
440 if (idt%tagname(1:4) ==
'DEV_' .and. &
441 this%mf6_input%block_dfns(iblk)%blockname ==
'OPTIONS')
then
442 call this%parser%DevOpt()
457 recursive subroutine parse_tag(this, iblk, recursive_call)
462 integer(I4B),
intent(in) :: iblk
463 logical(LGP),
intent(in) :: recursive_call
465 character(len=LINELENGTH) :: tag
469 call this%parser%GetStringCaps(tag)
470 if (recursive_call)
then
479 this%mf6_input%component_type, &
480 this%mf6_input%subcomponent_type, &
481 this%mf6_input%block_dfns(iblk)%blockname, &
485 select case (idt%datatype)
487 call this%parse_keyword_tag(iblk, tag, idt)
489 if (idt%shape ==
'NAUX')
then
499 this%mshape, this%export, this%iout)
502 this%mshape, this%export, this%iout)
505 this%mshape, this%export, this%iout)
510 this%mshape, this%export, this%iout)
513 this%mshape, this%export, this%iout)
516 this%mshape, this%export, this%iout)
518 write (
errmsg,
'(a,a)')
'Failure reading data for tag: ', trim(tag)
520 call this%parser%StoreErrorUnit()
524 if (idt%in_record)
then
527 call this%parse_tag(iblk, .true.)
532 this%block_tags(
size(this%block_tags)) = trim(idt%tagname)
542 integer(I4B),
intent(in) :: iblk
545 character(len=LENVARNAME) :: varname
547 character(len=3) :: block_suffix =
'NUM'
550 ilen = len_trim(this%mf6_input%block_dfns(iblk)%blockname)
552 if (ilen > (
lenvarname - len(block_suffix)))
then
554 this%mf6_input%block_dfns(iblk)% &
555 blockname(1:(
lenvarname - len(block_suffix)))//block_suffix
557 varname = trim(this%mf6_input%block_dfns(iblk)%blockname)//block_suffix
560 idt%component_type = trim(this%mf6_input%component_type)
561 idt%subcomponent_type = trim(this%mf6_input%subcomponent_type)
562 idt%blockname = trim(this%mf6_input%block_dfns(iblk)%blockname)
563 idt%tagname = varname
564 idt%mf6varname = varname
565 idt%datatype =
'INTEGER'
585 integer(I4B),
intent(in) :: iblk
590 integer(I4B) :: blocknum
591 integer(I4B),
pointer :: nrow
592 integer(I4B) :: nrows, nrowsread
593 integer(I4B) :: ibinary, oc_inunit
594 integer(I4B) :: icol, iparam
598 call block_params%init(this%mf6_input, &
599 this%mf6_input%block_dfns(iblk)%blockname, &
600 this%readasarrays, this%iauxiliary, this%inamedbound)
605 this%mf6_input%component_type, &
606 this%mf6_input%subcomponent_type, &
607 this%mf6_input%block_dfns(iblk)%blockname)
610 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
611 blocknum = this%parser%GetInteger()
617 ncol = block_params%nparam
620 if (blocknum > 0) ncol = ncol + 1
623 if (idt%shape /=
'')
then
624 call mem_setptr(nrow, idt%shape, this%mf6_input%mempath)
632 blocknum, this%mf6_input%mempath, &
633 this%mf6_input%component_mempath)
639 if (blocknum > 0)
then
642 blockvar_idt = this%block_index_dfn(iblk)
645 call this%structarray%mem_create_vector(icol, idt)
662 this%mf6_input%component_type, &
663 this%mf6_input%subcomponent_type, &
664 this%mf6_input%block_dfns(iblk)%blockname, &
665 block_params%params(iparam), this%filename)
668 call this%structarray%mem_create_vector(icol, idt)
674 if (ibinary == 1)
then
677 nrowsread = this%structarray%read_from_binary(oc_inunit, this%iout)
679 call this%parser%terminateblock()
686 nrowsread = this%structarray%read_from_parser(this%parser, this%ts_active, &
691 call block_params%destroy()
702 character(len=*),
intent(in) :: memoryPath
703 integer(I4B),
intent(in) :: iout
704 integer(I4B),
pointer :: intvar
707 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
716 character(len=*),
intent(in) :: memoryPath
717 integer(I4B),
intent(in) :: iout
718 character(len=LINELENGTH),
pointer :: cstr
721 call mem_allocate(cstr, ilen, idt%mf6varname, memorypath)
722 call parser%GetString(cstr, (.not. idt%preserve_case))
723 call idm_log_var(cstr, idt%tagname, memorypath, iout)
735 character(len=*),
intent(in) :: memoryPath
736 character(len=*),
intent(in) :: which
737 integer(I4B),
intent(in) :: iout
738 character(len=LINELENGTH) :: cstr
740 integer(I4B) :: ilen, isize, idx
742 if (which ==
'FILEIN')
then
743 call get_isize(idt%mf6varname, memorypath, isize)
745 call mem_allocate(charstr1d, ilen, 1, idt%mf6varname, memorypath)
748 call mem_setptr(charstr1d, idt%mf6varname, memorypath)
753 call parser%GetString(cstr, (.not. idt%preserve_case))
754 charstr1d(idx) = cstr
755 else if (which ==
'FILEOUT')
then
770 character(len=*),
intent(in) :: memoryPath
771 integer(I4B),
intent(in) :: iout
772 character(len=:),
allocatable :: line
773 character(len=LENAUXNAME),
dimension(:),
allocatable :: caux
775 integer(I4B) :: istart
776 integer(I4B) :: istop
778 character(len=LENPACKAGENAME) :: text =
''
779 integer(I4B),
pointer :: intvar
781 pointer,
contiguous :: acharstr1d
784 call parser%GetRemainingLine(line)
786 call urdaux(intvar, parser%iuactive, iout, lloc, &
787 istart, istop, caux, line, text)
790 acharstr1d(i) = caux(i)
802 character(len=*),
intent(in) :: memoryPath
803 integer(I4B),
intent(in) :: iout
804 integer(I4B),
pointer :: intvar
806 intvar = parser%GetInteger()
807 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
817 character(len=*),
intent(in) :: memoryPath
818 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
819 logical(LGP),
intent(in) :: export
820 integer(I4B),
intent(in) :: iout
821 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
824 integer(I4B) :: nvals
825 integer(I4B),
dimension(:),
allocatable :: array_shape
826 integer(I4B),
dimension(:),
allocatable :: layer_shape
827 character(len=LINELENGTH) :: keyword
831 if (idt%shape ==
'NODES')
then
832 nvals = product(mshape)
835 nvals = array_shape(1)
839 call mem_allocate(int1d, nvals, idt%mf6varname, memorypath)
843 if (idt%layered)
then
844 call parser%GetStringCaps(keyword)
848 if (keyword ==
'LAYERED' .and. idt%layered)
then
852 call read_int1d(parser, int1d, idt%mf6varname)
856 call idm_log_var(int1d, idt%tagname, memorypath, iout)
860 if (idt%blockname ==
'GRIDDATA')
then
861 call idm_export(int1d, idt%tagname, memorypath, idt%shape, iout)
874 character(len=*),
intent(in) :: memoryPath
875 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
876 logical(LGP),
intent(in) :: export
877 integer(I4B),
intent(in) :: iout
878 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
880 integer(I4B) :: nsize1, nsize2
881 integer(I4B),
dimension(:),
allocatable :: array_shape
882 integer(I4B),
dimension(:),
allocatable :: layer_shape
883 character(len=LINELENGTH) :: keyword
888 nsize1 = array_shape(1)
889 nsize2 = array_shape(2)
892 call mem_allocate(int2d, nsize1, nsize2, idt%mf6varname, memorypath)
896 if (idt%layered)
then
897 call parser%GetStringCaps(keyword)
901 if (keyword ==
'LAYERED' .and. idt%layered)
then
905 call read_int2d(parser, int2d, idt%mf6varname)
909 call idm_log_var(int2d, idt%tagname, memorypath, iout)
913 if (idt%blockname ==
'GRIDDATA')
then
914 call idm_export(int2d, idt%tagname, memorypath, idt%shape, iout)
927 character(len=*),
intent(in) :: memoryPath
928 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
929 logical(LGP),
intent(in) :: export
930 integer(I4B),
intent(in) :: iout
931 integer(I4B),
dimension(:, :, :),
pointer,
contiguous :: int3d
933 integer(I4B) :: nsize1, nsize2, nsize3
934 integer(I4B),
dimension(:),
allocatable :: array_shape
935 integer(I4B),
dimension(:),
allocatable :: layer_shape
936 character(len=LINELENGTH) :: keyword
937 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d_ptr
942 nsize1 = array_shape(1)
943 nsize2 = array_shape(2)
944 nsize3 = array_shape(3)
947 call mem_allocate(int3d, nsize1, nsize2, nsize3, idt%mf6varname, &
952 if (idt%layered)
then
953 call parser%GetStringCaps(keyword)
957 if (keyword ==
'LAYERED' .and. idt%layered)
then
962 int1d_ptr(1:nsize1 * nsize2 * nsize3) => int3d(:, :, :)
963 call read_int1d(parser, int1d_ptr, idt%mf6varname)
967 call idm_log_var(int3d, idt%tagname, memorypath, iout)
971 if (idt%blockname ==
'GRIDDATA')
then
972 call idm_export(int3d, idt%tagname, memorypath, idt%shape, iout)
984 character(len=*),
intent(in) :: memoryPath
985 integer(I4B),
intent(in) :: iout
986 real(DP),
pointer :: dblvar
988 dblvar = parser%GetDouble()
989 call idm_log_var(dblvar, idt%tagname, memorypath, iout)
999 character(len=*),
intent(in) :: memoryPath
1000 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1001 logical(LGP),
intent(in) :: export
1002 integer(I4B),
intent(in) :: iout
1003 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
1005 integer(I4B) :: nlay
1006 integer(I4B) :: nvals
1007 integer(I4B),
dimension(:),
allocatable :: array_shape
1008 integer(I4B),
dimension(:),
allocatable :: layer_shape
1009 character(len=LINELENGTH) :: keyword
1012 if (idt%shape ==
'NODES')
then
1013 nvals = product(mshape)
1016 nvals = array_shape(1)
1020 call mem_allocate(dbl1d, nvals, idt%mf6varname, memorypath)
1024 if (idt%layered)
then
1025 call parser%GetStringCaps(keyword)
1029 if (keyword ==
'LAYERED' .and. idt%layered)
then
1033 call read_dbl1d(parser, dbl1d, idt%mf6varname)
1037 call idm_log_var(dbl1d, idt%tagname, memorypath, iout)
1041 if (idt%blockname ==
'GRIDDATA')
then
1042 call idm_export(dbl1d, idt%tagname, memorypath, idt%shape, iout)
1055 character(len=*),
intent(in) :: memoryPath
1056 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1057 logical(LGP),
intent(in) :: export
1058 integer(I4B),
intent(in) :: iout
1059 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
1060 integer(I4B) :: nlay
1061 integer(I4B) :: nsize1, nsize2
1062 integer(I4B),
dimension(:),
allocatable :: array_shape
1063 integer(I4B),
dimension(:),
allocatable :: layer_shape
1064 character(len=LINELENGTH) :: keyword
1069 nsize1 = array_shape(1)
1070 nsize2 = array_shape(2)
1073 call mem_allocate(dbl2d, nsize1, nsize2, idt%mf6varname, memorypath)
1077 if (idt%layered)
then
1078 call parser%GetStringCaps(keyword)
1082 if (keyword ==
'LAYERED' .and. idt%layered)
then
1086 call read_dbl2d(parser, dbl2d, idt%mf6varname)
1090 call idm_log_var(dbl2d, idt%tagname, memorypath, iout)
1094 if (idt%blockname ==
'GRIDDATA')
then
1095 call idm_export(dbl2d, idt%tagname, memorypath, idt%shape, iout)
1108 character(len=*),
intent(in) :: memoryPath
1109 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1110 logical(LGP),
intent(in) :: export
1111 integer(I4B),
intent(in) :: iout
1112 real(DP),
dimension(:, :, :),
pointer,
contiguous :: dbl3d
1113 integer(I4B) :: nlay
1114 integer(I4B) :: nsize1, nsize2, nsize3
1115 integer(I4B),
dimension(:),
allocatable :: array_shape
1116 integer(I4B),
dimension(:),
allocatable :: layer_shape
1117 character(len=LINELENGTH) :: keyword
1118 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d_ptr
1123 nsize1 = array_shape(1)
1124 nsize2 = array_shape(2)
1125 nsize3 = array_shape(3)
1128 call mem_allocate(dbl3d, nsize1, nsize2, nsize3, idt%mf6varname, &
1133 if (idt%layered)
then
1134 call parser%GetStringCaps(keyword)
1138 if (keyword ==
'LAYERED' .and. idt%layered)
then
1143 dbl1d_ptr(1:nsize1 * nsize2 * nsize3) => dbl3d(:, :, :)
1144 call read_dbl1d(parser, dbl1d_ptr, idt%mf6varname)
1148 call idm_log_var(dbl3d, idt%tagname, memorypath, iout)
1152 if (idt%blockname ==
'GRIDDATA')
then
1153 call idm_export(dbl3d, idt%tagname, memorypath, idt%shape, iout)
1161 integer(I4B),
dimension(:),
intent(in) :: mshape
1162 integer(I4B),
intent(out) :: nlay
1163 integer(I4B),
dimension(:),
allocatable,
intent(out) :: layer_shape
1164 integer(I4B) :: ndim
1171 allocate (layer_shape(1))
1172 layer_shape(1) = mshape(1)
1173 else if (ndim == 2)
then
1175 allocate (layer_shape(1))
1176 layer_shape(1) = mshape(2)
1177 else if (ndim == 3)
then
1179 allocate (layer_shape(2))
1180 layer_shape(1) = mshape(3)
1181 layer_shape(2) = mshape(2)
1196 integer(I4B),
intent(inout) :: oc_inunit
1197 integer(I4B),
intent(in) :: iout
1199 integer(I4B) :: ibinary
1201 integer(I4B) :: lloc, istart, istop, idum, inunit, itmp, ierr
1202 integer(I4B) :: nunopn = 99
1203 character(len=:),
allocatable :: line
1204 character(len=LINELENGTH) :: fname
1208 character(len=*),
parameter :: fmtocne = &
1209 &
"('Specified OPEN/CLOSE file ',(A),' does not exist')"
1210 character(len=*),
parameter :: fmtobf = &
1211 &
"(1X,/1X,'OPENING BINARY FILE ON UNIT ',I0,':',/1X,A)"
1217 inunit = parser%getunit()
1221 call parser%line_reader%rdcom(inunit, iout, line, ierr)
1222 call urword(line, lloc, istart, istop, 1, idum, r, iout, inunit)
1224 if (line(istart:istop) ==
'OPEN/CLOSE')
then
1227 call urword(line, lloc, istart, istop, 0, idum, r, &
1230 fname = line(istart:istop)
1233 inquire (file=fname, exist=exists)
1235 if (.not. exists)
then
1236 write (
errmsg, fmtocne) line(istart:istop)
1238 call store_error(
'Specified OPEN/CLOSE file does not exist')
1243 call urword(line, lloc, istart, istop, 1, idum, r, &
1246 if (line(istart:istop) ==
'(BINARY)') ibinary = 1
1249 if (ibinary == 1)
then
1255 write (iout, fmtobf) oc_inunit, trim(adjustl(fname))
1258 call openfile(oc_inunit, itmp, fname,
'OPEN/CLOSE', &
1263 if (ibinary == 0)
then
1264 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 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.
subroutine load_double1d_type(parser, idt, memoryPath, mshape, export, iout)
load type 1d double
subroutine load_integer2d_type(parser, idt, memoryPath, mshape, export, iout)
load type 2d integer
subroutine load_integer3d_type(parser, idt, memoryPath, mshape, export, iout)
load type 3d integer
subroutine load_double3d_type(parser, idt, memoryPath, mshape, export, iout)
load type 3d double
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_io_tag(parser, idt, memoryPath, which, iout)
load type string
subroutine load_string_type(parser, idt, memoryPath, iout)
load type string
subroutine get_layered_shape(mshape, nlay, layer_shape)
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_block(this, iblk)
load a single block
subroutine parse_io_tag(this, iblk, pkgtype, which, tag)
subroutine load_integer_type(parser, idt, memoryPath, iout)
load type integer
recursive subroutine parse_block(this, iblk, recursive_call)
parse block
subroutine load_double2d_type(parser, idt, memoryPath, mshape, export, iout)
load type 2d double
subroutine block_post_process(this, iblk)
Post parse block handling.
subroutine load_integer1d_type(parser, idt, memoryPath, mshape, export, iout)
load type 1d integer
subroutine finalize(this)
finalize
subroutine load_double_type(parser, idt, memoryPath, iout)
load type double
subroutine parse_structarray_block(this, iblk)
parse a structured array record into memory manager
subroutine load(this, parser, mf6_input, 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_memorylist(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 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_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 for structured array