MODFLOW 6  version 6.7.0.dev2
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
20 
21  implicit none
22  private
23  public :: gwe_param_definitions
25  public :: gwe_block_definitions
26  public :: gwe_idm_multi_package
27  public :: gwe_idm_subpackages
28  public :: gwe_idm_integrated
29 
30 contains
31 
32  subroutine set_param_pointer(input_dfn, input_dfn_target)
33  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
34  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
35  input_dfn => input_dfn_target
36  end subroutine set_param_pointer
37 
38  subroutine set_block_pointer(input_dfn, input_dfn_target)
39  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
40  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
41  input_dfn => input_dfn_target
42  end subroutine set_block_pointer
43 
44  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
45  character(len=16), dimension(:), pointer :: subpkg_list
46  character(len=16), dimension(:), target :: subpkg_list_target
47  subpkg_list => subpkg_list_target
48  end subroutine set_subpkg_pointer
49 
50  function gwe_param_definitions(subcomponent) result(input_definition)
51  character(len=*), intent(in) :: subcomponent
52  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
53  nullify (input_definition)
54  select case (subcomponent)
55  case ('NAM')
56  call set_param_pointer(input_definition, gwe_nam_param_definitions)
57  case ('ADV')
58  call set_param_pointer(input_definition, gwe_adv_param_definitions)
59  case ('ESL')
60  call set_param_pointer(input_definition, gwe_esl_param_definitions)
61  case ('IC')
62  call set_param_pointer(input_definition, gwe_ic_param_definitions)
63  case ('CTP')
64  call set_param_pointer(input_definition, gwe_ctp_param_definitions)
65  case ('CND')
66  call set_param_pointer(input_definition, gwe_cnd_param_definitions)
67  case ('DISV')
68  call set_param_pointer(input_definition, gwe_disv_param_definitions)
69  case ('DISU')
70  call set_param_pointer(input_definition, gwe_disu_param_definitions)
71  case ('DIS')
72  call set_param_pointer(input_definition, gwe_dis_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 ('SSM')
78  call set_param_pointer(input_definition, gwe_ssm_param_definitions)
79  case default
80  end select
81  return
82  end function gwe_param_definitions
83 
84  function gwe_aggregate_definitions(subcomponent) result(input_definition)
85  character(len=*), intent(in) :: subcomponent
86  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
87  nullify (input_definition)
88  select case (subcomponent)
89  case ('NAM')
90  call set_param_pointer(input_definition, gwe_nam_aggregate_definitions)
91  case ('ADV')
92  call set_param_pointer(input_definition, gwe_adv_aggregate_definitions)
93  case ('ESL')
94  call set_param_pointer(input_definition, gwe_esl_aggregate_definitions)
95  case ('IC')
96  call set_param_pointer(input_definition, gwe_ic_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 ('EST')
108  call set_param_pointer(input_definition, gwe_est_aggregate_definitions)
109  case ('FMI')
110  call set_param_pointer(input_definition, gwe_fmi_aggregate_definitions)
111  case ('SSM')
112  call set_param_pointer(input_definition, gwe_ssm_aggregate_definitions)
113  case default
114  end select
115  return
116  end function gwe_aggregate_definitions
117 
118  function gwe_block_definitions(subcomponent) result(input_definition)
119  character(len=*), intent(in) :: subcomponent
120  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
121  nullify (input_definition)
122  select case (subcomponent)
123  case ('NAM')
124  call set_block_pointer(input_definition, gwe_nam_block_definitions)
125  case ('ADV')
126  call set_block_pointer(input_definition, gwe_adv_block_definitions)
127  case ('ESL')
128  call set_block_pointer(input_definition, gwe_esl_block_definitions)
129  case ('IC')
130  call set_block_pointer(input_definition, gwe_ic_block_definitions)
131  case ('CTP')
132  call set_block_pointer(input_definition, gwe_ctp_block_definitions)
133  case ('CND')
134  call set_block_pointer(input_definition, gwe_cnd_block_definitions)
135  case ('DISV')
136  call set_block_pointer(input_definition, gwe_disv_block_definitions)
137  case ('DISU')
138  call set_block_pointer(input_definition, gwe_disu_block_definitions)
139  case ('DIS')
140  call set_block_pointer(input_definition, gwe_dis_block_definitions)
141  case ('EST')
142  call set_block_pointer(input_definition, gwe_est_block_definitions)
143  case ('FMI')
144  call set_block_pointer(input_definition, gwe_fmi_block_definitions)
145  case ('SSM')
146  call set_block_pointer(input_definition, gwe_ssm_block_definitions)
147  case default
148  end select
149  return
150  end function gwe_block_definitions
151 
152  function gwe_idm_multi_package(subcomponent) result(multi_package)
153  character(len=*), intent(in) :: subcomponent
154  logical :: multi_package
155  select case (subcomponent)
156  case ('NAM')
157  multi_package = gwe_nam_multi_package
158  case ('ADV')
159  multi_package = gwe_adv_multi_package
160  case ('ESL')
161  multi_package = gwe_esl_multi_package
162  case ('IC')
163  multi_package = gwe_ic_multi_package
164  case ('CTP')
165  multi_package = gwe_ctp_multi_package
166  case ('CND')
167  multi_package = gwe_cnd_multi_package
168  case ('DISV')
169  multi_package = gwe_disv_multi_package
170  case ('DISU')
171  multi_package = gwe_disu_multi_package
172  case ('DIS')
173  multi_package = gwe_dis_multi_package
174  case ('EST')
175  multi_package = gwe_est_multi_package
176  case ('FMI')
177  multi_package = gwe_fmi_multi_package
178  case ('SSM')
179  multi_package = gwe_ssm_multi_package
180  case default
181  call store_error('Idm selector subcomponent not found; '//&
182  &'component="GWE"'//&
183  &', subcomponent="'//trim(subcomponent)//'".', .true.)
184  end select
185  return
186  end function gwe_idm_multi_package
187 
188  function gwe_idm_subpackages(subcomponent) result(subpackages)
189  character(len=*), intent(in) :: subcomponent
190  character(len=16), dimension(:), pointer :: subpackages
191  select case (subcomponent)
192  case ('NAM')
193  call set_subpkg_pointer(subpackages, gwe_nam_subpackages)
194  case ('ADV')
195  call set_subpkg_pointer(subpackages, gwe_adv_subpackages)
196  case ('ESL')
197  call set_subpkg_pointer(subpackages, gwe_esl_subpackages)
198  case ('IC')
199  call set_subpkg_pointer(subpackages, gwe_ic_subpackages)
200  case ('CTP')
201  call set_subpkg_pointer(subpackages, gwe_ctp_subpackages)
202  case ('CND')
203  call set_subpkg_pointer(subpackages, gwe_cnd_subpackages)
204  case ('DISV')
205  call set_subpkg_pointer(subpackages, gwe_disv_subpackages)
206  case ('DISU')
207  call set_subpkg_pointer(subpackages, gwe_disu_subpackages)
208  case ('DIS')
209  call set_subpkg_pointer(subpackages, gwe_dis_subpackages)
210  case ('EST')
211  call set_subpkg_pointer(subpackages, gwe_est_subpackages)
212  case ('FMI')
213  call set_subpkg_pointer(subpackages, gwe_fmi_subpackages)
214  case ('SSM')
215  call set_subpkg_pointer(subpackages, gwe_ssm_subpackages)
216  case default
217  end select
218  return
219  end function gwe_idm_subpackages
220 
221  function gwe_idm_integrated(subcomponent) result(integrated)
222  character(len=*), intent(in) :: subcomponent
223  logical :: integrated
224  integrated = .false.
225  select case (subcomponent)
226  case ('NAM')
227  integrated = .true.
228  case ('ADV')
229  integrated = .true.
230  case ('ESL')
231  integrated = .true.
232  case ('IC')
233  integrated = .true.
234  case ('CTP')
235  integrated = .true.
236  case ('CND')
237  integrated = .true.
238  case ('DISV')
239  integrated = .true.
240  case ('DISU')
241  integrated = .true.
242  case ('DIS')
243  integrated = .true.
244  case ('EST')
245  integrated = .true.
246  case ('FMI')
247  integrated = .true.
248  case ('SSM')
249  integrated = .true.
250  case default
251  end select
252  return
253  end function gwe_idm_integrated
254 
255 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:19
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_adv_block_definitions
Definition: gwe-advidm.f90:91
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_adv_param_definitions
Definition: gwe-advidm.f90:63
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_adv_aggregate_definitions
Definition: gwe-advidm.f90:70
character(len=16), dimension(*), parameter, public gwe_adv_subpackages
Definition: gwe-advidm.f90:21
logical, public gwe_cnd_multi_package
Definition: gwe-cndidm.f90:28
character(len=16), dimension(*), parameter, public gwe_cnd_subpackages
Definition: gwe-cndidm.f90:30
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_cnd_block_definitions
Definition: gwe-cndidm.f90:271
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_cnd_aggregate_definitions
Definition: gwe-cndidm.f90:250
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_cnd_param_definitions
Definition: gwe-cndidm.f90:234
character(len=16), dimension(*), parameter, public gwe_ctp_subpackages
Definition: gwe-ctpidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ctp_aggregate_definitions
Definition: gwe-ctpidm.f90:408
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ctp_param_definitions
Definition: gwe-ctpidm.f90:367
logical, public gwe_ctp_multi_package
Definition: gwe-ctpidm.f90:35
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ctp_block_definitions
Definition: gwe-ctpidm.f90:414
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_dis_block_definitions
Definition: gwe-disidm.f90:531
character(len=16), dimension(*), parameter, public gwe_dis_subpackages
Definition: gwe-disidm.f90:43
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_dis_aggregate_definitions
Definition: gwe-disidm.f90:510
logical, public gwe_dis_multi_package
Definition: gwe-disidm.f90:41
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_dis_param_definitions
Definition: gwe-disidm.f90:481
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:50
character(len=16), dimension(*), parameter, public gwe_disu_subpackages
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:49
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disv_aggregate_definitions
logical, public gwe_disv_multi_package
Definition: gwe-disvidm.f90:47
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_disv_param_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_esl_aggregate_definitions
Definition: gwe-eslidm.f90:408
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_esl_param_definitions
Definition: gwe-eslidm.f90:367
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_esl_block_definitions
Definition: gwe-eslidm.f90:414
character(len=16), dimension(*), parameter, public gwe_esl_subpackages
Definition: gwe-eslidm.f90:37
logical, public gwe_esl_multi_package
Definition: gwe-eslidm.f90:35
character(len=16), dimension(*), parameter, public gwe_est_subpackages
Definition: gwe-estidm.f90:30
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_est_param_definitions
Definition: gwe-estidm.f90:234
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_est_block_definitions
Definition: gwe-estidm.f90:271
logical, public gwe_est_multi_package
Definition: gwe-estidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_est_aggregate_definitions
Definition: gwe-estidm.f90:250
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_fmi_param_definitions
Definition: gwe-fmiidm.f90:120
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_fmi_block_definitions
Definition: gwe-fmiidm.f90:154
logical, public gwe_fmi_multi_package
Definition: gwe-fmiidm.f90:22
character(len=16), dimension(*), parameter, public gwe_fmi_subpackages
Definition: gwe-fmiidm.f90:24
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_fmi_aggregate_definitions
Definition: gwe-fmiidm.f90:148
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ic_block_definitions
Definition: gwe-icidm.f90:111
logical, public gwe_ic_multi_package
Definition: gwe-icidm.f90:20
character(len=16), dimension(*), parameter, public gwe_ic_subpackages
Definition: gwe-icidm.f90:22
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ic_aggregate_definitions
Definition: gwe-icidm.f90:90
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ic_param_definitions
Definition: gwe-icidm.f90:82
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_nam_block_definitions
Definition: gwe-namidm.f90:434
logical, public gwe_nam_multi_package
Definition: gwe-namidm.f90:36
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_nam_aggregate_definitions
Definition: gwe-namidm.f90:428
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_nam_param_definitions
Definition: gwe-namidm.f90:386
character(len=16), dimension(*), parameter, public gwe_nam_subpackages
Definition: gwe-namidm.f90:38
logical, public gwe_ssm_multi_package
Definition: gwe-ssmidm.f90:27
character(len=16), dimension(*), parameter, public gwe_ssm_subpackages
Definition: gwe-ssmidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ssm_param_definitions
Definition: gwe-ssmidm.f90:215
type(inputblockdefinitiontype), dimension(*), parameter, public gwe_ssm_block_definitions
Definition: gwe-ssmidm.f90:273
type(inputparamdefinitiontype), dimension(*), parameter, public gwe_ssm_aggregate_definitions
Definition: gwe-ssmidm.f90:266
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)
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)
This module contains the InputDefinitionModule.
This module contains simulation methods.
Definition: Sim.f90:10
subroutine, public store_error(msg, terminate)
Store an error message.
Definition: Sim.f90:92