32 character(len=LENCOMPONENTNAME) :: component_name
33 character(len=LINELENGTH) :: component_input_name
34 character(len=LINELENGTH) :: input_name
35 integer(I4B) :: iperblock
58 character(len=LENCOMPONENTNAME) :: component_name
59 character(len=LINELENGTH) :: component_input_name
60 character(len=LINELENGTH) :: input_name
61 character(len=LINELENGTH),
dimension(:),
allocatable :: param_names
62 logical(LGP) :: readasarrays
63 integer(I4B) :: iperblock
65 integer(I4B) :: nparam
86 function load_if(this, iout)
result(dynamic_loader)
89 integer(I4B),
intent(in) :: iout
105 character(len=LENMODELNAME) :: modelname
106 character(len=LINELENGTH) :: modelfname
125 subroutine static_init(this, mf6_input, component_name, component_input_name, &
129 character(len=*),
intent(in) :: component_name
130 character(len=*),
intent(in) :: component_input_name
131 character(len=*),
intent(in) :: input_name
132 integer(I4B) :: iblock
134 this%mf6_input = mf6_input
135 this%component_name = component_name
136 this%component_input_name = component_input_name
137 this%input_name = input_name
141 do iblock = 1,
size(mf6_input%block_dfns)
143 if (mf6_input%block_dfns(iblock)%blockname ==
'PERIOD')
then
144 this%iperblock = iblock
164 subroutine dynamic_init(this, mf6_input, component_name, component_input_name, &
165 input_name, iperblock, iout)
171 character(len=*),
intent(in) :: component_name
172 character(len=*),
intent(in) :: component_input_name
173 character(len=*),
intent(in) :: input_name
174 integer(I4B),
intent(in) :: iperblock
175 integer(I4B),
intent(in) :: iout
178 this%mf6_input = mf6_input
179 this%component_name = component_name
180 this%component_input_name = component_input_name
181 this%input_name = input_name
182 this%iperblock = iperblock
188 if (this%iperblock == 0)
then
190 'Programming error. (IDM) PERIOD block not found in '&
191 &
'dynamic package input block dfns: ', &
192 trim(mf6_input%subcomponent_name)
198 this%readasarrays = (.not. mf6_input%block_dfns(iperblock)%aggregate)
237 this%mf6_input%subcomponent_name, &
248 character(len=*),
intent(in) :: modelname
249 character(len=*),
intent(in) :: modelfname
250 integer(I4B),
intent(in) :: iout
252 this%modelname = modelname
253 this%modelfname = modelfname
265 class(*),
pointer :: obj
268 call this%pkglist%add(obj)
278 integer(I4B),
intent(in) :: idx
280 class(*),
pointer :: obj
283 obj => this%pkglist%GetItem(idx)
285 if (
associated(obj))
then
306 do n = 1, this%pkglist%Count()
307 dynamic_pkg => this%get(n)
308 call dynamic_pkg%rp()
324 do n = 1, this%pkglist%Count()
325 dynamic_pkg => this%get(n)
326 call dynamic_pkg%df()
340 do n = 1, this%pkglist%Count()
341 dynamic_pkg => this%get(n)
342 call dynamic_pkg%ad()
355 size = this%pkglist%Count()
368 do n = 1, this%pkglist%Count()
369 dynamic_pkg => this%get(n)
370 call dynamic_pkg%destroy()
371 deallocate (dynamic_pkg)
372 nullify (dynamic_pkg)
375 call this%pkglist%Clear()
385 type(
listtype),
intent(inout) :: list
388 class(*),
pointer :: obj
402 type(
listtype),
intent(inout) :: list
403 integer(I4B),
intent(in) :: idx
406 class(*),
pointer :: obj
412 obj => list%GetItem(idx)
413 if (
associated(obj))
then
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lencomponentname
maximum length of a component name
integer(i4b), parameter lenmodelname
maximum length of the model name
This module contains the Input Data Model Logger Module.
subroutine, public idm_log_period_header(component, iout)
@ brief log a dynamic header message
subroutine, public idm_log_period_close(iout)
@ brief log the period closing message
This module defines variable data types.
subroutine, public memorylist_remove(component, subcomponent, context)
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
subroutine, public store_error_filename(filename, terminate)
Store the erroring file name.
This module contains simulation variables.
character(len=maxcharlen) errmsg
error message string
character(len=linelength) idm_context
A generic heterogeneous doubly-linked list.