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)
92 character(len=*),
intent(in) :: filename
93 integer(I4B),
intent(in) :: iout
98 call this%init(parser, mf6_input, filename, iout)
100 this%nc_vars => nc_vars
103 do iblk = 1,
size(this%mf6_input%block_dfns)
106 if (this%mf6_input%block_dfns(iblk)%blockname ==
'PERIOD')
exit
109 call this%load_block(iblk)
122 subroutine init(this, parser, mf6_input, filename, iout)
129 character(len=*),
intent(in) :: filename
130 integer(I4B),
intent(in) :: iout
132 integer(I4B) :: isize
134 this%parser => parser
135 this%mf6_input = mf6_input
136 this%filename = filename
137 this%ts_active = .false.
138 this%export = .false.
139 this%readasarrays = .false.
144 call get_isize(
'MODEL_SHAPE', mf6_input%component_mempath, isize)
147 call mem_setptr(this%mshape,
'MODEL_SHAPE', mf6_input%component_mempath)
152 this%mf6_input%subcomponent_name, this%iout)
168 integer(I4B),
intent(in) :: iblk
172 if (
associated(this%structarray))
then
177 allocate (this%block_tags(0))
180 call this%parse_block(iblk, .false.)
183 call this%block_post_process(iblk)
185 deallocate (this%block_tags)
201 if (
associated(this%structarray))
then
208 this%mf6_input%subcomponent_name, this%iout)
221 integer(I4B),
intent(in) :: iblk
224 integer(I4B) :: iparam
225 integer(I4B),
pointer :: intptr
228 do iparam = 1,
size(this%block_tags)
229 select case (this%mf6_input%block_dfns(iblk)%blockname)
231 if (this%block_tags(iparam) ==
'AUXILIARY')
then
233 else if (this%block_tags(iparam) ==
'BOUNDNAMES')
then
235 else if (this%block_tags(iparam) ==
'READASARRAYS')
then
236 this%readasarrays = .true.
237 else if (this%block_tags(iparam) ==
'TS6')
then
238 this%ts_active = .true.
239 else if (this%block_tags(iparam) ==
'EXPORT_ARRAY_ASCII')
then
247 select case (this%mf6_input%block_dfns(iblk)%blockname)
250 do iparam = 1,
size(this%mf6_input%param_dfns)
251 idt => this%mf6_input%param_dfns(iparam)
253 if (idt%blockname ==
'OPTIONS' .and. &
254 idt%tagname ==
'AUXILIARY')
then
255 if (this%iauxiliary == 0)
then
256 call mem_allocate(intptr,
'NAUX', this%mf6_input%mempath)
264 if (this%mf6_input%pkgtype(1:3) ==
'DIS')
then
266 this%mf6_input%component_mempath, &
267 this%mf6_input%mempath, this%mshape)
282 integer(I4B),
intent(in) :: iblk
283 logical(LGP),
intent(in) :: recursive_call
285 logical(LGP) :: isblockfound
286 logical(LGP) :: endofblock
287 logical(LGP) :: supportopenclose
289 logical(LGP) :: found, required
293 if (this%mf6_input%pkgtype ==
'DISU6' .or. &
294 this%mf6_input%pkgtype ==
'DISV1D6' .or. &
295 this%mf6_input%pkgtype ==
'DISV2D6')
then
296 if (this%mf6_input%block_dfns(iblk)%blockname ==
'VERTICES' .or. &
297 this%mf6_input%block_dfns(iblk)%blockname ==
'CELL2D')
then
300 if (.not. found)
return
301 if (mt%intsclr == 0)
return
306 supportopenclose = (this%mf6_input%block_dfns(iblk)%blockname /=
'GRIDDATA')
309 required = this%mf6_input%block_dfns(iblk)%required .and. .not. recursive_call
310 call this%parser%GetBlock(this%mf6_input%block_dfns(iblk)%blockname, &
311 isblockfound, ierr, &
312 supportopenclose=supportopenclose, &
313 blockrequired=required)
316 if (isblockfound)
then
317 if (this%mf6_input%block_dfns(iblk)%aggregate)
then
320 call this%parse_structarray_block(iblk)
325 call this%parser%GetNextLine(endofblock)
329 call this%parse_tag(iblk, .false.)
336 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
337 if (isblockfound)
then
338 call this%parse_block(iblk, .true.)
347 integer(I4B),
intent(in) :: iblk
348 character(len=*),
intent(in) :: pkgtype
349 character(len=*),
intent(in) :: which
350 character(len=*),
intent(in) :: tag
357 this%mf6_input%component_type, &
358 this%mf6_input%subcomponent_type, &
359 this%mf6_input%block_dfns(iblk)%blockname, &
363 call load_io_tag(this%parser, idt, this%mf6_input%mempath, which, this%iout)
371 integer(I4B),
intent(in) :: iblk
372 character(len=LINELENGTH),
intent(in) :: tag
375 character(len=40),
dimension(:),
allocatable :: words
376 integer(I4B) :: nwords
377 character(len=LINELENGTH) :: io_tag
378 logical(LGP) :: found
384 if (idt%in_record)
then
388 this%mf6_input%component_type, &
389 this%mf6_input%subcomponent_type, &
393 if (nwords == 4)
then
396 if (words(3) ==
'FILEIN' .or. words(3) ==
'FILEOUT')
then
399 call this%parser%GetStringCaps(io_tag)
402 if (io_tag == words(3))
then
403 call this%parse_io_tag(iblk, words(2), words(3), words(4))
406 errmsg =
'Expected "'//trim(words(3))//
'" following keyword "'// &
407 trim(tag)//
'" but instead found "'//trim(io_tag)//
'"'
409 call this%parser%StoreErrorUnit()
416 if (
allocated(words))
deallocate (words)
419 if (.not. found)
then
424 if (idt%tagname(1:4) ==
'DEV_' .and. &
425 this%mf6_input%block_dfns(iblk)%blockname ==
'OPTIONS')
then
426 call this%parser%DevOpt()
438 recursive subroutine parse_tag(this, iblk, recursive_call)
443 integer(I4B),
intent(in) :: iblk
444 logical(LGP),
intent(in) :: recursive_call
446 character(len=LINELENGTH) :: tag
450 call this%parser%GetStringCaps(tag)
451 if (recursive_call)
then
460 this%mf6_input%component_type, &
461 this%mf6_input%subcomponent_type, &
462 this%mf6_input%block_dfns(iblk)%blockname, &
466 select case (idt%datatype)
468 call this%parse_keyword_tag(iblk, tag, idt)
470 if (idt%shape ==
'NAUX')
then
480 this%export, this%nc_vars, this%filename, &
484 this%export, this%nc_vars, this%filename, &
488 this%export, this%nc_vars, this%filename, &
494 this%export, this%nc_vars, this%filename, this%iout)
497 this%export, this%nc_vars, this%filename, this%iout)
500 this%export, this%nc_vars, this%filename, this%iout)
502 write (
errmsg,
'(a,a)')
'Failure reading data for tag: ', trim(tag)
504 call this%parser%StoreErrorUnit()
508 if (idt%in_record)
then
511 call this%parse_tag(iblk, .true.)
516 this%block_tags(
size(this%block_tags)) = trim(idt%tagname)
523 integer(I4B),
intent(in) :: iblk
526 character(len=LENVARNAME) :: varname
528 character(len=3) :: block_suffix =
'NUM'
531 ilen = len_trim(this%mf6_input%block_dfns(iblk)%blockname)
533 if (ilen > (
lenvarname - len(block_suffix)))
then
535 this%mf6_input%block_dfns(iblk)% &
536 blockname(1:(
lenvarname - len(block_suffix)))//block_suffix
538 varname = trim(this%mf6_input%block_dfns(iblk)%blockname)//block_suffix
541 idt%component_type = trim(this%mf6_input%component_type)
542 idt%subcomponent_type = trim(this%mf6_input%subcomponent_type)
543 idt%blockname = trim(this%mf6_input%block_dfns(iblk)%blockname)
544 idt%tagname = varname
545 idt%mf6varname = varname
546 idt%datatype =
'INTEGER'
563 integer(I4B),
intent(in) :: iblk
568 integer(I4B) :: blocknum
569 integer(I4B),
pointer :: nrow
570 integer(I4B) :: nrows, nrowsread
571 integer(I4B) :: ibinary, oc_inunit
572 integer(I4B) :: icol, iparam
576 call block_params%init(this%mf6_input, &
577 this%mf6_input%block_dfns(iblk)%blockname, &
578 this%readasarrays, this%iauxiliary, this%inamedbound)
583 this%mf6_input%component_type, &
584 this%mf6_input%subcomponent_type, &
585 this%mf6_input%block_dfns(iblk)%blockname)
588 if (this%mf6_input%block_dfns(iblk)%block_variable)
then
589 blocknum = this%parser%GetInteger()
595 ncol = block_params%nparam
598 if (blocknum > 0) ncol = ncol + 1
601 if (idt%shape /=
'')
then
602 call mem_setptr(nrow, idt%shape, this%mf6_input%mempath)
610 blocknum, this%mf6_input%mempath, &
611 this%mf6_input%component_mempath)
617 if (blocknum > 0)
then
620 blockvar_idt = this%block_index_dfn(iblk)
623 call this%structarray%mem_create_vector(icol, idt)
640 this%mf6_input%component_type, &
641 this%mf6_input%subcomponent_type, &
642 this%mf6_input%block_dfns(iblk)%blockname, &
643 block_params%params(iparam), this%filename)
646 call this%structarray%mem_create_vector(icol, idt)
652 if (ibinary == 1)
then
655 nrowsread = this%structarray%read_from_binary(oc_inunit, this%iout)
657 call this%parser%terminateblock()
664 nrowsread = this%structarray%read_from_parser(this%parser, this%ts_active, &
669 call block_params%destroy()
677 character(len=*),
intent(in) :: memoryPath
678 integer(I4B),
intent(in) :: iout
679 integer(I4B),
pointer :: intvar
682 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
692 character(len=*),
intent(in) :: memoryPath
693 integer(I4B),
intent(in) :: iout
694 character(len=LINELENGTH),
pointer :: cstr
695 character(len=LENBIGLINE),
pointer :: bigcstr
697 select case (idt%shape)
700 call mem_allocate(bigcstr, ilen, idt%mf6varname, memorypath)
701 call parser%GetString(bigcstr, (.not. idt%preserve_case))
702 call idm_log_var(bigcstr, idt%tagname, memorypath, iout)
705 call mem_allocate(cstr, ilen, idt%mf6varname, memorypath)
706 call parser%GetString(cstr, (.not. idt%preserve_case))
707 call idm_log_var(cstr, idt%tagname, memorypath, iout)
720 character(len=*),
intent(in) :: memoryPath
721 character(len=*),
intent(in) :: which
722 integer(I4B),
intent(in) :: iout
723 character(len=LINELENGTH) :: cstr
725 integer(I4B) :: ilen, isize, idx
727 if (which ==
'FILEIN')
then
728 call get_isize(idt%mf6varname, memorypath, isize)
730 call mem_allocate(charstr1d, ilen, 1, idt%mf6varname, memorypath)
733 call mem_setptr(charstr1d, idt%mf6varname, memorypath)
738 call parser%GetString(cstr, (.not. idt%preserve_case))
739 charstr1d(idx) = cstr
740 else if (which ==
'FILEOUT')
then
755 character(len=*),
intent(in) :: memoryPath
756 integer(I4B),
intent(in) :: iout
757 character(len=:),
allocatable :: line
758 character(len=LENAUXNAME),
dimension(:),
allocatable :: caux
760 integer(I4B) :: istart
761 integer(I4B) :: istop
763 character(len=LENPACKAGENAME) :: text =
''
764 integer(I4B),
pointer :: intvar
766 pointer,
contiguous :: acharstr1d
769 call parser%GetRemainingLine(line)
771 call urdaux(intvar, parser%iuactive, iout, lloc, &
772 istart, istop, caux, line, text)
775 acharstr1d(i) = caux(i)
787 character(len=*),
intent(in) :: memoryPath
788 integer(I4B),
intent(in) :: iout
789 integer(I4B),
pointer :: intvar
791 intvar = parser%GetInteger()
792 call idm_log_var(intvar, idt%tagname, memorypath, idt%datatype, iout)
799 nc_vars, input_fname, iout)
805 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
806 logical(LGP),
intent(in) :: export
808 character(len=*),
intent(in) :: input_fname
809 integer(I4B),
intent(in) :: iout
810 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d
812 integer(I4B) :: nvals
813 integer(I4B),
dimension(:),
allocatable :: array_shape
814 integer(I4B),
dimension(:),
allocatable :: layer_shape
815 character(len=LINELENGTH) :: keyword
819 if (idt%shape ==
'NODES')
then
820 nvals = product(mshape)
823 nvals = array_shape(1)
827 call mem_allocate(int1d, nvals, idt%mf6varname, mf6_input%mempath)
831 call parser%GetStringCaps(keyword)
834 if (keyword ==
'NETCDF')
then
837 else if (keyword ==
'LAYERED' .and. idt%layered)
then
841 call read_int1d(parser, int1d, idt%mf6varname)
845 call idm_log_var(int1d, idt%tagname, mf6_input%mempath, iout)
849 if (idt%blockname ==
'GRIDDATA')
then
850 call idm_export(int1d, idt%tagname, mf6_input%mempath, idt%shape, iout)
860 nc_vars, input_fname, iout)
866 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
867 logical(LGP),
intent(in) :: export
869 character(len=*),
intent(in) :: input_fname
870 integer(I4B),
intent(in) :: iout
871 integer(I4B),
dimension(:, :),
pointer,
contiguous :: int2d
873 integer(I4B) :: nsize1, nsize2
874 integer(I4B),
dimension(:),
allocatable :: array_shape
875 integer(I4B),
dimension(:),
allocatable :: layer_shape
876 character(len=LINELENGTH) :: keyword
881 nsize1 = array_shape(1)
882 nsize2 = array_shape(2)
885 call mem_allocate(int2d, nsize1, nsize2, idt%mf6varname, mf6_input%mempath)
889 call parser%GetStringCaps(keyword)
892 if (keyword ==
'NETCDF')
then
895 else if (keyword ==
'LAYERED' .and. idt%layered)
then
899 call read_int2d(parser, int2d, idt%mf6varname)
903 call idm_log_var(int2d, idt%tagname, mf6_input%mempath, iout)
907 if (idt%blockname ==
'GRIDDATA')
then
908 call idm_export(int2d, idt%tagname, mf6_input%mempath, idt%shape, iout)
918 nc_vars, input_fname, iout)
924 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
925 logical(LGP),
intent(in) :: export
927 character(len=*),
intent(in) :: input_fname
928 integer(I4B),
intent(in) :: iout
929 integer(I4B),
dimension(:, :, :),
pointer,
contiguous :: int3d
931 integer(I4B) :: nsize1, nsize2, nsize3
932 integer(I4B),
dimension(:),
allocatable :: array_shape
933 integer(I4B),
dimension(:),
allocatable :: layer_shape
934 integer(I4B),
dimension(:),
pointer,
contiguous :: int1d_ptr
935 character(len=LINELENGTH) :: keyword
940 nsize1 = array_shape(1)
941 nsize2 = array_shape(2)
942 nsize3 = array_shape(3)
945 call mem_allocate(int3d, nsize1, nsize2, nsize3, idt%mf6varname, &
950 call parser%GetStringCaps(keyword)
953 if (keyword ==
'NETCDF')
then
956 else if (keyword ==
'LAYERED' .and. idt%layered)
then
961 int1d_ptr(1:nsize1 * nsize2 * nsize3) => int3d(:, :, :)
962 call read_int1d(parser, int1d_ptr, idt%mf6varname)
966 call idm_log_var(int3d, idt%tagname, mf6_input%mempath, iout)
970 if (idt%blockname ==
'GRIDDATA')
then
971 call idm_export(int3d, idt%tagname, mf6_input%mempath, idt%shape, iout)
983 character(len=*),
intent(in) :: memoryPath
984 integer(I4B),
intent(in) :: iout
985 real(DP),
pointer :: dblvar
987 dblvar = parser%GetDouble()
988 call idm_log_var(dblvar, idt%tagname, memorypath, iout)
995 nc_vars, input_fname, iout)
1001 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1002 logical(LGP),
intent(in) :: export
1004 character(len=*),
intent(in) :: input_fname
1005 integer(I4B),
intent(in) :: iout
1006 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d
1007 integer(I4B) :: nlay
1008 integer(I4B) :: nvals
1009 integer(I4B),
dimension(:),
allocatable :: array_shape
1010 integer(I4B),
dimension(:),
allocatable :: layer_shape
1011 character(len=LINELENGTH) :: keyword
1014 if (idt%shape ==
'NODES')
then
1015 nvals = product(mshape)
1018 nvals = array_shape(1)
1022 call mem_allocate(dbl1d, nvals, idt%mf6varname, mf6_input%mempath)
1026 call parser%GetStringCaps(keyword)
1029 if (keyword ==
'NETCDF')
then
1032 else if (keyword ==
'LAYERED' .and. idt%layered)
then
1036 call read_dbl1d(parser, dbl1d, idt%mf6varname)
1040 call idm_log_var(dbl1d, idt%tagname, mf6_input%mempath, iout)
1044 if (idt%blockname ==
'GRIDDATA')
then
1045 call idm_export(dbl1d, idt%tagname, mf6_input%mempath, idt%shape, iout)
1055 nc_vars, input_fname, iout)
1061 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1062 logical(LGP),
intent(in) :: export
1064 character(len=*),
intent(in) :: input_fname
1065 integer(I4B),
intent(in) :: iout
1066 real(DP),
dimension(:, :),
pointer,
contiguous :: dbl2d
1067 integer(I4B) :: nlay
1068 integer(I4B) :: nsize1, nsize2
1069 integer(I4B),
dimension(:),
allocatable :: array_shape
1070 integer(I4B),
dimension(:),
allocatable :: layer_shape
1071 character(len=LINELENGTH) :: keyword
1076 nsize1 = array_shape(1)
1077 nsize2 = array_shape(2)
1080 call mem_allocate(dbl2d, nsize1, nsize2, idt%mf6varname, mf6_input%mempath)
1084 call parser%GetStringCaps(keyword)
1087 if (keyword ==
'NETCDF')
then
1090 else if (keyword ==
'LAYERED' .and. idt%layered)
then
1094 call read_dbl2d(parser, dbl2d, idt%mf6varname)
1098 call idm_log_var(dbl2d, idt%tagname, mf6_input%mempath, iout)
1102 if (idt%blockname ==
'GRIDDATA')
then
1103 call idm_export(dbl2d, idt%tagname, mf6_input%mempath, idt%shape, iout)
1113 nc_vars, input_fname, iout)
1119 integer(I4B),
dimension(:),
contiguous,
pointer,
intent(in) :: mshape
1120 logical(LGP),
intent(in) :: export
1122 character(len=*),
intent(in) :: input_fname
1123 integer(I4B),
intent(in) :: iout
1124 real(DP),
dimension(:, :, :),
pointer,
contiguous :: dbl3d
1125 integer(I4B) :: nlay
1126 integer(I4B) :: nsize1, nsize2, nsize3
1127 integer(I4B),
dimension(:),
allocatable :: array_shape
1128 integer(I4B),
dimension(:),
allocatable :: layer_shape
1129 real(DP),
dimension(:),
pointer,
contiguous :: dbl1d_ptr
1130 character(len=LINELENGTH) :: keyword
1135 nsize1 = array_shape(1)
1136 nsize2 = array_shape(2)
1137 nsize3 = array_shape(3)
1140 call mem_allocate(dbl3d, nsize1, nsize2, nsize3, idt%mf6varname, &
1145 call parser%GetStringCaps(keyword)
1148 if (keyword ==
'NETCDF')
then
1151 else if (keyword ==
'LAYERED' .and. idt%layered)
then
1156 dbl1d_ptr(1:nsize1 * nsize2 * nsize3) => dbl3d(:, :, :)
1157 call read_dbl1d(parser, dbl1d_ptr, idt%mf6varname)
1161 call idm_log_var(dbl3d, idt%tagname, mf6_input%mempath, iout)
1165 if (idt%blockname ==
'GRIDDATA')
then
1166 call idm_export(dbl3d, idt%tagname, mf6_input%mempath, idt%shape, iout)
1183 integer(I4B),
intent(inout) :: oc_inunit
1184 integer(I4B),
intent(in) :: iout
1186 integer(I4B) :: ibinary
1188 integer(I4B) :: lloc, istart, istop, idum, inunit, itmp, ierr
1189 integer(I4B) :: nunopn = 99
1190 character(len=:),
allocatable :: line
1191 character(len=LINELENGTH) :: fname
1195 character(len=*),
parameter :: fmtocne = &
1196 &
"('Specified OPEN/CLOSE file ',(A),' does not exist')"
1197 character(len=*),
parameter :: fmtobf = &
1198 &
"(1X,/1X,'OPENING BINARY FILE ON UNIT ',I0,':',/1X,A)"
1204 inunit = parser%getunit()
1208 call parser%line_reader%rdcom(inunit, iout, line, ierr)
1209 call urword(line, lloc, istart, istop, 1, idum, r, iout, inunit)
1211 if (line(istart:istop) ==
'OPEN/CLOSE')
then
1214 call urword(line, lloc, istart, istop, 0, idum, r, &
1217 fname = line(istart:istop)
1220 inquire (file=fname, exist=exists)
1222 if (.not. exists)
then
1223 write (
errmsg, fmtocne) line(istart:istop)
1225 call store_error(
'Specified OPEN/CLOSE file does not exist')
1230 call urword(line, lloc, istart, istop, 1, idum, r, &
1233 if (line(istart:istop) ==
'(BINARY)') ibinary = 1
1236 if (ibinary == 1)
then
1242 write (iout, fmtobf) oc_inunit, trim(adjustl(fname))
1245 call openfile(oc_inunit, itmp, fname,
'OPEN/CLOSE', &
1250 if (ibinary == 0)
then
1251 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