MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmGwtDfnSelector.f90
Go to the documentation of this file.
1 ! ** Do Not Modify! MODFLOW 6 system generated file. **
3 
4  use constantsmodule, only: lenvarname
5  use simmodule, only: store_error
23 
24  implicit none
25  private
26  public :: gwt_param_definitions
28  public :: gwt_block_definitions
29  public :: gwt_idm_multi_package
30  public :: gwt_idm_is_advanced
31  public :: gwt_idm_subpackages
32  public :: gwt_idm_integrated
33 
34 contains
35 
36  subroutine set_param_pointer(input_dfn, input_dfn_target)
37  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
38  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
39  input_dfn => input_dfn_target
40  end subroutine set_param_pointer
41 
42  subroutine set_block_pointer(input_dfn, input_dfn_target)
43  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
44  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
45  input_dfn => input_dfn_target
46  end subroutine set_block_pointer
47 
48  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
49  character(len=16), dimension(:), pointer :: subpkg_list
50  character(len=16), dimension(:), target :: subpkg_list_target
51  subpkg_list => subpkg_list_target
52  end subroutine set_subpkg_pointer
53 
54  function gwt_param_definitions(subcomponent) result(input_definition)
55  character(len=*), intent(in) :: subcomponent
56  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
57  nullify (input_definition)
58  select case (subcomponent)
59  case ('NAM')
60  call set_param_pointer(input_definition, gwt_nam_param_definitions)
61  case ('ADV')
62  call set_param_pointer(input_definition, gwt_adv_param_definitions)
63  case ('API')
64  call set_param_pointer(input_definition, gwt_api_param_definitions)
65  case ('DIS')
66  call set_param_pointer(input_definition, gwt_dis_param_definitions)
67  case ('DISU')
68  call set_param_pointer(input_definition, gwt_disu_param_definitions)
69  case ('DISV')
70  call set_param_pointer(input_definition, gwt_disv_param_definitions)
71  case ('DSP')
72  call set_param_pointer(input_definition, gwt_dsp_param_definitions)
73  case ('CNC')
74  call set_param_pointer(input_definition, gwt_cnc_param_definitions)
75  case ('FMI')
76  call set_param_pointer(input_definition, gwt_fmi_param_definitions)
77  case ('IC')
78  call set_param_pointer(input_definition, gwt_ic_param_definitions)
79  case ('IST')
80  call set_param_pointer(input_definition, gwt_ist_param_definitions)
81  case ('MST')
82  call set_param_pointer(input_definition, gwt_mst_param_definitions)
83  case ('OC')
84  call set_param_pointer(input_definition, gwt_oc_param_definitions)
85  case ('SRC')
86  call set_param_pointer(input_definition, gwt_src_param_definitions)
87  case ('SSM')
88  call set_param_pointer(input_definition, gwt_ssm_param_definitions)
89  case default
90  end select
91  return
92  end function gwt_param_definitions
93 
94  function gwt_aggregate_definitions(subcomponent) result(input_definition)
95  character(len=*), intent(in) :: subcomponent
96  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
97  nullify (input_definition)
98  select case (subcomponent)
99  case ('NAM')
100  call set_param_pointer(input_definition, gwt_nam_aggregate_definitions)
101  case ('ADV')
102  call set_param_pointer(input_definition, gwt_adv_aggregate_definitions)
103  case ('API')
104  call set_param_pointer(input_definition, gwt_api_aggregate_definitions)
105  case ('DIS')
106  call set_param_pointer(input_definition, gwt_dis_aggregate_definitions)
107  case ('DISU')
108  call set_param_pointer(input_definition, gwt_disu_aggregate_definitions)
109  case ('DISV')
110  call set_param_pointer(input_definition, gwt_disv_aggregate_definitions)
111  case ('DSP')
112  call set_param_pointer(input_definition, gwt_dsp_aggregate_definitions)
113  case ('CNC')
114  call set_param_pointer(input_definition, gwt_cnc_aggregate_definitions)
115  case ('FMI')
116  call set_param_pointer(input_definition, gwt_fmi_aggregate_definitions)
117  case ('IC')
118  call set_param_pointer(input_definition, gwt_ic_aggregate_definitions)
119  case ('IST')
120  call set_param_pointer(input_definition, gwt_ist_aggregate_definitions)
121  case ('MST')
122  call set_param_pointer(input_definition, gwt_mst_aggregate_definitions)
123  case ('OC')
124  call set_param_pointer(input_definition, gwt_oc_aggregate_definitions)
125  case ('SRC')
126  call set_param_pointer(input_definition, gwt_src_aggregate_definitions)
127  case ('SSM')
128  call set_param_pointer(input_definition, gwt_ssm_aggregate_definitions)
129  case default
130  end select
131  return
132  end function gwt_aggregate_definitions
133 
134  function gwt_block_definitions(subcomponent) result(input_definition)
135  character(len=*), intent(in) :: subcomponent
136  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
137  nullify (input_definition)
138  select case (subcomponent)
139  case ('NAM')
140  call set_block_pointer(input_definition, gwt_nam_block_definitions)
141  case ('ADV')
142  call set_block_pointer(input_definition, gwt_adv_block_definitions)
143  case ('API')
144  call set_block_pointer(input_definition, gwt_api_block_definitions)
145  case ('DIS')
146  call set_block_pointer(input_definition, gwt_dis_block_definitions)
147  case ('DISU')
148  call set_block_pointer(input_definition, gwt_disu_block_definitions)
149  case ('DISV')
150  call set_block_pointer(input_definition, gwt_disv_block_definitions)
151  case ('DSP')
152  call set_block_pointer(input_definition, gwt_dsp_block_definitions)
153  case ('CNC')
154  call set_block_pointer(input_definition, gwt_cnc_block_definitions)
155  case ('FMI')
156  call set_block_pointer(input_definition, gwt_fmi_block_definitions)
157  case ('IC')
158  call set_block_pointer(input_definition, gwt_ic_block_definitions)
159  case ('IST')
160  call set_block_pointer(input_definition, gwt_ist_block_definitions)
161  case ('MST')
162  call set_block_pointer(input_definition, gwt_mst_block_definitions)
163  case ('OC')
164  call set_block_pointer(input_definition, gwt_oc_block_definitions)
165  case ('SRC')
166  call set_block_pointer(input_definition, gwt_src_block_definitions)
167  case ('SSM')
168  call set_block_pointer(input_definition, gwt_ssm_block_definitions)
169  case default
170  end select
171  return
172  end function gwt_block_definitions
173 
174  function gwt_idm_multi_package(subcomponent) result(multi_package)
175  character(len=*), intent(in) :: subcomponent
176  logical :: multi_package
177  select case (subcomponent)
178  case ('NAM')
179  multi_package = gwt_nam_multi_package
180  case ('ADV')
181  multi_package = gwt_adv_multi_package
182  case ('API')
183  multi_package = gwt_api_multi_package
184  case ('DIS')
185  multi_package = gwt_dis_multi_package
186  case ('DISU')
187  multi_package = gwt_disu_multi_package
188  case ('DISV')
189  multi_package = gwt_disv_multi_package
190  case ('DSP')
191  multi_package = gwt_dsp_multi_package
192  case ('CNC')
193  multi_package = gwt_cnc_multi_package
194  case ('FMI')
195  multi_package = gwt_fmi_multi_package
196  case ('IC')
197  multi_package = gwt_ic_multi_package
198  case ('IST')
199  multi_package = gwt_ist_multi_package
200  case ('MST')
201  multi_package = gwt_mst_multi_package
202  case ('OC')
203  multi_package = gwt_oc_multi_package
204  case ('SRC')
205  multi_package = gwt_src_multi_package
206  case ('SSM')
207  multi_package = gwt_ssm_multi_package
208  case default
209  call store_error('Idm selector subcomponent not found; '//&
210  &'component="GWT"'//&
211  &', subcomponent="'//trim(subcomponent)//'".', .true.)
212  end select
213  return
214  end function gwt_idm_multi_package
215 
216  function gwt_idm_is_advanced(subcomponent) result(is_advanced)
217  character(len=*), intent(in) :: subcomponent
218  logical :: is_advanced
219  select case (subcomponent)
220  case ('NAM')
221  is_advanced = gwt_nam_is_advanced
222  case ('ADV')
223  is_advanced = gwt_adv_is_advanced
224  case ('API')
225  is_advanced = gwt_api_is_advanced
226  case ('DIS')
227  is_advanced = gwt_dis_is_advanced
228  case ('DISU')
229  is_advanced = gwt_disu_is_advanced
230  case ('DISV')
231  is_advanced = gwt_disv_is_advanced
232  case ('DSP')
233  is_advanced = gwt_dsp_is_advanced
234  case ('CNC')
235  is_advanced = gwt_cnc_is_advanced
236  case ('FMI')
237  is_advanced = gwt_fmi_is_advanced
238  case ('IC')
239  is_advanced = gwt_ic_is_advanced
240  case ('IST')
241  is_advanced = gwt_ist_is_advanced
242  case ('MST')
243  is_advanced = gwt_mst_is_advanced
244  case ('OC')
245  is_advanced = gwt_oc_is_advanced
246  case ('SRC')
247  is_advanced = gwt_src_is_advanced
248  case ('SSM')
249  is_advanced = gwt_ssm_is_advanced
250  case default
251  call store_error('Idm selector subcomponent not found; '//&
252  &'component="GWT"'//&
253  &', subcomponent="'//trim(subcomponent)//'".', .true.)
254  end select
255  return
256  end function gwt_idm_is_advanced
257 
258  function gwt_idm_subpackages(subcomponent) result(subpackages)
259  character(len=*), intent(in) :: subcomponent
260  character(len=16), dimension(:), pointer :: subpackages
261  select case (subcomponent)
262  case ('NAM')
263  call set_subpkg_pointer(subpackages, gwt_nam_subpackages)
264  case ('ADV')
265  call set_subpkg_pointer(subpackages, gwt_adv_subpackages)
266  case ('API')
267  call set_subpkg_pointer(subpackages, gwt_api_subpackages)
268  case ('DIS')
269  call set_subpkg_pointer(subpackages, gwt_dis_subpackages)
270  case ('DISU')
271  call set_subpkg_pointer(subpackages, gwt_disu_subpackages)
272  case ('DISV')
273  call set_subpkg_pointer(subpackages, gwt_disv_subpackages)
274  case ('DSP')
275  call set_subpkg_pointer(subpackages, gwt_dsp_subpackages)
276  case ('CNC')
277  call set_subpkg_pointer(subpackages, gwt_cnc_subpackages)
278  case ('FMI')
279  call set_subpkg_pointer(subpackages, gwt_fmi_subpackages)
280  case ('IC')
281  call set_subpkg_pointer(subpackages, gwt_ic_subpackages)
282  case ('IST')
283  call set_subpkg_pointer(subpackages, gwt_ist_subpackages)
284  case ('MST')
285  call set_subpkg_pointer(subpackages, gwt_mst_subpackages)
286  case ('OC')
287  call set_subpkg_pointer(subpackages, gwt_oc_subpackages)
288  case ('SRC')
289  call set_subpkg_pointer(subpackages, gwt_src_subpackages)
290  case ('SSM')
291  call set_subpkg_pointer(subpackages, gwt_ssm_subpackages)
292  case default
293  end select
294  return
295  end function gwt_idm_subpackages
296 
297  function gwt_idm_integrated(subcomponent) result(integrated)
298  character(len=*), intent(in) :: subcomponent
299  logical :: integrated
300  integrated = .false.
301  select case (subcomponent)
302  case ('NAM')
303  integrated = .true.
304  case ('ADV')
305  integrated = .true.
306  case ('API')
307  integrated = .true.
308  case ('DIS')
309  integrated = .true.
310  case ('DISU')
311  integrated = .true.
312  case ('DISV')
313  integrated = .true.
314  case ('DSP')
315  integrated = .true.
316  case ('CNC')
317  integrated = .true.
318  case ('FMI')
319  integrated = .true.
320  case ('IC')
321  integrated = .true.
322  case ('IST')
323  integrated = .true.
324  case ('MST')
325  integrated = .true.
326  case ('OC')
327  integrated = .true.
328  case ('SRC')
329  integrated = .true.
330  case ('SSM')
331  integrated = .true.
332  case default
333  end select
334  return
335  end function gwt_idm_integrated
336 
337 end module idmgwtdfnselectormodule
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
logical, public gwt_adv_multi_package
Definition: gwt-advidm.f90:20
logical, public gwt_adv_is_advanced
Definition: gwt-advidm.f90:21
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_adv_block_definitions
Definition: gwt-advidm.f90:96
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_adv_aggregate_definitions
Definition: gwt-advidm.f90:74
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_adv_param_definitions
Definition: gwt-advidm.f90:67
character(len=16), dimension(*), parameter, public gwt_adv_subpackages
Definition: gwt-advidm.f90:23
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_api_block_definitions
Definition: gwt-apiidm.f90:264
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_api_aggregate_definitions
Definition: gwt-apiidm.f90:242
character(len=16), dimension(*), parameter, public gwt_api_subpackages
Definition: gwt-apiidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_api_param_definitions
Definition: gwt-apiidm.f90:227
logical, public gwt_api_is_advanced
Definition: gwt-apiidm.f90:29
logical, public gwt_api_multi_package
Definition: gwt-apiidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_cnc_param_definitions
Definition: gwt-cncidm.f90:387
logical, public gwt_cnc_is_advanced
Definition: gwt-cncidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_cnc_aggregate_definitions
Definition: gwt-cncidm.f90:429
logical, public gwt_cnc_multi_package
Definition: gwt-cncidm.f90:36
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_cnc_block_definitions
Definition: gwt-cncidm.f90:435
character(len=16), dimension(*), parameter, public gwt_cnc_subpackages
Definition: gwt-cncidm.f90:39
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_dis_param_definitions
Definition: gwt-disidm.f90:507
logical, public gwt_dis_multi_package
Definition: gwt-disidm.f90:42
logical, public gwt_dis_is_advanced
Definition: gwt-disidm.f90:43
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_dis_aggregate_definitions
Definition: gwt-disidm.f90:536
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_dis_block_definitions
Definition: gwt-disidm.f90:558
character(len=16), dimension(*), parameter, public gwt_dis_subpackages
Definition: gwt-disidm.f90:45
logical, public gwt_disu_is_advanced
Definition: gwt-disuidm.f90:52
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_disu_aggregate_definitions
logical, public gwt_disu_multi_package
Definition: gwt-disuidm.f90:51
character(len=16), dimension(*), parameter, public gwt_disu_subpackages
Definition: gwt-disuidm.f90:54
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_disu_param_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_disu_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_disv_aggregate_definitions
character(len=16), dimension(*), parameter, public gwt_disv_subpackages
Definition: gwt-disvidm.f90:51
logical, public gwt_disv_is_advanced
Definition: gwt-disvidm.f90:49
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_disv_param_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_disv_block_definitions
logical, public gwt_disv_multi_package
Definition: gwt-disvidm.f90:48
character(len=16), dimension(*), parameter, public gwt_dsp_subpackages
Definition: gwt-dspidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_dsp_aggregate_definitions
Definition: gwt-dspidm.f90:242
logical, public gwt_dsp_is_advanced
Definition: gwt-dspidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_dsp_param_definitions
Definition: gwt-dspidm.f90:227
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_dsp_block_definitions
Definition: gwt-dspidm.f90:264
logical, public gwt_dsp_multi_package
Definition: gwt-dspidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_fmi_aggregate_definitions
Definition: gwt-fmiidm.f90:156
logical, public gwt_fmi_is_advanced
Definition: gwt-fmiidm.f90:24
character(len=16), dimension(*), parameter, public gwt_fmi_subpackages
Definition: gwt-fmiidm.f90:26
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_fmi_block_definitions
Definition: gwt-fmiidm.f90:162
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_fmi_param_definitions
Definition: gwt-fmiidm.f90:127
logical, public gwt_fmi_multi_package
Definition: gwt-fmiidm.f90:23
logical, public gwt_ic_is_advanced
Definition: gwt-icidm.f90:22
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_ic_block_definitions
Definition: gwt-icidm.f90:117
logical, public gwt_ic_multi_package
Definition: gwt-icidm.f90:21
character(len=16), dimension(*), parameter, public gwt_ic_subpackages
Definition: gwt-icidm.f90:24
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ic_param_definitions
Definition: gwt-icidm.f90:87
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ic_aggregate_definitions
Definition: gwt-icidm.f90:95
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ist_param_definitions
Definition: gwt-istidm.f90:728
logical, public gwt_ist_is_advanced
Definition: gwt-istidm.f90:54
logical, public gwt_ist_multi_package
Definition: gwt-istidm.f90:53
character(len=16), dimension(*), parameter, public gwt_ist_subpackages
Definition: gwt-istidm.f90:56
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ist_aggregate_definitions
Definition: gwt-istidm.f90:768
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_ist_block_definitions
Definition: gwt-istidm.f90:790
logical, public gwt_mst_is_advanced
Definition: gwt-mstidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_mst_param_definitions
Definition: gwt-mstidm.f90:347
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_mst_aggregate_definitions
Definition: gwt-mstidm.f90:368
character(len=16), dimension(*), parameter, public gwt_mst_subpackages
Definition: gwt-mstidm.f90:37
logical, public gwt_mst_multi_package
Definition: gwt-mstidm.f90:34
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_mst_block_definitions
Definition: gwt-mstidm.f90:390
logical, public gwt_nam_multi_package
Definition: gwt-namidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_nam_param_definitions
Definition: gwt-namidm.f90:407
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_nam_aggregate_definitions
Definition: gwt-namidm.f90:450
logical, public gwt_nam_is_advanced
Definition: gwt-namidm.f90:38
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_nam_block_definitions
Definition: gwt-namidm.f90:456
character(len=16), dimension(*), parameter, public gwt_nam_subpackages
Definition: gwt-namidm.f90:40
logical, public gwt_oc_multi_package
Definition: gwt-ocidm.f90:45
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_oc_aggregate_definitions
Definition: gwt-ocidm.f90:618
character(len=16), dimension(*), parameter, public gwt_oc_subpackages
Definition: gwt-ocidm.f90:48
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_oc_block_definitions
Definition: gwt-ocidm.f90:624
logical, public gwt_oc_is_advanced
Definition: gwt-ocidm.f90:46
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_oc_param_definitions
Definition: gwt-ocidm.f90:567
logical, public gwt_src_is_advanced
Definition: gwt-srcidm.f90:38
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_src_block_definitions
Definition: gwt-srcidm.f90:456
character(len=16), dimension(*), parameter, public gwt_src_subpackages
Definition: gwt-srcidm.f90:40
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_src_param_definitions
Definition: gwt-srcidm.f90:407
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_src_aggregate_definitions
Definition: gwt-srcidm.f90:450
logical, public gwt_src_multi_package
Definition: gwt-srcidm.f90:37
type(inputblockdefinitiontype), dimension(*), parameter, public gwt_ssm_block_definitions
Definition: gwt-ssmidm.f90:287
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ssm_param_definitions
Definition: gwt-ssmidm.f90:227
character(len=16), dimension(*), parameter, public gwt_ssm_subpackages
Definition: gwt-ssmidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public gwt_ssm_aggregate_definitions
Definition: gwt-ssmidm.f90:280
logical, public gwt_ssm_multi_package
Definition: gwt-ssmidm.f90:28
logical, public gwt_ssm_is_advanced
Definition: gwt-ssmidm.f90:29
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
subroutine set_block_pointer(input_dfn, input_dfn_target)
logical function, public gwt_idm_integrated(subcomponent)
logical function, public gwt_idm_is_advanced(subcomponent)
subroutine set_param_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwt_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwt_param_definitions(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public gwt_block_definitions(subcomponent)
character(len=16) function, dimension(:), pointer, public gwt_idm_subpackages(subcomponent)
logical function, public gwt_idm_multi_package(subcomponent)
Input definition module.
This module contains simulation methods.
Definition: Sim.f90:10
subroutine, public store_error(msg, terminate)
Store an error message.
Definition: Sim.f90:92
Input block definition. Describes an input block.
Input parameter definition. Describes an input parameter.