MODFLOW 6  version 6.7.0.dev3
USGS Modular Hydrologic Model
IdmSwfDfnSelector.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
23 
24  implicit none
25  private
26  public :: swf_param_definitions
28  public :: swf_block_definitions
29  public :: swf_idm_multi_package
30  public :: swf_idm_subpackages
31  public :: swf_idm_integrated
32 
33 contains
34 
35  subroutine set_param_pointer(input_dfn, input_dfn_target)
36  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
37  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
38  input_dfn => input_dfn_target
39  end subroutine set_param_pointer
40 
41  subroutine set_block_pointer(input_dfn, input_dfn_target)
42  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
43  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
44  input_dfn => input_dfn_target
45  end subroutine set_block_pointer
46 
47  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
48  character(len=16), dimension(:), pointer :: subpkg_list
49  character(len=16), dimension(:), target :: subpkg_list_target
50  subpkg_list => subpkg_list_target
51  end subroutine set_subpkg_pointer
52 
53  function swf_param_definitions(subcomponent) result(input_definition)
54  character(len=*), intent(in) :: subcomponent
55  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
56  nullify (input_definition)
57  select case (subcomponent)
58  case ('NAM')
59  call set_param_pointer(input_definition, swf_nam_param_definitions)
60  case ('DISV1D')
61  call set_param_pointer(input_definition, swf_disv1d_param_definitions)
62  case ('DIS2D')
63  call set_param_pointer(input_definition, swf_dis2d_param_definitions)
64  case ('DISV2D')
65  call set_param_pointer(input_definition, swf_disv2d_param_definitions)
66  case ('CXS')
67  call set_param_pointer(input_definition, swf_cxs_param_definitions)
68  case ('DFW')
69  call set_param_pointer(input_definition, swf_dfw_param_definitions)
70  case ('IC')
71  call set_param_pointer(input_definition, swf_ic_param_definitions)
72  case ('OC')
73  call set_param_pointer(input_definition, swf_oc_param_definitions)
74  case ('CDB')
75  call set_param_pointer(input_definition, swf_cdb_param_definitions)
76  case ('CHD')
77  call set_param_pointer(input_definition, swf_chd_param_definitions)
78  case ('FLW')
79  call set_param_pointer(input_definition, swf_flw_param_definitions)
80  case ('PCP')
81  call set_param_pointer(input_definition, swf_pcp_param_definitions)
82  case ('EVP')
83  call set_param_pointer(input_definition, swf_evp_param_definitions)
84  case ('STO')
85  call set_param_pointer(input_definition, swf_sto_param_definitions)
86  case ('ZDG')
87  call set_param_pointer(input_definition, swf_zdg_param_definitions)
88  case default
89  end select
90  return
91  end function swf_param_definitions
92 
93  function swf_aggregate_definitions(subcomponent) result(input_definition)
94  character(len=*), intent(in) :: subcomponent
95  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
96  nullify (input_definition)
97  select case (subcomponent)
98  case ('NAM')
99  call set_param_pointer(input_definition, swf_nam_aggregate_definitions)
100  case ('DISV1D')
102  case ('DIS2D')
103  call set_param_pointer(input_definition, swf_dis2d_aggregate_definitions)
104  case ('DISV2D')
106  case ('CXS')
107  call set_param_pointer(input_definition, swf_cxs_aggregate_definitions)
108  case ('DFW')
109  call set_param_pointer(input_definition, swf_dfw_aggregate_definitions)
110  case ('IC')
111  call set_param_pointer(input_definition, swf_ic_aggregate_definitions)
112  case ('OC')
113  call set_param_pointer(input_definition, swf_oc_aggregate_definitions)
114  case ('CDB')
115  call set_param_pointer(input_definition, swf_cdb_aggregate_definitions)
116  case ('CHD')
117  call set_param_pointer(input_definition, swf_chd_aggregate_definitions)
118  case ('FLW')
119  call set_param_pointer(input_definition, swf_flw_aggregate_definitions)
120  case ('PCP')
121  call set_param_pointer(input_definition, swf_pcp_aggregate_definitions)
122  case ('EVP')
123  call set_param_pointer(input_definition, swf_evp_aggregate_definitions)
124  case ('STO')
125  call set_param_pointer(input_definition, swf_sto_aggregate_definitions)
126  case ('ZDG')
127  call set_param_pointer(input_definition, swf_zdg_aggregate_definitions)
128  case default
129  end select
130  return
131  end function swf_aggregate_definitions
132 
133  function swf_block_definitions(subcomponent) result(input_definition)
134  character(len=*), intent(in) :: subcomponent
135  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
136  nullify (input_definition)
137  select case (subcomponent)
138  case ('NAM')
139  call set_block_pointer(input_definition, swf_nam_block_definitions)
140  case ('DISV1D')
141  call set_block_pointer(input_definition, swf_disv1d_block_definitions)
142  case ('DIS2D')
143  call set_block_pointer(input_definition, swf_dis2d_block_definitions)
144  case ('DISV2D')
145  call set_block_pointer(input_definition, swf_disv2d_block_definitions)
146  case ('CXS')
147  call set_block_pointer(input_definition, swf_cxs_block_definitions)
148  case ('DFW')
149  call set_block_pointer(input_definition, swf_dfw_block_definitions)
150  case ('IC')
151  call set_block_pointer(input_definition, swf_ic_block_definitions)
152  case ('OC')
153  call set_block_pointer(input_definition, swf_oc_block_definitions)
154  case ('CDB')
155  call set_block_pointer(input_definition, swf_cdb_block_definitions)
156  case ('CHD')
157  call set_block_pointer(input_definition, swf_chd_block_definitions)
158  case ('FLW')
159  call set_block_pointer(input_definition, swf_flw_block_definitions)
160  case ('PCP')
161  call set_block_pointer(input_definition, swf_pcp_block_definitions)
162  case ('EVP')
163  call set_block_pointer(input_definition, swf_evp_block_definitions)
164  case ('STO')
165  call set_block_pointer(input_definition, swf_sto_block_definitions)
166  case ('ZDG')
167  call set_block_pointer(input_definition, swf_zdg_block_definitions)
168  case default
169  end select
170  return
171  end function swf_block_definitions
172 
173  function swf_idm_multi_package(subcomponent) result(multi_package)
174  character(len=*), intent(in) :: subcomponent
175  logical :: multi_package
176  select case (subcomponent)
177  case ('NAM')
178  multi_package = swf_nam_multi_package
179  case ('DISV1D')
180  multi_package = swf_disv1d_multi_package
181  case ('DIS2D')
182  multi_package = swf_dis2d_multi_package
183  case ('DISV2D')
184  multi_package = swf_disv2d_multi_package
185  case ('CXS')
186  multi_package = swf_cxs_multi_package
187  case ('DFW')
188  multi_package = swf_dfw_multi_package
189  case ('IC')
190  multi_package = swf_ic_multi_package
191  case ('OC')
192  multi_package = swf_oc_multi_package
193  case ('CDB')
194  multi_package = swf_cdb_multi_package
195  case ('CHD')
196  multi_package = swf_chd_multi_package
197  case ('FLW')
198  multi_package = swf_flw_multi_package
199  case ('PCP')
200  multi_package = swf_pcp_multi_package
201  case ('EVP')
202  multi_package = swf_evp_multi_package
203  case ('STO')
204  multi_package = swf_sto_multi_package
205  case ('ZDG')
206  multi_package = swf_zdg_multi_package
207  case default
208  call store_error('Idm selector subcomponent not found; '//&
209  &'component="SWF"'//&
210  &', subcomponent="'//trim(subcomponent)//'".', .true.)
211  end select
212  return
213  end function swf_idm_multi_package
214 
215  function swf_idm_subpackages(subcomponent) result(subpackages)
216  character(len=*), intent(in) :: subcomponent
217  character(len=16), dimension(:), pointer :: subpackages
218  select case (subcomponent)
219  case ('NAM')
220  call set_subpkg_pointer(subpackages, swf_nam_subpackages)
221  case ('DISV1D')
222  call set_subpkg_pointer(subpackages, swf_disv1d_subpackages)
223  case ('DIS2D')
224  call set_subpkg_pointer(subpackages, swf_dis2d_subpackages)
225  case ('DISV2D')
226  call set_subpkg_pointer(subpackages, swf_disv2d_subpackages)
227  case ('CXS')
228  call set_subpkg_pointer(subpackages, swf_cxs_subpackages)
229  case ('DFW')
230  call set_subpkg_pointer(subpackages, swf_dfw_subpackages)
231  case ('IC')
232  call set_subpkg_pointer(subpackages, swf_ic_subpackages)
233  case ('OC')
234  call set_subpkg_pointer(subpackages, swf_oc_subpackages)
235  case ('CDB')
236  call set_subpkg_pointer(subpackages, swf_cdb_subpackages)
237  case ('CHD')
238  call set_subpkg_pointer(subpackages, swf_chd_subpackages)
239  case ('FLW')
240  call set_subpkg_pointer(subpackages, swf_flw_subpackages)
241  case ('PCP')
242  call set_subpkg_pointer(subpackages, swf_pcp_subpackages)
243  case ('EVP')
244  call set_subpkg_pointer(subpackages, swf_evp_subpackages)
245  case ('STO')
246  call set_subpkg_pointer(subpackages, swf_sto_subpackages)
247  case ('ZDG')
248  call set_subpkg_pointer(subpackages, swf_zdg_subpackages)
249  case default
250  end select
251  return
252  end function swf_idm_subpackages
253 
254  function swf_idm_integrated(subcomponent) result(integrated)
255  character(len=*), intent(in) :: subcomponent
256  logical :: integrated
257  integrated = .false.
258  select case (subcomponent)
259  case ('NAM')
260  integrated = .true.
261  case ('DISV1D')
262  integrated = .true.
263  case ('DIS2D')
264  integrated = .true.
265  case ('DISV2D')
266  integrated = .true.
267  case ('CXS')
268  integrated = .true.
269  case ('DFW')
270  integrated = .true.
271  case ('IC')
272  integrated = .true.
273  case ('OC')
274  integrated = .true.
275  case ('CDB')
276  integrated = .true.
277  case ('CHD')
278  integrated = .true.
279  case ('FLW')
280  integrated = .true.
281  case ('PCP')
282  integrated = .true.
283  case ('EVP')
284  integrated = .true.
285  case ('STO')
286  integrated = .true.
287  case ('ZDG')
288  integrated = .true.
289  case default
290  end select
291  return
292  end function swf_idm_integrated
293 
294 end module idmswfdfnselectormodule
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
character(len=16) function, dimension(:), pointer, public swf_idm_subpackages(subcomponent)
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
subroutine set_param_pointer(input_dfn, input_dfn_target)
subroutine set_block_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public swf_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public swf_param_definitions(subcomponent)
logical function, public swf_idm_integrated(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public swf_block_definitions(subcomponent)
logical function, public swf_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
logical, public swf_cdb_multi_package
Definition: swf-cdbidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cdb_param_definitions
Definition: swf-cdbidm.f90:325
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cdb_aggregate_definitions
Definition: swf-cdbidm.f90:364
type(inputblockdefinitiontype), dimension(*), parameter, public swf_cdb_block_definitions
Definition: swf-cdbidm.f90:370
character(len=16), dimension(*), parameter, public swf_cdb_subpackages
Definition: swf-cdbidm.f90:34
type(inputblockdefinitiontype), dimension(*), parameter, public swf_chd_block_definitions
Definition: swf-chdidm.f90:433
character(len=16), dimension(*), parameter, public swf_chd_subpackages
Definition: swf-chdidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public swf_chd_param_definitions
Definition: swf-chdidm.f90:385
type(inputparamdefinitiontype), dimension(*), parameter, public swf_chd_aggregate_definitions
Definition: swf-chdidm.f90:427
logical, public swf_chd_multi_package
Definition: swf-chdidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cxs_aggregate_definitions
Definition: swf-cxsidm.f90:236
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cxs_param_definitions
Definition: swf-cxsidm.f90:185
type(inputblockdefinitiontype), dimension(*), parameter, public swf_cxs_block_definitions
Definition: swf-cxsidm.f90:243
character(len=16), dimension(*), parameter, public swf_cxs_subpackages
Definition: swf-cxsidm.f90:27
logical, public swf_cxs_multi_package
Definition: swf-cxsidm.f90:25
logical, public swf_dfw_multi_package
Definition: swf-dfwidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public swf_dfw_param_definitions
Definition: swf-dfwidm.f90:305
type(inputparamdefinitiontype), dimension(*), parameter, public swf_dfw_aggregate_definitions
Definition: swf-dfwidm.f90:324
character(len=16), dimension(*), parameter, public swf_dfw_subpackages
Definition: swf-dfwidm.f90:33
type(inputblockdefinitiontype), dimension(*), parameter, public swf_dfw_block_definitions
Definition: swf-dfwidm.f90:346
type(inputblockdefinitiontype), dimension(*), parameter, public swf_dis2d_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public swf_dis2d_param_definitions
character(len=16), dimension(*), parameter, public swf_dis2d_subpackages
type(inputparamdefinitiontype), dimension(*), parameter, public swf_dis2d_aggregate_definitions
logical, public swf_dis2d_multi_package
character(len=16), dimension(*), parameter, public swf_disv1d_subpackages
type(inputparamdefinitiontype), dimension(*), parameter, public swf_disv1d_aggregate_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public swf_disv1d_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public swf_disv1d_param_definitions
logical, public swf_disv1d_multi_package
character(len=16), dimension(*), parameter, public swf_disv2d_subpackages
logical, public swf_disv2d_multi_package
type(inputparamdefinitiontype), dimension(*), parameter, public swf_disv2d_aggregate_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public swf_disv2d_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public swf_disv2d_param_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public swf_evp_param_definitions
Definition: swf-evpidm.f90:385
character(len=16), dimension(*), parameter, public swf_evp_subpackages
Definition: swf-evpidm.f90:37
type(inputblockdefinitiontype), dimension(*), parameter, public swf_evp_block_definitions
Definition: swf-evpidm.f90:433
logical, public swf_evp_multi_package
Definition: swf-evpidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public swf_evp_aggregate_definitions
Definition: swf-evpidm.f90:427
type(inputblockdefinitiontype), dimension(*), parameter, public swf_flw_block_definitions
Definition: swf-flwidm.f90:433
type(inputparamdefinitiontype), dimension(*), parameter, public swf_flw_aggregate_definitions
Definition: swf-flwidm.f90:427
logical, public swf_flw_multi_package
Definition: swf-flwidm.f90:35
character(len=16), dimension(*), parameter, public swf_flw_subpackages
Definition: swf-flwidm.f90:37
type(inputparamdefinitiontype), dimension(*), parameter, public swf_flw_param_definitions
Definition: swf-flwidm.f90:385
character(len=16), dimension(*), parameter, public swf_ic_subpackages
Definition: swf-icidm.f90:21
type(inputblockdefinitiontype), dimension(*), parameter, public swf_ic_block_definitions
Definition: swf-icidm.f90:94
type(inputparamdefinitiontype), dimension(*), parameter, public swf_ic_aggregate_definitions
Definition: swf-icidm.f90:72
logical, public swf_ic_multi_package
Definition: swf-icidm.f90:19
type(inputparamdefinitiontype), dimension(*), parameter, public swf_ic_param_definitions
Definition: swf-icidm.f90:65
logical, public swf_nam_multi_package
Definition: swf-namidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public swf_nam_block_definitions
Definition: swf-namidm.f90:265
type(inputparamdefinitiontype), dimension(*), parameter, public swf_nam_param_definitions
Definition: swf-namidm.f90:225
type(inputparamdefinitiontype), dimension(*), parameter, public swf_nam_aggregate_definitions
Definition: swf-namidm.f90:259
character(len=16), dimension(*), parameter, public swf_nam_subpackages
Definition: swf-namidm.f90:29
character(len=16), dimension(*), parameter, public swf_oc_subpackages
Definition: swf-ocidm.f90:50
logical, public swf_oc_multi_package
Definition: swf-ocidm.f90:48
type(inputparamdefinitiontype), dimension(*), parameter, public swf_oc_aggregate_definitions
Definition: swf-ocidm.f90:681
type(inputparamdefinitiontype), dimension(*), parameter, public swf_oc_param_definitions
Definition: swf-ocidm.f90:645
type(inputblockdefinitiontype), dimension(*), parameter, public swf_oc_block_definitions
Definition: swf-ocidm.f90:703
character(len=16), dimension(*), parameter, public swf_pcp_subpackages
Definition: swf-pcpidm.f90:37
logical, public swf_pcp_multi_package
Definition: swf-pcpidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public swf_pcp_aggregate_definitions
Definition: swf-pcpidm.f90:427
type(inputblockdefinitiontype), dimension(*), parameter, public swf_pcp_block_definitions
Definition: swf-pcpidm.f90:433
type(inputparamdefinitiontype), dimension(*), parameter, public swf_pcp_param_definitions
Definition: swf-pcpidm.f90:385
type(inputblockdefinitiontype), dimension(*), parameter, public swf_sto_block_definitions
Definition: swf-stoidm.f90:136
logical, public swf_sto_multi_package
Definition: swf-stoidm.f90:21
character(len=16), dimension(*), parameter, public swf_sto_subpackages
Definition: swf-stoidm.f90:23
type(inputparamdefinitiontype), dimension(*), parameter, public swf_sto_aggregate_definitions
Definition: swf-stoidm.f90:114
type(inputparamdefinitiontype), dimension(*), parameter, public swf_sto_param_definitions
Definition: swf-stoidm.f90:105
type(inputblockdefinitiontype), dimension(*), parameter, public swf_zdg_block_definitions
Definition: swf-zdgidm.f90:475
type(inputparamdefinitiontype), dimension(*), parameter, public swf_zdg_param_definitions
Definition: swf-zdgidm.f90:425
type(inputparamdefinitiontype), dimension(*), parameter, public swf_zdg_aggregate_definitions
Definition: swf-zdgidm.f90:469
character(len=16), dimension(*), parameter, public swf_zdg_subpackages
Definition: swf-zdgidm.f90:39
logical, public swf_zdg_multi_package
Definition: swf-zdgidm.f90:37