36 integer(I4B) :: ts_active
37 integer(I4B) :: iboundname
54 subroutine bndlist_init(this, mf6_input, component_name, component_input_name, &
55 input_name, iperblock, parser, iout)
62 character(len=*),
intent(in) :: component_name
63 character(len=*),
intent(in) :: component_input_name
64 character(len=*),
intent(in) :: input_name
65 integer(I4B),
intent(in) :: iperblock
67 integer(I4B),
intent(in) :: iout
70 contiguous :: ts_fnames
71 character(len=LINELENGTH) :: fname
72 integer(I4B) :: ts6_size, n
75 call this%DynamicPkgLoadType%init(mf6_input, component_name, &
76 component_input_name, input_name, &
83 call loader%load(parser, mf6_input, this%nc_vars, this%input_name, iout)
86 allocate (this%tsmanager)
90 call get_isize(
'TS6_FILENAME', this%mf6_input%mempath, ts6_size)
92 if (ts6_size > 0)
then
95 call mem_setptr(ts_fnames,
'TS6_FILENAME', this%mf6_input%mempath)
97 do n = 1,
size(ts_fnames)
99 call this%tsmanager%add_tsfile(fname,
getunit())
105 call this%bound_context%create(mf6_input, this%readasarrays)
108 call this%bound_context%bound_params(this%param_names, this%nparam, &
109 this%input_name, create=.false.)
112 call this%create_structarray()
115 call this%bound_context%allocate_arrays()
124 call this%tsmanager%tsmanager_df()
132 call this%tsmanager%ad()
140 call this%tsmanager%reset(this%mf6_input%subcomponent_name)
153 integer(I4B) :: ibinary
154 integer(I4B) :: oc_inunit
155 logical(LGP) :: ts_active
163 this%mf6_input%subcomponent_name, this%iout)
165 if (ibinary == 1)
then
167 this%bound_context%nbound = &
168 this%structarray%read_from_binary(oc_inunit, this%iout)
170 call parser%terminateblock()
176 ts_active = (this%ts_active /= 0)
178 this%bound_context%nbound = &
179 this%structarray%read_from_parser(parser, ts_active, this%iout)
183 if (this%ts_active /= 0)
then
184 call this%ts_update(this%structarray)
189 this%mf6_input%subcomponent_name, this%iout)
196 deallocate (this%tsmanager)
201 call this%bound_context%destroy()
214 real(DP),
pointer :: bndElem
217 character(len=LENBOUNDNAME) :: boundname
222 bndelem => structvector%dbl1d(ts_strloc%row)
226 ts_strloc%structarray_col, bndelem, &
227 this%mf6_input%subcomponent_name, &
228 'BND', this%tsmanager, &
229 this%bound_context%iprpak, tslinkbnd)
231 if (
associated(tslinkbnd))
then
234 tslinkbnd%Text = structvector%idt%mf6varname
237 if (this%bound_context%inamedbound > 0)
then
238 sv_bound => this%structarray%get(this%iboundname)
239 boundname = sv_bound%charstr1d(ts_strloc%row)
240 tslinkbnd%BndName = boundname
255 real(DP),
pointer :: bndElem
258 character(len=LENBOUNDNAME) :: boundname
263 bndelem => structvector%dbl2d(ts_strloc%col, ts_strloc%row)
267 ts_strloc%structarray_col, bndelem, &
268 this%mf6_input%subcomponent_name, &
269 'AUX', this%tsmanager, &
270 this%bound_context%iprpak, tslinkaux)
272 if (
associated(tslinkaux))
then
275 tslinkaux%Text = this%bound_context%auxname_cst(ts_strloc%col)
278 if (this%bound_context%inamedbound > 0)
then
279 sv_bound => this%structarray%get(this%iboundname)
280 boundname = sv_bound%charstr1d(ts_strloc%row)
281 tslinkaux%BndName = boundname
300 do m = 1, structarray%count()
302 sv => structarray%get(m)
304 if (sv%idt%timeseries)
then
306 do n = 1, sv%ts_strlocs%count()
307 ts_strloc => sv%get_ts_strloc(n)
308 call this%ts_link(sv, ts_strloc)
330 select case (structvector%memtype)
333 call this%ts_link_bnd(structvector, ts_strloc)
337 call this%ts_link_aux(structvector, ts_strloc)
355 this%bound_context%maxbound, 0, &
356 this%mf6_input%mempath, &
357 this%mf6_input%component_mempath)
360 do icol = 1, this%nparam
363 this%mf6_input%component_type, &
364 this%mf6_input%subcomponent_type, &
366 this%param_names(icol), this%input_name)
369 call this%structarray%mem_create_vector(icol, idt)
372 if (idt%mf6varname ==
'BOUNDNAME') this%iboundname = icol
This module contains block parser methods.
This module contains the BoundInputContextModule.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
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.
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
This module defines variable data types.
This module contains the LoadMf6FileModule.
integer(i4b) function, public read_control_record(parser, oc_inunit, iout)
subroutine, public get_isize(name, mem_path, isize)
@ brief Get the number of elements for this variable
This module contains simulation methods.
integer(i4b) function, public count_errors()
Return number of errors.
subroutine, public store_error_filename(filename, terminate)
Store the erroring file name.
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 module contains the StructVectorModule.
subroutine, public tsmanager_cr(this, iout, removeTsLinksOnCompletion, extendTsToEndOfSimulation)
Create the tsmanager.
subroutine, public read_value_or_time_series(textInput, ii, jj, bndElem, pkgName, auxOrBnd, tsManager, iprpak, tsLink)
Call this subroutine if the time-series link is available or needed.
derived type for boundary package input context
This class is used to store a single deferred-length character string. It was designed to work in an ...
Static parser based input loader.
type for structured array
derived type for generic vector
derived type which describes time series string field