MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmChfDfnSelector.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 :: chf_param_definitions
26  public :: chf_block_definitions
27  public :: chf_idm_multi_package
28  public :: chf_idm_is_advanced
29  public :: chf_idm_subpackages
30  public :: chf_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 chf_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, chf_nam_param_definitions)
59  case ('DISV1D')
60  call set_param_pointer(input_definition, chf_disv1d_param_definitions)
61  case ('CXS')
62  call set_param_pointer(input_definition, chf_cxs_param_definitions)
63  case ('DFW')
64  call set_param_pointer(input_definition, chf_dfw_param_definitions)
65  case ('IC')
66  call set_param_pointer(input_definition, chf_ic_param_definitions)
67  case ('OC')
68  call set_param_pointer(input_definition, chf_oc_param_definitions)
69  case ('CDB')
70  call set_param_pointer(input_definition, chf_cdb_param_definitions)
71  case ('CHD')
72  call set_param_pointer(input_definition, chf_chd_param_definitions)
73  case ('FLW')
74  call set_param_pointer(input_definition, chf_flw_param_definitions)
75  case ('PCP')
76  call set_param_pointer(input_definition, chf_pcp_param_definitions)
77  case ('EVP')
78  call set_param_pointer(input_definition, chf_evp_param_definitions)
79  case ('STO')
80  call set_param_pointer(input_definition, chf_sto_param_definitions)
81  case ('ZDG')
82  call set_param_pointer(input_definition, chf_zdg_param_definitions)
83  case default
84  end select
85  return
86  end function chf_param_definitions
87 
88  function chf_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, chf_nam_aggregate_definitions)
95  case ('DISV1D')
97  case ('CXS')
98  call set_param_pointer(input_definition, chf_cxs_aggregate_definitions)
99  case ('DFW')
100  call set_param_pointer(input_definition, chf_dfw_aggregate_definitions)
101  case ('IC')
102  call set_param_pointer(input_definition, chf_ic_aggregate_definitions)
103  case ('OC')
104  call set_param_pointer(input_definition, chf_oc_aggregate_definitions)
105  case ('CDB')
106  call set_param_pointer(input_definition, chf_cdb_aggregate_definitions)
107  case ('CHD')
108  call set_param_pointer(input_definition, chf_chd_aggregate_definitions)
109  case ('FLW')
110  call set_param_pointer(input_definition, chf_flw_aggregate_definitions)
111  case ('PCP')
112  call set_param_pointer(input_definition, chf_pcp_aggregate_definitions)
113  case ('EVP')
114  call set_param_pointer(input_definition, chf_evp_aggregate_definitions)
115  case ('STO')
116  call set_param_pointer(input_definition, chf_sto_aggregate_definitions)
117  case ('ZDG')
118  call set_param_pointer(input_definition, chf_zdg_aggregate_definitions)
119  case default
120  end select
121  return
122  end function chf_aggregate_definitions
123 
124  function chf_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, chf_nam_block_definitions)
131  case ('DISV1D')
132  call set_block_pointer(input_definition, chf_disv1d_block_definitions)
133  case ('CXS')
134  call set_block_pointer(input_definition, chf_cxs_block_definitions)
135  case ('DFW')
136  call set_block_pointer(input_definition, chf_dfw_block_definitions)
137  case ('IC')
138  call set_block_pointer(input_definition, chf_ic_block_definitions)
139  case ('OC')
140  call set_block_pointer(input_definition, chf_oc_block_definitions)
141  case ('CDB')
142  call set_block_pointer(input_definition, chf_cdb_block_definitions)
143  case ('CHD')
144  call set_block_pointer(input_definition, chf_chd_block_definitions)
145  case ('FLW')
146  call set_block_pointer(input_definition, chf_flw_block_definitions)
147  case ('PCP')
148  call set_block_pointer(input_definition, chf_pcp_block_definitions)
149  case ('EVP')
150  call set_block_pointer(input_definition, chf_evp_block_definitions)
151  case ('STO')
152  call set_block_pointer(input_definition, chf_sto_block_definitions)
153  case ('ZDG')
154  call set_block_pointer(input_definition, chf_zdg_block_definitions)
155  case default
156  end select
157  return
158  end function chf_block_definitions
159 
160  function chf_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 = chf_nam_multi_package
166  case ('DISV1D')
167  multi_package = chf_disv1d_multi_package
168  case ('CXS')
169  multi_package = chf_cxs_multi_package
170  case ('DFW')
171  multi_package = chf_dfw_multi_package
172  case ('IC')
173  multi_package = chf_ic_multi_package
174  case ('OC')
175  multi_package = chf_oc_multi_package
176  case ('CDB')
177  multi_package = chf_cdb_multi_package
178  case ('CHD')
179  multi_package = chf_chd_multi_package
180  case ('FLW')
181  multi_package = chf_flw_multi_package
182  case ('PCP')
183  multi_package = chf_pcp_multi_package
184  case ('EVP')
185  multi_package = chf_evp_multi_package
186  case ('STO')
187  multi_package = chf_sto_multi_package
188  case ('ZDG')
189  multi_package = chf_zdg_multi_package
190  case default
191  call store_error('Idm selector subcomponent not found; '//&
192  &'component="CHF"'//&
193  &', subcomponent="'//trim(subcomponent)//'".', .true.)
194  end select
195  return
196  end function chf_idm_multi_package
197 
198  function chf_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 = chf_nam_is_advanced
204  case ('DISV1D')
205  is_advanced = chf_disv1d_is_advanced
206  case ('CXS')
207  is_advanced = chf_cxs_is_advanced
208  case ('DFW')
209  is_advanced = chf_dfw_is_advanced
210  case ('IC')
211  is_advanced = chf_ic_is_advanced
212  case ('OC')
213  is_advanced = chf_oc_is_advanced
214  case ('CDB')
215  is_advanced = chf_cdb_is_advanced
216  case ('CHD')
217  is_advanced = chf_chd_is_advanced
218  case ('FLW')
219  is_advanced = chf_flw_is_advanced
220  case ('PCP')
221  is_advanced = chf_pcp_is_advanced
222  case ('EVP')
223  is_advanced = chf_evp_is_advanced
224  case ('STO')
225  is_advanced = chf_sto_is_advanced
226  case ('ZDG')
227  is_advanced = chf_zdg_is_advanced
228  case default
229  call store_error('Idm selector subcomponent not found; '//&
230  &'component="CHF"'//&
231  &', subcomponent="'//trim(subcomponent)//'".', .true.)
232  end select
233  return
234  end function chf_idm_is_advanced
235 
236  function chf_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, chf_nam_subpackages)
242  case ('DISV1D')
243  call set_subpkg_pointer(subpackages, chf_disv1d_subpackages)
244  case ('CXS')
245  call set_subpkg_pointer(subpackages, chf_cxs_subpackages)
246  case ('DFW')
247  call set_subpkg_pointer(subpackages, chf_dfw_subpackages)
248  case ('IC')
249  call set_subpkg_pointer(subpackages, chf_ic_subpackages)
250  case ('OC')
251  call set_subpkg_pointer(subpackages, chf_oc_subpackages)
252  case ('CDB')
253  call set_subpkg_pointer(subpackages, chf_cdb_subpackages)
254  case ('CHD')
255  call set_subpkg_pointer(subpackages, chf_chd_subpackages)
256  case ('FLW')
257  call set_subpkg_pointer(subpackages, chf_flw_subpackages)
258  case ('PCP')
259  call set_subpkg_pointer(subpackages, chf_pcp_subpackages)
260  case ('EVP')
261  call set_subpkg_pointer(subpackages, chf_evp_subpackages)
262  case ('STO')
263  call set_subpkg_pointer(subpackages, chf_sto_subpackages)
264  case ('ZDG')
265  call set_subpkg_pointer(subpackages, chf_zdg_subpackages)
266  case default
267  end select
268  return
269  end function chf_idm_subpackages
270 
271  function chf_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 ('DISV1D')
279  integrated = .true.
280  case ('CXS')
281  integrated = .true.
282  case ('DFW')
283  integrated = .true.
284  case ('IC')
285  integrated = .true.
286  case ('OC')
287  integrated = .true.
288  case ('CDB')
289  integrated = .true.
290  case ('CHD')
291  integrated = .true.
292  case ('FLW')
293  integrated = .true.
294  case ('PCP')
295  integrated = .true.
296  case ('EVP')
297  integrated = .true.
298  case ('STO')
299  integrated = .true.
300  case ('ZDG')
301  integrated = .true.
302  case default
303  end select
304  return
305  end function chf_idm_integrated
306 
307 end module idmchfdfnselectormodule
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_aggregate_definitions
Definition: chf-cdbidm.f90:366
logical, public chf_cdb_multi_package
Definition: chf-cdbidm.f90:33
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_param_definitions
Definition: chf-cdbidm.f90:327
logical, public chf_cdb_is_advanced
Definition: chf-cdbidm.f90:34
type(inputblockdefinitiontype), dimension(*), parameter, public chf_cdb_block_definitions
Definition: chf-cdbidm.f90:372
character(len=16), dimension(*), parameter, public chf_cdb_subpackages
Definition: chf-cdbidm.f90:36
character(len=16), dimension(*), parameter, public chf_chd_subpackages
Definition: chf-chdidm.f90:39
logical, public chf_chd_is_advanced
Definition: chf-chdidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public chf_chd_aggregate_definitions
Definition: chf-chdidm.f90:429
logical, public chf_chd_multi_package
Definition: chf-chdidm.f90:36
type(inputblockdefinitiontype), dimension(*), parameter, public chf_chd_block_definitions
Definition: chf-chdidm.f90:435
type(inputparamdefinitiontype), dimension(*), parameter, public chf_chd_param_definitions
Definition: chf-chdidm.f90:387
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_param_definitions
Definition: chf-cxsidm.f90:207
logical, public chf_cxs_multi_package
Definition: chf-cxsidm.f90:27
logical, public chf_cxs_is_advanced
Definition: chf-cxsidm.f90:28
character(len=16), dimension(*), parameter, public chf_cxs_subpackages
Definition: chf-cxsidm.f90:30
type(inputblockdefinitiontype), dimension(*), parameter, public chf_cxs_block_definitions
Definition: chf-cxsidm.f90:266
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_aggregate_definitions
Definition: chf-cxsidm.f90:259
type(inputblockdefinitiontype), dimension(*), parameter, public chf_dfw_block_definitions
Definition: chf-dfwidm.f90:348
logical, public chf_dfw_is_advanced
Definition: chf-dfwidm.f90:33
type(inputparamdefinitiontype), dimension(*), parameter, public chf_dfw_param_definitions
Definition: chf-dfwidm.f90:307
character(len=16), dimension(*), parameter, public chf_dfw_subpackages
Definition: chf-dfwidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public chf_dfw_aggregate_definitions
Definition: chf-dfwidm.f90:326
logical, public chf_dfw_multi_package
Definition: chf-dfwidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public chf_disv1d_param_definitions
logical, public chf_disv1d_multi_package
type(inputparamdefinitiontype), dimension(*), parameter, public chf_disv1d_aggregate_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public chf_disv1d_block_definitions
logical, public chf_disv1d_is_advanced
character(len=16), dimension(*), parameter, public chf_disv1d_subpackages
type(inputblockdefinitiontype), dimension(*), parameter, public chf_evp_block_definitions
Definition: chf-evpidm.f90:435
logical, public chf_evp_is_advanced
Definition: chf-evpidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public chf_evp_aggregate_definitions
Definition: chf-evpidm.f90:429
type(inputparamdefinitiontype), dimension(*), parameter, public chf_evp_param_definitions
Definition: chf-evpidm.f90:387
logical, public chf_evp_multi_package
Definition: chf-evpidm.f90:36
character(len=16), dimension(*), parameter, public chf_evp_subpackages
Definition: chf-evpidm.f90:39
type(inputblockdefinitiontype), dimension(*), parameter, public chf_flw_block_definitions
Definition: chf-flwidm.f90:435
logical, public chf_flw_multi_package
Definition: chf-flwidm.f90:36
type(inputparamdefinitiontype), dimension(*), parameter, public chf_flw_param_definitions
Definition: chf-flwidm.f90:387
logical, public chf_flw_is_advanced
Definition: chf-flwidm.f90:37
character(len=16), dimension(*), parameter, public chf_flw_subpackages
Definition: chf-flwidm.f90:39
type(inputparamdefinitiontype), dimension(*), parameter, public chf_flw_aggregate_definitions
Definition: chf-flwidm.f90:429
logical, public chf_ic_multi_package
Definition: chf-icidm.f90:20
type(inputblockdefinitiontype), dimension(*), parameter, public chf_ic_block_definitions
Definition: chf-icidm.f90:96
character(len=16), dimension(*), parameter, public chf_ic_subpackages
Definition: chf-icidm.f90:23
type(inputparamdefinitiontype), dimension(*), parameter, public chf_ic_param_definitions
Definition: chf-icidm.f90:67
logical, public chf_ic_is_advanced
Definition: chf-icidm.f90:21
type(inputparamdefinitiontype), dimension(*), parameter, public chf_ic_aggregate_definitions
Definition: chf-icidm.f90:74
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_aggregate_definitions
Definition: chf-namidm.f90:261
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_param_definitions
Definition: chf-namidm.f90:227
logical, public chf_nam_is_advanced
Definition: chf-namidm.f90:29
character(len=16), dimension(*), parameter, public chf_nam_subpackages
Definition: chf-namidm.f90:31
type(inputblockdefinitiontype), dimension(*), parameter, public chf_nam_block_definitions
Definition: chf-namidm.f90:267
logical, public chf_nam_multi_package
Definition: chf-namidm.f90:28
logical, public chf_oc_multi_package
Definition: chf-ocidm.f90:48
type(inputparamdefinitiontype), dimension(*), parameter, public chf_oc_param_definitions
Definition: chf-ocidm.f90:627
type(inputparamdefinitiontype), dimension(*), parameter, public chf_oc_aggregate_definitions
Definition: chf-ocidm.f90:681
character(len=16), dimension(*), parameter, public chf_oc_subpackages
Definition: chf-ocidm.f90:51
logical, public chf_oc_is_advanced
Definition: chf-ocidm.f90:49
type(inputblockdefinitiontype), dimension(*), parameter, public chf_oc_block_definitions
Definition: chf-ocidm.f90:687
type(inputparamdefinitiontype), dimension(*), parameter, public chf_pcp_aggregate_definitions
Definition: chf-pcpidm.f90:429
type(inputparamdefinitiontype), dimension(*), parameter, public chf_pcp_param_definitions
Definition: chf-pcpidm.f90:387
type(inputblockdefinitiontype), dimension(*), parameter, public chf_pcp_block_definitions
Definition: chf-pcpidm.f90:435
logical, public chf_pcp_is_advanced
Definition: chf-pcpidm.f90:37
character(len=16), dimension(*), parameter, public chf_pcp_subpackages
Definition: chf-pcpidm.f90:39
logical, public chf_pcp_multi_package
Definition: chf-pcpidm.f90:36
type(inputblockdefinitiontype), dimension(*), parameter, public chf_sto_block_definitions
Definition: chf-stoidm.f90:138
logical, public chf_sto_is_advanced
Definition: chf-stoidm.f90:23
logical, public chf_sto_multi_package
Definition: chf-stoidm.f90:22
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_param_definitions
Definition: chf-stoidm.f90:107
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_aggregate_definitions
Definition: chf-stoidm.f90:116
character(len=16), dimension(*), parameter, public chf_sto_subpackages
Definition: chf-stoidm.f90:25
logical, public chf_zdg_multi_package
Definition: chf-zdgidm.f90:38
type(inputblockdefinitiontype), dimension(*), parameter, public chf_zdg_block_definitions
Definition: chf-zdgidm.f90:477
character(len=16), dimension(*), parameter, public chf_zdg_subpackages
Definition: chf-zdgidm.f90:41
logical, public chf_zdg_is_advanced
Definition: chf-zdgidm.f90:39
type(inputparamdefinitiontype), dimension(*), parameter, public chf_zdg_aggregate_definitions
Definition: chf-zdgidm.f90:471
type(inputparamdefinitiontype), dimension(*), parameter, public chf_zdg_param_definitions
Definition: chf-zdgidm.f90:427
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
subroutine set_block_pointer(input_dfn, input_dfn_target)
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)
subroutine set_param_pointer(input_dfn, input_dfn_target)
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)
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.