MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmGweDfnSelector.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
21 
22  implicit none
23  private
24  public :: gwe_param_definitions
26  public :: gwe_block_definitions
27  public :: gwe_idm_multi_package
28  public :: gwe_idm_is_advanced
29  public :: gwe_idm_subpackages
30  public :: gwe_idm_integrated
31 
32 contains
33 
34  subroutine set_param_pointer(input_dfn, input_dfn_target)
35  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
36  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
37  input_dfn => input_dfn_target
38  end subroutine set_param_pointer
39 
40  subroutine set_block_pointer(input_dfn, input_dfn_target)
41  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
42  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
43  input_dfn => input_dfn_target
44  end subroutine set_block_pointer
45 
46  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
47  character(len=16), dimension(:), pointer :: subpkg_list
48  character(len=16), dimension(:), target :: subpkg_list_target
49  subpkg_list => subpkg_list_target
50  end subroutine set_subpkg_pointer
51 
52  function gwe_param_definitions(subcomponent) result(input_definition)
53  character(len=*), intent(in) :: subcomponent
54  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
55  nullify (input_definition)
56  select case (subcomponent)
57  case ('NAM')
58  call set_param_pointer(input_definition, gwe_nam_param_definitions)
59  case ('ADV')
60  call set_param_pointer(input_definition, gwe_adv_param_definitions)
61  case ('CTP')
62  call set_param_pointer(input_definition, gwe_ctp_param_definitions)
63  case ('CND')
64  call set_param_pointer(input_definition, gwe_cnd_param_definitions)
65  case ('DISV')
66  call set_param_pointer(input_definition, gwe_disv_param_definitions)
67  case ('DISU')
68  call set_param_pointer(input_definition, gwe_disu_param_definitions)
69  case ('DIS')
70  call set_param_pointer(input_definition, gwe_dis_param_definitions)
71  case ('ESL')
72  call set_param_pointer(input_definition, gwe_esl_param_definitions)
73  case ('EST')
74  call set_param_pointer(input_definition, gwe_est_param_definitions)
75  case ('FMI')
76  call set_param_pointer(input_definition, gwe_fmi_param_definitions)
77  case ('IC')
78  call set_param_pointer(input_definition, gwe_ic_param_definitions)
79  case ('OC')
80  call set_param_pointer(input_definition, gwe_oc_param_definitions)
81  case ('SSM')
82  call set_param_pointer(input_definition, gwe_ssm_param_definitions)
83  case default
84  end select
85  return
86  end function gwe_param_definitions
87 
88  function gwe_aggregate_definitions(subcomponent) result(input_definition)
89  character(len=*), intent(in) :: subcomponent
90  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
91  nullify (input_definition)
92  select case (subcomponent)
93  case ('NAM')
94  call set_param_pointer(input_definition, gwe_nam_aggregate_definitions)
95  case ('ADV')
96  call set_param_pointer(input_definition, gwe_adv_aggregate_definitions)
97  case ('CTP')
98  call set_param_pointer(input_definition, gwe_ctp_aggregate_definitions)
99  case ('CND')
100  call set_param_pointer(input_definition, gwe_cnd_aggregate_definitions)
101  case ('DISV')
102  call set_param_pointer(input_definition, gwe_disv_aggregate_definitions)
103  case ('DISU')
104  call set_param_pointer(input_definition, gwe_disu_aggregate_definitions)
105  case ('DIS')
106  call set_param_pointer(input_definition, gwe_dis_aggregate_definitions)
107  case ('ESL')
108  call set_param_pointer(input_definition, gwe_esl_aggregate_definitions)
109  case ('EST')
110  call set_param_pointer(input_definition, gwe_est_aggregate_definitions)
111  case ('FMI')
112  call set_param_pointer(input_definition, gwe_fmi_aggregate_definitions)
113  case ('IC')
114  call set_param_pointer(input_definition, gwe_ic_aggregate_definitions)
115  case ('OC')
116  call set_param_pointer(input_definition, gwe_oc_aggregate_definitions)
117  case ('SSM')
118  call set_param_pointer(input_definition, gwe_ssm_aggregate_definitions)
119  case default
120  end select
121  return
122  end function gwe_aggregate_definitions
123 
124  function gwe_block_definitions(subcomponent) result(input_definition)
125  character(len=*), intent(in) :: subcomponent
126  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
127  nullify (input_definition)
128  select case (subcomponent)
129  case ('NAM')
130  call set_block_pointer(input_definition, gwe_nam_block_definitions)
131  case ('ADV')
132  call set_block_pointer(input_definition, gwe_adv_block_definitions)
133  case ('CTP')
134  call set_block_pointer(input_definition, gwe_ctp_block_definitions)
135  case ('CND')
136  call set_block_pointer(input_definition, gwe_cnd_block_definitions)
137  case ('DISV')
138  call set_block_pointer(input_definition, gwe_disv_block_definitions)
139  case ('DISU')
140  call set_block_pointer(input_definition, gwe_disu_block_definitions)
141  case ('DIS')
142  call set_block_pointer(input_definition, gwe_dis_block_definitions)
143  case ('ESL')
144  call set_block_pointer(input_definition, gwe_esl_block_definitions)
145  case ('EST')
146  call set_block_pointer(input_definition, gwe_est_block_definitions)
147  case ('FMI')
148  call set_block_pointer(input_definition, gwe_fmi_block_definitions)
149  case ('IC')
150  call set_block_pointer(input_definition, gwe_ic_block_definitions)
151  case ('OC')
152  call set_block_pointer(input_definition, gwe_oc_block_definitions)
153  case ('SSM')
154  call set_block_pointer(input_definition, gwe_ssm_block_definitions)
155  case default
156  end select
157  return
158  end function gwe_block_definitions
159 
160  function gwe_idm_multi_package(subcomponent) result(multi_package)
161  character(len=*), intent(in) :: subcomponent
162  logical :: multi_package
163  select case (subcomponent)
164  case ('NAM')
165  multi_package = gwe_nam_multi_package
166  case ('ADV')
167  multi_package = gwe_adv_multi_package
168  case ('CTP')
169  multi_package = gwe_ctp_multi_package
170  case ('CND')
171  multi_package = gwe_cnd_multi_package
172  case ('DISV')
173  multi_package = gwe_disv_multi_package
174  case ('DISU')
175  multi_package = gwe_disu_multi_package
176  case ('DIS')
177  multi_package = gwe_dis_multi_package
178  case ('ESL')
179  multi_package = gwe_esl_multi_package
180  case ('EST')
181  multi_package = gwe_est_multi_package
182  case ('FMI')
183  multi_package = gwe_fmi_multi_package
184  case ('IC')
185  multi_package = gwe_ic_multi_package
186  case ('OC')
187  multi_package = gwe_oc_multi_package
188  case ('SSM')
189  multi_package = gwe_ssm_multi_package
190  case default
191  call store_error('Idm selector subcomponent not found; '//&
192  &'component="GWE"'//&
193  &', subcomponent="'//trim(subcomponent)//'".', .true.)
194  end select
195  return
196  end function gwe_idm_multi_package
197 
198  function gwe_idm_is_advanced(subcomponent) result(is_advanced)
199  character(len=*), intent(in) :: subcomponent
200  logical :: is_advanced
201  select case (subcomponent)
202  case ('NAM')
203  is_advanced = gwe_nam_is_advanced
204  case ('ADV')
205  is_advanced = gwe_adv_is_advanced
206  case ('CTP')
207  is_advanced = gwe_ctp_is_advanced
208  case ('CND')
209  is_advanced = gwe_cnd_is_advanced
210  case ('DISV')
211  is_advanced = gwe_disv_is_advanced
212  case ('DISU')
213  is_advanced = gwe_disu_is_advanced
214  case ('DIS')
215  is_advanced = gwe_dis_is_advanced
216  case ('ESL')
217  is_advanced = gwe_esl_is_advanced
218  case ('EST')
219  is_advanced = gwe_est_is_advanced
220  case ('FMI')
221  is_advanced = gwe_fmi_is_advanced
222  case ('IC')
223  is_advanced = gwe_ic_is_advanced
224  case ('OC')
225  is_advanced = gwe_oc_is_advanced
226  case ('SSM')
227  is_advanced = gwe_ssm_is_advanced
228  case default
229  call store_error('Idm selector subcomponent not found; '//&
230  &'component="GWE"'//&
231  &', subcomponent="'//trim(subcomponent)//'".', .true.)
232  end select
233  return
234  end function gwe_idm_is_advanced
235 
236  function gwe_idm_subpackages(subcomponent) result(subpackages)
237  character(len=*), intent(in) :: subcomponent
238  character(len=16), dimension(:), pointer :: subpackages
239  select case (subcomponent)
240  case ('NAM')
241  call set_subpkg_pointer(subpackages, gwe_nam_subpackages)
242  case ('ADV')
243  call set_subpkg_pointer(subpackages, gwe_adv_subpackages)
244  case ('CTP')
245  call set_subpkg_pointer(subpackages, gwe_ctp_subpackages)
246  case ('CND')
247  call set_subpkg_pointer(subpackages, gwe_cnd_subpackages)
248  case ('DISV')
249  call set_subpkg_pointer(subpackages, gwe_disv_subpackages)
250  case ('DISU')
251  call set_subpkg_pointer(subpackages, gwe_disu_subpackages)
252  case ('DIS')
253  call set_subpkg_pointer(subpackages, gwe_dis_subpackages)
254  case ('ESL')
255  call set_subpkg_pointer(subpackages, gwe_esl_subpackages)
256  case ('EST')
257  call set_subpkg_pointer(subpackages, gwe_est_subpackages)
258  case ('FMI')
259  call set_subpkg_pointer(subpackages, gwe_fmi_subpackages)
260  case ('IC')
261  call set_subpkg_pointer(subpackages, gwe_ic_subpackages)
262  case ('OC')
263  call set_subpkg_pointer(subpackages, gwe_oc_subpackages)
264  case ('SSM')
265  call set_subpkg_pointer(subpackages, gwe_ssm_subpackages)
266  case default
267  end select
268  return
269  end function gwe_idm_subpackages
270 
271  function gwe_idm_integrated(subcomponent) result(integrated)
272  character(len=*), intent(in) :: subcomponent
273  logical :: integrated
274  integrated = .false.
275  select case (subcomponent)
276  case ('NAM')
277  integrated = .true.
278  case ('ADV')
279  integrated = .true.
280  case ('CTP')
281  integrated = .true.
282  case ('CND')
283  integrated = .true.
284  case ('DISV')
285  integrated = .true.
286  case ('DISU')
287  integrated = .true.
288  case ('DIS')
289  integrated = .true.
290  case ('ESL')
291  integrated = .true.
292  case ('EST')
293  integrated = .true.
294  case ('FMI')
295  integrated = .true.
296  case ('IC')
297  integrated = .true.
298  case ('OC')
299  integrated = .true.
300  case ('SSM')
301  integrated = .true.
302  case default
303  end select
304  return
305  end function gwe_idm_integrated
306 
307 end module idmgwedfnselectormodule
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 gwe_adv_multi_package
Definition: gwe-advidm.f90:20
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_adv_block_definitions
Definition: gwe-advidm.f90:96
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_adv_param_definitions
Definition: gwe-advidm.f90:67
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_adv_aggregate_definitions
Definition: gwe-advidm.f90:74
logical, public gwe_adv_is_advanced
Definition: gwe-advidm.f90:21
character(len=16), dimension(*), parameter, public gwe_adv_subpackages
Definition: gwe-advidm.f90:23
logical, public gwe_cnd_is_advanced
Definition: gwe-cndidm.f90:30
logical, public gwe_cnd_multi_package
Definition: gwe-cndidm.f90:29
character(len=16), dimension(*), parameter, public gwe_cnd_subpackages
Definition: gwe-cndidm.f90:32
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_cnd_block_definitions
Definition: gwe-cndidm.f90:285
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_cnd_aggregate_definitions
Definition: gwe-cndidm.f90:263
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_cnd_param_definitions
Definition: gwe-cndidm.f90:247
character(len=16), dimension(*), parameter, public gwe_ctp_subpackages
Definition: gwe-ctpidm.f90:39
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ctp_aggregate_definitions
Definition: gwe-ctpidm.f90:429
logical, public gwe_ctp_is_advanced
Definition: gwe-ctpidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ctp_param_definitions
Definition: gwe-ctpidm.f90:387
logical, public gwe_ctp_multi_package
Definition: gwe-ctpidm.f90:36
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ctp_block_definitions
Definition: gwe-ctpidm.f90:435
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_dis_block_definitions
Definition: gwe-disidm.f90:558
character(len=16), dimension(*), parameter, public gwe_dis_subpackages
Definition: gwe-disidm.f90:45
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_dis_aggregate_definitions
Definition: gwe-disidm.f90:536
logical, public gwe_dis_multi_package
Definition: gwe-disidm.f90:42
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_dis_param_definitions
Definition: gwe-disidm.f90:507
logical, public gwe_dis_is_advanced
Definition: gwe-disidm.f90:43
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disu_param_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_disu_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disu_aggregate_definitions
logical, public gwe_disu_multi_package
Definition: gwe-disuidm.f90:51
character(len=16), dimension(*), parameter, public gwe_disu_subpackages
Definition: gwe-disuidm.f90:54
logical, public gwe_disu_is_advanced
Definition: gwe-disuidm.f90:52
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_disv_block_definitions
character(len=16), dimension(*), parameter, public gwe_disv_subpackages
Definition: gwe-disvidm.f90:51
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disv_aggregate_definitions
logical, public gwe_disv_is_advanced
Definition: gwe-disvidm.f90:49
logical, public gwe_disv_multi_package
Definition: gwe-disvidm.f90:48
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disv_param_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_esl_aggregate_definitions
Definition: gwe-eslidm.f90:429
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_esl_param_definitions
Definition: gwe-eslidm.f90:387
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_esl_block_definitions
Definition: gwe-eslidm.f90:435
character(len=16), dimension(*), parameter, public gwe_esl_subpackages
Definition: gwe-eslidm.f90:39
logical, public gwe_esl_is_advanced
Definition: gwe-eslidm.f90:37
logical, public gwe_esl_multi_package
Definition: gwe-eslidm.f90:36
character(len=16), dimension(*), parameter, public gwe_est_subpackages
Definition: gwe-estidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_est_param_definitions
Definition: gwe-estidm.f90:247
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_est_block_definitions
Definition: gwe-estidm.f90:285
logical, public gwe_est_multi_package
Definition: gwe-estidm.f90:29
logical, public gwe_est_is_advanced
Definition: gwe-estidm.f90:30
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_est_aggregate_definitions
Definition: gwe-estidm.f90:263
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_fmi_param_definitions
Definition: gwe-fmiidm.f90:127
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_fmi_block_definitions
Definition: gwe-fmiidm.f90:162
logical, public gwe_fmi_multi_package
Definition: gwe-fmiidm.f90:23
character(len=16), dimension(*), parameter, public gwe_fmi_subpackages
Definition: gwe-fmiidm.f90:26
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_fmi_aggregate_definitions
Definition: gwe-fmiidm.f90:156
logical, public gwe_fmi_is_advanced
Definition: gwe-fmiidm.f90:24
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ic_block_definitions
Definition: gwe-icidm.f90:117
logical, public gwe_ic_multi_package
Definition: gwe-icidm.f90:21
character(len=16), dimension(*), parameter, public gwe_ic_subpackages
Definition: gwe-icidm.f90:24
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ic_aggregate_definitions
Definition: gwe-icidm.f90:95
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ic_param_definitions
Definition: gwe-icidm.f90:87
logical, public gwe_ic_is_advanced
Definition: gwe-icidm.f90:22
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_nam_block_definitions
Definition: gwe-namidm.f90:456
logical, public gwe_nam_multi_package
Definition: gwe-namidm.f90:37
logical, public gwe_nam_is_advanced
Definition: gwe-namidm.f90:38
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_nam_aggregate_definitions
Definition: gwe-namidm.f90:450
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_nam_param_definitions
Definition: gwe-namidm.f90:407
character(len=16), dimension(*), parameter, public gwe_nam_subpackages
Definition: gwe-namidm.f90:40
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_oc_param_definitions
Definition: gwe-ocidm.f90:567
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_oc_block_definitions
Definition: gwe-ocidm.f90:624
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_oc_aggregate_definitions
Definition: gwe-ocidm.f90:618
character(len=16), dimension(*), parameter, public gwe_oc_subpackages
Definition: gwe-ocidm.f90:48
logical, public gwe_oc_is_advanced
Definition: gwe-ocidm.f90:46
logical, public gwe_oc_multi_package
Definition: gwe-ocidm.f90:45
logical, public gwe_ssm_multi_package
Definition: gwe-ssmidm.f90:28
character(len=16), dimension(*), parameter, public gwe_ssm_subpackages
Definition: gwe-ssmidm.f90:31
logical, public gwe_ssm_is_advanced
Definition: gwe-ssmidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ssm_param_definitions
Definition: gwe-ssmidm.f90:227
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ssm_block_definitions
Definition: gwe-ssmidm.f90:287
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ssm_aggregate_definitions
Definition: gwe-ssmidm.f90:280
logical function, public gwe_idm_multi_package(subcomponent)
subroutine set_param_pointer(input_dfn, input_dfn_target)
logical function, public gwe_idm_integrated(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwe_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwe_param_definitions(subcomponent)
logical function, public gwe_idm_is_advanced(subcomponent)
subroutine set_block_pointer(input_dfn, input_dfn_target)
type(inputblockdefinitiontype) function, dimension(:), pointer, public gwe_block_definitions(subcomponent)
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
character(len=16) function, dimension(:), pointer, public gwe_idm_subpackages(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.