MODFLOW 6  version 6.7.0.dev3
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_subpackages
29  public :: chf_idm_integrated
30 
31 contains
32 
33  subroutine set_param_pointer(input_dfn, input_dfn_target)
34  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
35  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
36  input_dfn => input_dfn_target
37  end subroutine set_param_pointer
38 
39  subroutine set_block_pointer(input_dfn, input_dfn_target)
40  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
41  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
42  input_dfn => input_dfn_target
43  end subroutine set_block_pointer
44 
45  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
46  character(len=16), dimension(:), pointer :: subpkg_list
47  character(len=16), dimension(:), target :: subpkg_list_target
48  subpkg_list => subpkg_list_target
49  end subroutine set_subpkg_pointer
50 
51  function chf_param_definitions(subcomponent) result(input_definition)
52  character(len=*), intent(in) :: subcomponent
53  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
54  nullify (input_definition)
55  select case (subcomponent)
56  case ('NAM')
57  call set_param_pointer(input_definition, chf_nam_param_definitions)
58  case ('DISV1D')
59  call set_param_pointer(input_definition, chf_disv1d_param_definitions)
60  case ('CXS')
61  call set_param_pointer(input_definition, chf_cxs_param_definitions)
62  case ('DFW')
63  call set_param_pointer(input_definition, chf_dfw_param_definitions)
64  case ('IC')
65  call set_param_pointer(input_definition, chf_ic_param_definitions)
66  case ('OC')
67  call set_param_pointer(input_definition, chf_oc_param_definitions)
68  case ('CDB')
69  call set_param_pointer(input_definition, chf_cdb_param_definitions)
70  case ('CHD')
71  call set_param_pointer(input_definition, chf_chd_param_definitions)
72  case ('FLW')
73  call set_param_pointer(input_definition, chf_flw_param_definitions)
74  case ('PCP')
75  call set_param_pointer(input_definition, chf_pcp_param_definitions)
76  case ('EVP')
77  call set_param_pointer(input_definition, chf_evp_param_definitions)
78  case ('STO')
79  call set_param_pointer(input_definition, chf_sto_param_definitions)
80  case ('ZDG')
81  call set_param_pointer(input_definition, chf_zdg_param_definitions)
82  case default
83  end select
84  return
85  end function chf_param_definitions
86 
87  function chf_aggregate_definitions(subcomponent) result(input_definition)
88  character(len=*), intent(in) :: subcomponent
89  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
90  nullify (input_definition)
91  select case (subcomponent)
92  case ('NAM')
93  call set_param_pointer(input_definition, chf_nam_aggregate_definitions)
94  case ('DISV1D')
96  case ('CXS')
97  call set_param_pointer(input_definition, chf_cxs_aggregate_definitions)
98  case ('DFW')
99  call set_param_pointer(input_definition, chf_dfw_aggregate_definitions)
100  case ('IC')
101  call set_param_pointer(input_definition, chf_ic_aggregate_definitions)
102  case ('OC')
103  call set_param_pointer(input_definition, chf_oc_aggregate_definitions)
104  case ('CDB')
105  call set_param_pointer(input_definition, chf_cdb_aggregate_definitions)
106  case ('CHD')
107  call set_param_pointer(input_definition, chf_chd_aggregate_definitions)
108  case ('FLW')
109  call set_param_pointer(input_definition, chf_flw_aggregate_definitions)
110  case ('PCP')
111  call set_param_pointer(input_definition, chf_pcp_aggregate_definitions)
112  case ('EVP')
113  call set_param_pointer(input_definition, chf_evp_aggregate_definitions)
114  case ('STO')
115  call set_param_pointer(input_definition, chf_sto_aggregate_definitions)
116  case ('ZDG')
117  call set_param_pointer(input_definition, chf_zdg_aggregate_definitions)
118  case default
119  end select
120  return
121  end function chf_aggregate_definitions
122 
123  function chf_block_definitions(subcomponent) result(input_definition)
124  character(len=*), intent(in) :: subcomponent
125  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
126  nullify (input_definition)
127  select case (subcomponent)
128  case ('NAM')
129  call set_block_pointer(input_definition, chf_nam_block_definitions)
130  case ('DISV1D')
131  call set_block_pointer(input_definition, chf_disv1d_block_definitions)
132  case ('CXS')
133  call set_block_pointer(input_definition, chf_cxs_block_definitions)
134  case ('DFW')
135  call set_block_pointer(input_definition, chf_dfw_block_definitions)
136  case ('IC')
137  call set_block_pointer(input_definition, chf_ic_block_definitions)
138  case ('OC')
139  call set_block_pointer(input_definition, chf_oc_block_definitions)
140  case ('CDB')
141  call set_block_pointer(input_definition, chf_cdb_block_definitions)
142  case ('CHD')
143  call set_block_pointer(input_definition, chf_chd_block_definitions)
144  case ('FLW')
145  call set_block_pointer(input_definition, chf_flw_block_definitions)
146  case ('PCP')
147  call set_block_pointer(input_definition, chf_pcp_block_definitions)
148  case ('EVP')
149  call set_block_pointer(input_definition, chf_evp_block_definitions)
150  case ('STO')
151  call set_block_pointer(input_definition, chf_sto_block_definitions)
152  case ('ZDG')
153  call set_block_pointer(input_definition, chf_zdg_block_definitions)
154  case default
155  end select
156  return
157  end function chf_block_definitions
158 
159  function chf_idm_multi_package(subcomponent) result(multi_package)
160  character(len=*), intent(in) :: subcomponent
161  logical :: multi_package
162  select case (subcomponent)
163  case ('NAM')
164  multi_package = chf_nam_multi_package
165  case ('DISV1D')
166  multi_package = chf_disv1d_multi_package
167  case ('CXS')
168  multi_package = chf_cxs_multi_package
169  case ('DFW')
170  multi_package = chf_dfw_multi_package
171  case ('IC')
172  multi_package = chf_ic_multi_package
173  case ('OC')
174  multi_package = chf_oc_multi_package
175  case ('CDB')
176  multi_package = chf_cdb_multi_package
177  case ('CHD')
178  multi_package = chf_chd_multi_package
179  case ('FLW')
180  multi_package = chf_flw_multi_package
181  case ('PCP')
182  multi_package = chf_pcp_multi_package
183  case ('EVP')
184  multi_package = chf_evp_multi_package
185  case ('STO')
186  multi_package = chf_sto_multi_package
187  case ('ZDG')
188  multi_package = chf_zdg_multi_package
189  case default
190  call store_error('Idm selector subcomponent not found; '//&
191  &'component="CHF"'//&
192  &', subcomponent="'//trim(subcomponent)//'".', .true.)
193  end select
194  return
195  end function chf_idm_multi_package
196 
197  function chf_idm_subpackages(subcomponent) result(subpackages)
198  character(len=*), intent(in) :: subcomponent
199  character(len=16), dimension(:), pointer :: subpackages
200  select case (subcomponent)
201  case ('NAM')
202  call set_subpkg_pointer(subpackages, chf_nam_subpackages)
203  case ('DISV1D')
204  call set_subpkg_pointer(subpackages, chf_disv1d_subpackages)
205  case ('CXS')
206  call set_subpkg_pointer(subpackages, chf_cxs_subpackages)
207  case ('DFW')
208  call set_subpkg_pointer(subpackages, chf_dfw_subpackages)
209  case ('IC')
210  call set_subpkg_pointer(subpackages, chf_ic_subpackages)
211  case ('OC')
212  call set_subpkg_pointer(subpackages, chf_oc_subpackages)
213  case ('CDB')
214  call set_subpkg_pointer(subpackages, chf_cdb_subpackages)
215  case ('CHD')
216  call set_subpkg_pointer(subpackages, chf_chd_subpackages)
217  case ('FLW')
218  call set_subpkg_pointer(subpackages, chf_flw_subpackages)
219  case ('PCP')
220  call set_subpkg_pointer(subpackages, chf_pcp_subpackages)
221  case ('EVP')
222  call set_subpkg_pointer(subpackages, chf_evp_subpackages)
223  case ('STO')
224  call set_subpkg_pointer(subpackages, chf_sto_subpackages)
225  case ('ZDG')
226  call set_subpkg_pointer(subpackages, chf_zdg_subpackages)
227  case default
228  end select
229  return
230  end function chf_idm_subpackages
231 
232  function chf_idm_integrated(subcomponent) result(integrated)
233  character(len=*), intent(in) :: subcomponent
234  logical :: integrated
235  integrated = .false.
236  select case (subcomponent)
237  case ('NAM')
238  integrated = .true.
239  case ('DISV1D')
240  integrated = .true.
241  case ('CXS')
242  integrated = .true.
243  case ('DFW')
244  integrated = .true.
245  case ('IC')
246  integrated = .true.
247  case ('OC')
248  integrated = .true.
249  case ('CDB')
250  integrated = .true.
251  case ('CHD')
252  integrated = .true.
253  case ('FLW')
254  integrated = .true.
255  case ('PCP')
256  integrated = .true.
257  case ('EVP')
258  integrated = .true.
259  case ('STO')
260  integrated = .true.
261  case ('ZDG')
262  integrated = .true.
263  case default
264  end select
265  return
266  end function chf_idm_integrated
267 
268 end module idmchfdfnselectormodule
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_aggregate_definitions
Definition: chf-cdbidm.f90:364
logical, public chf_cdb_multi_package
Definition: chf-cdbidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_param_definitions
Definition: chf-cdbidm.f90:325
type(inputblockdefinitiontype), dimension(*), parameter, public chf_cdb_block_definitions
Definition: chf-cdbidm.f90:370
character(len=16), dimension(*), parameter, public chf_cdb_subpackages
Definition: chf-cdbidm.f90:34
character(len=16), dimension(*), parameter, public chf_chd_subpackages
Definition: chf-chdidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public chf_chd_aggregate_definitions
Definition: chf-chdidm.f90:427
logical, public chf_chd_multi_package
Definition: chf-chdidm.f90:35
type(inputblockdefinitiontype), dimension(*), parameter, public chf_chd_block_definitions
Definition: chf-chdidm.f90:433
type(inputparamdefinitiontype), dimension(*), parameter, public chf_chd_param_definitions
Definition: chf-chdidm.f90:385
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_param_definitions
Definition: chf-cxsidm.f90:185
logical, public chf_cxs_multi_package
Definition: chf-cxsidm.f90:25
character(len=16), dimension(*), parameter, public chf_cxs_subpackages
Definition: chf-cxsidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public chf_cxs_block_definitions
Definition: chf-cxsidm.f90:243
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_aggregate_definitions
Definition: chf-cxsidm.f90:236
type(inputblockdefinitiontype), dimension(*), parameter, public chf_dfw_block_definitions
Definition: chf-dfwidm.f90:346
type(inputparamdefinitiontype), dimension(*), parameter, public chf_dfw_param_definitions
Definition: chf-dfwidm.f90:305
character(len=16), dimension(*), parameter, public chf_dfw_subpackages
Definition: chf-dfwidm.f90:33
type(inputparamdefinitiontype), dimension(*), parameter, public chf_dfw_aggregate_definitions
Definition: chf-dfwidm.f90:324
logical, public chf_dfw_multi_package
Definition: chf-dfwidm.f90:31
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
character(len=16), dimension(*), parameter, public chf_disv1d_subpackages
type(inputblockdefinitiontype), dimension(*), parameter, public chf_evp_block_definitions
Definition: chf-evpidm.f90:433
type(inputparamdefinitiontype), dimension(*), parameter, public chf_evp_aggregate_definitions
Definition: chf-evpidm.f90:427
type(inputparamdefinitiontype), dimension(*), parameter, public chf_evp_param_definitions
Definition: chf-evpidm.f90:385
logical, public chf_evp_multi_package
Definition: chf-evpidm.f90:35
character(len=16), dimension(*), parameter, public chf_evp_subpackages
Definition: chf-evpidm.f90:37
type(inputblockdefinitiontype), dimension(*), parameter, public chf_flw_block_definitions
Definition: chf-flwidm.f90:433
logical, public chf_flw_multi_package
Definition: chf-flwidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public chf_flw_param_definitions
Definition: chf-flwidm.f90:385
character(len=16), dimension(*), parameter, public chf_flw_subpackages
Definition: chf-flwidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public chf_flw_aggregate_definitions
Definition: chf-flwidm.f90:427
logical, public chf_ic_multi_package
Definition: chf-icidm.f90:19
type(inputblockdefinitiontype), dimension(*), parameter, public chf_ic_block_definitions
Definition: chf-icidm.f90:94
character(len=16), dimension(*), parameter, public chf_ic_subpackages
Definition: chf-icidm.f90:21
type(inputparamdefinitiontype), dimension(*), parameter, public chf_ic_param_definitions
Definition: chf-icidm.f90:65
type(inputparamdefinitiontype), dimension(*), parameter, public chf_ic_aggregate_definitions
Definition: chf-icidm.f90:72
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_aggregate_definitions
Definition: chf-namidm.f90:259
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_param_definitions
Definition: chf-namidm.f90:225
character(len=16), dimension(*), parameter, public chf_nam_subpackages
Definition: chf-namidm.f90:29
type(inputblockdefinitiontype), dimension(*), parameter, public chf_nam_block_definitions
Definition: chf-namidm.f90:265
logical, public chf_nam_multi_package
Definition: chf-namidm.f90:27
logical, public chf_oc_multi_package
Definition: chf-ocidm.f90:48
type(inputparamdefinitiontype), dimension(*), parameter, public chf_oc_param_definitions
Definition: chf-ocidm.f90:645
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:50
type(inputblockdefinitiontype), dimension(*), parameter, public chf_oc_block_definitions
Definition: chf-ocidm.f90:703
type(inputparamdefinitiontype), dimension(*), parameter, public chf_pcp_aggregate_definitions
Definition: chf-pcpidm.f90:427
type(inputparamdefinitiontype), dimension(*), parameter, public chf_pcp_param_definitions
Definition: chf-pcpidm.f90:385
type(inputblockdefinitiontype), dimension(*), parameter, public chf_pcp_block_definitions
Definition: chf-pcpidm.f90:433
character(len=16), dimension(*), parameter, public chf_pcp_subpackages
Definition: chf-pcpidm.f90:37
logical, public chf_pcp_multi_package
Definition: chf-pcpidm.f90:35
type(inputblockdefinitiontype), dimension(*), parameter, public chf_sto_block_definitions
Definition: chf-stoidm.f90:136
logical, public chf_sto_multi_package
Definition: chf-stoidm.f90:21
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_param_definitions
Definition: chf-stoidm.f90:105
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_aggregate_definitions
Definition: chf-stoidm.f90:114
character(len=16), dimension(*), parameter, public chf_sto_subpackages
Definition: chf-stoidm.f90:23
logical, public chf_zdg_multi_package
Definition: chf-zdgidm.f90:37
type(inputblockdefinitiontype), dimension(*), parameter, public chf_zdg_block_definitions
Definition: chf-zdgidm.f90:475
character(len=16), dimension(*), parameter, public chf_zdg_subpackages
Definition: chf-zdgidm.f90:39
type(inputparamdefinitiontype), dimension(*), parameter, public chf_zdg_aggregate_definitions
Definition: chf-zdgidm.f90:469
type(inputparamdefinitiontype), dimension(*), parameter, public chf_zdg_param_definitions
Definition: chf-zdgidm.f90:425
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)
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)
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