MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmDfnSelector.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
17 
18  implicit none
19  private
20  public :: param_definitions
21  public :: aggregate_definitions
22  public :: block_definitions
23  public :: idm_multi_package
24  public :: idm_is_advanced
25  public :: idm_subpackages
26  public :: idm_integrated
27  public :: idm_component
28 
29 contains
30 
31  function param_definitions(component, subcomponent) result(input_definition)
32  character(len=*), intent(in) :: component
33  character(len=*), intent(in) :: subcomponent
34  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
35  nullify (input_definition)
36  select case (component)
37  case ('SIM')
38  input_definition => sim_param_definitions(subcomponent)
39  case ('GWF')
40  input_definition => gwf_param_definitions(subcomponent)
41  case ('GWT')
42  input_definition => gwt_param_definitions(subcomponent)
43  case ('GWE')
44  input_definition => gwe_param_definitions(subcomponent)
45  case ('CHF')
46  input_definition => chf_param_definitions(subcomponent)
47  case ('OLF')
48  input_definition => olf_param_definitions(subcomponent)
49  case ('PRT')
50  input_definition => prt_param_definitions(subcomponent)
51  case ('EXG')
52  input_definition => exg_param_definitions(subcomponent)
53  case ('UTL')
54  input_definition => utl_param_definitions(subcomponent)
55  case default
56  end select
57  return
58  end function param_definitions
59 
60  function aggregate_definitions(component, subcomponent) result(input_definition)
61  character(len=*), intent(in) :: component
62  character(len=*), intent(in) :: subcomponent
63  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
64  nullify (input_definition)
65  select case (component)
66  case ('SIM')
67  input_definition => sim_aggregate_definitions(subcomponent)
68  case ('GWF')
69  input_definition => gwf_aggregate_definitions(subcomponent)
70  case ('GWT')
71  input_definition => gwt_aggregate_definitions(subcomponent)
72  case ('GWE')
73  input_definition => gwe_aggregate_definitions(subcomponent)
74  case ('CHF')
75  input_definition => chf_aggregate_definitions(subcomponent)
76  case ('OLF')
77  input_definition => olf_aggregate_definitions(subcomponent)
78  case ('PRT')
79  input_definition => prt_aggregate_definitions(subcomponent)
80  case ('EXG')
81  input_definition => exg_aggregate_definitions(subcomponent)
82  case ('UTL')
83  input_definition => utl_aggregate_definitions(subcomponent)
84  case default
85  end select
86  return
87  end function aggregate_definitions
88 
89  function block_definitions(component, subcomponent) result(input_definition)
90  character(len=*), intent(in) :: component
91  character(len=*), intent(in) :: subcomponent
92  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
93  nullify (input_definition)
94  select case (component)
95  case ('SIM')
96  input_definition => sim_block_definitions(subcomponent)
97  case ('GWF')
98  input_definition => gwf_block_definitions(subcomponent)
99  case ('GWT')
100  input_definition => gwt_block_definitions(subcomponent)
101  case ('GWE')
102  input_definition => gwe_block_definitions(subcomponent)
103  case ('CHF')
104  input_definition => chf_block_definitions(subcomponent)
105  case ('OLF')
106  input_definition => olf_block_definitions(subcomponent)
107  case ('PRT')
108  input_definition => prt_block_definitions(subcomponent)
109  case ('EXG')
110  input_definition => exg_block_definitions(subcomponent)
111  case ('UTL')
112  input_definition => utl_block_definitions(subcomponent)
113  case default
114  end select
115  return
116  end function block_definitions
117 
118  function idm_multi_package(component, subcomponent) result(multi_package)
119  character(len=*), intent(in) :: component
120  character(len=*), intent(in) :: subcomponent
121  logical :: multi_package
122  select case (component)
123  case ('SIM')
124  multi_package = sim_idm_multi_package(subcomponent)
125  case ('GWF')
126  multi_package = gwf_idm_multi_package(subcomponent)
127  case ('GWT')
128  multi_package = gwt_idm_multi_package(subcomponent)
129  case ('GWE')
130  multi_package = gwe_idm_multi_package(subcomponent)
131  case ('CHF')
132  multi_package = chf_idm_multi_package(subcomponent)
133  case ('OLF')
134  multi_package = olf_idm_multi_package(subcomponent)
135  case ('PRT')
136  multi_package = prt_idm_multi_package(subcomponent)
137  case ('EXG')
138  multi_package = exg_idm_multi_package(subcomponent)
139  case ('UTL')
140  multi_package = utl_idm_multi_package(subcomponent)
141  case default
142  call store_error('Idm selector component not found; '//&
143  &'component="'//trim(component)//&
144  &'", subcomponent="'//trim(subcomponent)//'".', .true.)
145  end select
146  return
147  end function idm_multi_package
148 
149  function idm_is_advanced(component, subcomponent) result(is_advanced)
150  character(len=*), intent(in) :: component
151  character(len=*), intent(in) :: subcomponent
152  logical :: is_advanced
153  select case (component)
154  case ('SIM')
155  is_advanced = sim_idm_is_advanced(subcomponent)
156  case ('GWF')
157  is_advanced = gwf_idm_is_advanced(subcomponent)
158  case ('GWT')
159  is_advanced = gwt_idm_is_advanced(subcomponent)
160  case ('GWE')
161  is_advanced = gwe_idm_is_advanced(subcomponent)
162  case ('CHF')
163  is_advanced = chf_idm_is_advanced(subcomponent)
164  case ('OLF')
165  is_advanced = olf_idm_is_advanced(subcomponent)
166  case ('PRT')
167  is_advanced = prt_idm_is_advanced(subcomponent)
168  case ('EXG')
169  is_advanced = exg_idm_is_advanced(subcomponent)
170  case ('UTL')
171  is_advanced = utl_idm_is_advanced(subcomponent)
172  case default
173  call store_error('Idm selector component not found; '//&
174  &'component="'//trim(component)//&
175  &'", subcomponent="'//trim(subcomponent)//'".', .true.)
176  end select
177  return
178  end function idm_is_advanced
179 
180  function idm_subpackages(component, subcomponent) result(subpackages)
181  character(len=*), intent(in) :: component
182  character(len=*), intent(in) :: subcomponent
183  character(len=16), dimension(:), pointer :: subpackages
184  select case (component)
185  case ('SIM')
186  subpackages => sim_idm_subpackages(subcomponent)
187  case ('GWF')
188  subpackages => gwf_idm_subpackages(subcomponent)
189  case ('GWT')
190  subpackages => gwt_idm_subpackages(subcomponent)
191  case ('GWE')
192  subpackages => gwe_idm_subpackages(subcomponent)
193  case ('CHF')
194  subpackages => chf_idm_subpackages(subcomponent)
195  case ('OLF')
196  subpackages => olf_idm_subpackages(subcomponent)
197  case ('PRT')
198  subpackages => prt_idm_subpackages(subcomponent)
199  case ('EXG')
200  subpackages => exg_idm_subpackages(subcomponent)
201  case ('UTL')
202  subpackages => utl_idm_subpackages(subcomponent)
203  case default
204  call store_error('Idm selector component not found; '//&
205  &'component="'//trim(component)//&
206  &'", subcomponent="'//trim(subcomponent)//'".', .true.)
207  end select
208  return
209  end function idm_subpackages
210 
211  function idm_integrated(component, subcomponent) result(integrated)
212  character(len=*), intent(in) :: component
213  character(len=*), intent(in) :: subcomponent
214  logical :: integrated
215  integrated = .false.
216  select case (component)
217  case ('SIM')
218  integrated = sim_idm_integrated(subcomponent)
219  case ('GWF')
220  integrated = gwf_idm_integrated(subcomponent)
221  case ('GWT')
222  integrated = gwt_idm_integrated(subcomponent)
223  case ('GWE')
224  integrated = gwe_idm_integrated(subcomponent)
225  case ('CHF')
226  integrated = chf_idm_integrated(subcomponent)
227  case ('OLF')
228  integrated = olf_idm_integrated(subcomponent)
229  case ('PRT')
230  integrated = prt_idm_integrated(subcomponent)
231  case ('EXG')
232  integrated = exg_idm_integrated(subcomponent)
233  case ('UTL')
234  integrated = utl_idm_integrated(subcomponent)
235  case default
236  end select
237  return
238  end function idm_integrated
239 
240  function idm_component(component) result(integrated)
241  character(len=*), intent(in) :: component
242  logical :: integrated
243  integrated = .false.
244  select case (component)
245  case ('SIM')
246  integrated = .true.
247  case ('GWF')
248  integrated = .true.
249  case ('GWT')
250  integrated = .true.
251  case ('GWE')
252  integrated = .true.
253  case ('CHF')
254  integrated = .true.
255  case ('OLF')
256  integrated = .true.
257  case ('PRT')
258  integrated = .true.
259  case ('EXG')
260  integrated = .true.
261  case ('UTL')
262  integrated = .true.
263  case default
264  end select
265  return
266  end function idm_component
267 
268 end module idmdfnselectormodule
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
logical function, public chf_idm_is_advanced(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public chf_block_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public chf_param_definitions(subcomponent)
logical function, public chf_idm_integrated(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public chf_aggregate_definitions(subcomponent)
character(len=16) function, dimension(:), pointer, public chf_idm_subpackages(subcomponent)
logical function, public chf_idm_multi_package(subcomponent)
logical function, public idm_is_advanced(component, subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public block_definitions(component, subcomponent)
logical function, public idm_integrated(component, subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public param_definitions(component, subcomponent)
logical function, public idm_component(component)
logical function, public idm_multi_package(component, subcomponent)
character(len=16) function, dimension(:), pointer, public idm_subpackages(component, subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public aggregate_definitions(component, subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public exg_block_definitions(subcomponent)
logical function, public exg_idm_is_advanced(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public exg_param_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public exg_aggregate_definitions(subcomponent)
character(len=16) function, dimension(:), pointer, public exg_idm_subpackages(subcomponent)
logical function, public exg_idm_multi_package(subcomponent)
logical function, public exg_idm_integrated(subcomponent)
logical function, public gwe_idm_multi_package(subcomponent)
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)
type(inputblockdefinitiontype) function, dimension(:), pointer, public gwe_block_definitions(subcomponent)
character(len=16) function, dimension(:), pointer, public gwe_idm_subpackages(subcomponent)
logical function, public gwf_idm_integrated(subcomponent)
logical function, public gwf_idm_is_advanced(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public gwf_block_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwf_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public gwf_param_definitions(subcomponent)
character(len=16) function, dimension(:), pointer, public gwf_idm_subpackages(subcomponent)
logical function, public gwf_idm_multi_package(subcomponent)
logical function, public gwt_idm_integrated(subcomponent)
logical function, public gwt_idm_is_advanced(subcomponent)
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)
logical function, public olf_idm_integrated(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public olf_param_definitions(subcomponent)
logical function, public olf_idm_is_advanced(subcomponent)
character(len=16) function, dimension(:), pointer, public olf_idm_subpackages(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public olf_aggregate_definitions(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public olf_block_definitions(subcomponent)
logical function, public olf_idm_multi_package(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public prt_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public prt_param_definitions(subcomponent)
logical function, public prt_idm_multi_package(subcomponent)
logical function, public prt_idm_integrated(subcomponent)
character(len=16) function, dimension(:), pointer, public prt_idm_subpackages(subcomponent)
logical function, public prt_idm_is_advanced(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public prt_block_definitions(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public sim_block_definitions(subcomponent)
logical function, public sim_idm_multi_package(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public sim_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public sim_param_definitions(subcomponent)
logical function, public sim_idm_is_advanced(subcomponent)
logical function, public sim_idm_integrated(subcomponent)
character(len=16) function, dimension(:), pointer, public sim_idm_subpackages(subcomponent)
character(len=16) function, dimension(:), pointer, public utl_idm_subpackages(subcomponent)
logical function, public utl_idm_integrated(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public utl_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public utl_param_definitions(subcomponent)
logical function, public utl_idm_multi_package(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public utl_block_definitions(subcomponent)
logical function, public utl_idm_is_advanced(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.