231 class(KeystringLoadType),
intent(inout) :: this
232 type(InputParamDefinitionType),
pointer :: idt, pidt
233 character(len=LINELENGTH),
allocatable :: rec_cols(:)
234 character(len=LINELENGTH) :: kwname, first_col
235 integer(I4B) :: icol, nrow_prealloc, jparam, nrec_col, nsub
239 if (
associated(this%ctx%maxbound) .and. this%ctx%maxbound > 0)
then
240 nrow_prealloc = this%ctx%maxbound
245 this%structarray => constructstructarray(this%mf6_input, this%nparam, &
247 this%mf6_input%mempath, &
248 this%mf6_input%component_mempath)
249 do icol = 1, this%nparam
251 this%mf6_input%component_type, &
252 this%mf6_input%subcomponent_type, &
254 this%param_names(icol), this%input_name)
255 call this%structarray%mem_create_vector(icol, idt)
260 if (trim(idt%datatype) ==
'KEYWORD' .and. icol > this%nleading)
then
261 kwname = trim(idt%tagname)
264 do jparam = 1,
size(this%mf6_input%param_dfns)
265 pidt => this%mf6_input%param_dfns(jparam)
266 if (pidt%blockname /=
'PERIOD') cycle
267 if (pidt%datatype(1:6) /=
'RECORD') cycle
269 if (nrec_col >= 1)
then
270 first_col = trim(rec_cols(1))
272 if (trim(first_col) == trim(kwname))
then
274 if (
allocated(rec_cols))
deallocate (rec_cols)
278 if (
allocated(rec_cols))
deallocate (rec_cols)
280 this%structarray%struct_vectors(icol)%nsubmembers = nsub
This module contains the DefinitionSelectModule.
subroutine, public idt_parse_rectype(idt, cols, ncol)
allocate and set RECARRAY, KEYSTRING or RECORD param list
type(inputparamdefinitiontype) function, pointer, public get_param_definition_type(input_definition_types, component_type, subcomponent_type, blockname, tagname, filename, found)
Return parameter definition.