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)
91 if (ts6_size > 0)
then
93 call mem_setptr(ts_fnames,
'TS6_FILENAME', this%mf6_input%mempath)
94 do n = 1,
size(ts_fnames)
96 call this%tsmanager%add_tsfile(fname,
getunit())
101 call this%bound_context%create(mf6_input, this%readasarrays)
104 call this%bound_context%bound_params(this%param_names, this%nparam, &
105 this%input_name, create=.false.)
107 call this%create_structarray()
110 call this%bound_context%allocate_arrays()
116 call this%tsmanager%tsmanager_df()
122 call this%tsmanager%ad()
128 call this%tsmanager%reset(this%mf6_input%subcomponent_name)
138 integer(I4B) :: ibinary
139 integer(I4B) :: oc_inunit
140 logical(LGP) :: ts_active
147 this%mf6_input%subcomponent_name, this%iout)
149 if (ibinary == 1)
then
150 this%bound_context%nbound = &
151 this%structarray%read_from_binary(oc_inunit, this%iout)
152 call parser%terminateblock()
155 ts_active = (this%ts_active /= 0)
156 this%bound_context%nbound = &
157 this%structarray%read_from_parser(parser, ts_active, this%iout)
161 if (this%ts_active /= 0)
then
162 call this%ts_update(this%structarray)
167 this%mf6_input%subcomponent_name, this%iout)
174 call this%tsmanager%da()
175 deallocate (this%tsmanager)
176 nullify (this%tsmanager)
180 call this%bound_context%destroy()
190 real(DP),
pointer :: bndElem
193 character(len=LENBOUNDNAME) :: boundname
198 bndelem => structvector%dbl1d(ts_strloc%row)
202 ts_strloc%structarray_col, bndelem, &
203 this%mf6_input%subcomponent_name, &
204 'BND', this%tsmanager, &
205 this%bound_context%iprpak, tslinkbnd)
206 if (
associated(tslinkbnd))
then
208 tslinkbnd%Text = structvector%idt%mf6varname
210 if (this%bound_context%inamedbound > 0)
then
211 sv_bound => this%structarray%get(this%iboundname)
212 boundname = sv_bound%charstr1d(ts_strloc%row)
213 tslinkbnd%BndName = boundname
225 real(DP),
pointer :: bndElem
228 character(len=LENBOUNDNAME) :: boundname
233 bndelem => structvector%dbl2d(ts_strloc%col, ts_strloc%row)
237 ts_strloc%structarray_col, bndelem, &
238 this%mf6_input%subcomponent_name, &
239 'AUX', this%tsmanager, &
240 this%bound_context%iprpak, tslinkaux)
241 if (
associated(tslinkaux))
then
243 tslinkaux%Text = this%bound_context%auxname_cst(ts_strloc%col)
245 if (this%bound_context%inamedbound > 0)
then
246 sv_bound => this%structarray%get(this%iboundname)
247 boundname = sv_bound%charstr1d(ts_strloc%row)
248 tslinkaux%BndName = boundname
263 do m = 1, structarray%count()
264 sv => structarray%get(m)
265 if (sv%idt%timeseries)
then
266 do n = 1, sv%ts_strlocs%count()
267 ts_strloc => sv%get_ts_strloc(n)
268 call this%ts_link(sv, ts_strloc)
285 select case (structvector%memtype)
287 call this%ts_link_bnd(structvector, ts_strloc)
289 call this%ts_link_aux(structvector, ts_strloc)
303 this%bound_context%maxbound, 0, &
304 this%mf6_input%mempath, &
305 this%mf6_input%component_mempath)
307 do icol = 1, this%nparam
309 this%mf6_input%component_type, &
310 this%mf6_input%subcomponent_type, &
312 this%param_names(icol), this%input_name)
314 call this%structarray%mem_create_vector(icol, idt)
316 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