MODFLOW 6  version 6.7.0.dev1
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
22 
23  implicit none
24  private
25  public :: swf_param_definitions
27  public :: swf_block_definitions
28  public :: swf_idm_multi_package
29  public :: swf_idm_subpackages
30  public :: swf_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 swf_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, swf_nam_param_definitions)
59  case ('DISV1D')
60  call set_param_pointer(input_definition, swf_disv1d_param_definitions)
61  case ('DIS2D')
62  call set_param_pointer(input_definition, swf_dis2d_param_definitions)
63  case ('DISV2D')
64  call set_param_pointer(input_definition, swf_disv2d_param_definitions)
65  case ('CXS')
66  call set_param_pointer(input_definition, swf_cxs_param_definitions)
67  case ('DFW')
68  call set_param_pointer(input_definition, swf_dfw_param_definitions)
69  case ('IC')
70  call set_param_pointer(input_definition, swf_ic_param_definitions)
71  case ('CDB')
72  call set_param_pointer(input_definition, swf_cdb_param_definitions)
73  case ('CHD')
74  call set_param_pointer(input_definition, swf_chd_param_definitions)
75  case ('FLW')
76  call set_param_pointer(input_definition, swf_flw_param_definitions)
77  case ('PCP')
78  call set_param_pointer(input_definition, swf_pcp_param_definitions)
79  case ('EVP')
80  call set_param_pointer(input_definition, swf_evp_param_definitions)
81  case ('STO')
82  call set_param_pointer(input_definition, swf_sto_param_definitions)
83  case ('ZDG')
84  call set_param_pointer(input_definition, swf_zdg_param_definitions)
85  case default
86  end select
87  return
88  end function swf_param_definitions
89 
90  function swf_aggregate_definitions(subcomponent) result(input_definition)
91  character(len=*), intent(in) :: subcomponent
92  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
93  nullify (input_definition)
94  select case (subcomponent)
95  case ('NAM')
96  call set_param_pointer(input_definition, swf_nam_aggregate_definitions)
97  case ('DISV1D')
99  case ('DIS2D')
100  call set_param_pointer(input_definition, swf_dis2d_aggregate_definitions)
101  case ('DISV2D')
103  case ('CXS')
104  call set_param_pointer(input_definition, swf_cxs_aggregate_definitions)
105  case ('DFW')
106  call set_param_pointer(input_definition, swf_dfw_aggregate_definitions)
107  case ('IC')
108  call set_param_pointer(input_definition, swf_ic_aggregate_definitions)
109  case ('CDB')
110  call set_param_pointer(input_definition, swf_cdb_aggregate_definitions)
111  case ('CHD')
112  call set_param_pointer(input_definition, swf_chd_aggregate_definitions)
113  case ('FLW')
114  call set_param_pointer(input_definition, swf_flw_aggregate_definitions)
115  case ('PCP')
116  call set_param_pointer(input_definition, swf_pcp_aggregate_definitions)
117  case ('EVP')
118  call set_param_pointer(input_definition, swf_evp_aggregate_definitions)
119  case ('STO')
120  call set_param_pointer(input_definition, swf_sto_aggregate_definitions)
121  case ('ZDG')
122  call set_param_pointer(input_definition, swf_zdg_aggregate_definitions)
123  case default
124  end select
125  return
126  end function swf_aggregate_definitions
127 
128  function swf_block_definitions(subcomponent) result(input_definition)
129  character(len=*), intent(in) :: subcomponent
130  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
131  nullify (input_definition)
132  select case (subcomponent)
133  case ('NAM')
134  call set_block_pointer(input_definition, swf_nam_block_definitions)
135  case ('DISV1D')
136  call set_block_pointer(input_definition, swf_disv1d_block_definitions)
137  case ('DIS2D')
138  call set_block_pointer(input_definition, swf_dis2d_block_definitions)
139  case ('DISV2D')
140  call set_block_pointer(input_definition, swf_disv2d_block_definitions)
141  case ('CXS')
142  call set_block_pointer(input_definition, swf_cxs_block_definitions)
143  case ('DFW')
144  call set_block_pointer(input_definition, swf_dfw_block_definitions)
145  case ('IC')
146  call set_block_pointer(input_definition, swf_ic_block_definitions)
147  case ('CDB')
148  call set_block_pointer(input_definition, swf_cdb_block_definitions)
149  case ('CHD')
150  call set_block_pointer(input_definition, swf_chd_block_definitions)
151  case ('FLW')
152  call set_block_pointer(input_definition, swf_flw_block_definitions)
153  case ('PCP')
154  call set_block_pointer(input_definition, swf_pcp_block_definitions)
155  case ('EVP')
156  call set_block_pointer(input_definition, swf_evp_block_definitions)
157  case ('STO')
158  call set_block_pointer(input_definition, swf_sto_block_definitions)
159  case ('ZDG')
160  call set_block_pointer(input_definition, swf_zdg_block_definitions)
161  case default
162  end select
163  return
164  end function swf_block_definitions
165 
166  function swf_idm_multi_package(subcomponent) result(multi_package)
167  character(len=*), intent(in) :: subcomponent
168  logical :: multi_package
169  select case (subcomponent)
170  case ('NAM')
171  multi_package = swf_nam_multi_package
172  case ('DISV1D')
173  multi_package = swf_disv1d_multi_package
174  case ('DIS2D')
175  multi_package = swf_dis2d_multi_package
176  case ('DISV2D')
177  multi_package = swf_disv2d_multi_package
178  case ('CXS')
179  multi_package = swf_cxs_multi_package
180  case ('DFW')
181  multi_package = swf_dfw_multi_package
182  case ('IC')
183  multi_package = swf_ic_multi_package
184  case ('CDB')
185  multi_package = swf_cdb_multi_package
186  case ('CHD')
187  multi_package = swf_chd_multi_package
188  case ('FLW')
189  multi_package = swf_flw_multi_package
190  case ('PCP')
191  multi_package = swf_pcp_multi_package
192  case ('EVP')
193  multi_package = swf_evp_multi_package
194  case ('STO')
195  multi_package = swf_sto_multi_package
196  case ('ZDG')
197  multi_package = swf_zdg_multi_package
198  case default
199  call store_error('Idm selector subcomponent not found; '//&
200  &'component="SWF"'//&
201  &', subcomponent="'//trim(subcomponent)//'".', .true.)
202  end select
203  return
204  end function swf_idm_multi_package
205 
206  function swf_idm_subpackages(subcomponent) result(subpackages)
207  character(len=*), intent(in) :: subcomponent
208  character(len=16), dimension(:), pointer :: subpackages
209  select case (subcomponent)
210  case ('NAM')
211  call set_subpkg_pointer(subpackages, swf_nam_subpackages)
212  case ('DISV1D')
213  call set_subpkg_pointer(subpackages, swf_disv1d_subpackages)
214  case ('DIS2D')
215  call set_subpkg_pointer(subpackages, swf_dis2d_subpackages)
216  case ('DISV2D')
217  call set_subpkg_pointer(subpackages, swf_disv2d_subpackages)
218  case ('CXS')
219  call set_subpkg_pointer(subpackages, swf_cxs_subpackages)
220  case ('DFW')
221  call set_subpkg_pointer(subpackages, swf_dfw_subpackages)
222  case ('IC')
223  call set_subpkg_pointer(subpackages, swf_ic_subpackages)
224  case ('CDB')
225  call set_subpkg_pointer(subpackages, swf_cdb_subpackages)
226  case ('CHD')
227  call set_subpkg_pointer(subpackages, swf_chd_subpackages)
228  case ('FLW')
229  call set_subpkg_pointer(subpackages, swf_flw_subpackages)
230  case ('PCP')
231  call set_subpkg_pointer(subpackages, swf_pcp_subpackages)
232  case ('EVP')
233  call set_subpkg_pointer(subpackages, swf_evp_subpackages)
234  case ('STO')
235  call set_subpkg_pointer(subpackages, swf_sto_subpackages)
236  case ('ZDG')
237  call set_subpkg_pointer(subpackages, swf_zdg_subpackages)
238  case default
239  end select
240  return
241  end function swf_idm_subpackages
242 
243  function swf_idm_integrated(subcomponent) result(integrated)
244  character(len=*), intent(in) :: subcomponent
245  logical :: integrated
246  integrated = .false.
247  select case (subcomponent)
248  case ('NAM')
249  integrated = .true.
250  case ('DISV1D')
251  integrated = .true.
252  case ('DIS2D')
253  integrated = .true.
254  case ('DISV2D')
255  integrated = .true.
256  case ('CXS')
257  integrated = .true.
258  case ('DFW')
259  integrated = .true.
260  case ('IC')
261  integrated = .true.
262  case ('CDB')
263  integrated = .true.
264  case ('CHD')
265  integrated = .true.
266  case ('FLW')
267  integrated = .true.
268  case ('PCP')
269  integrated = .true.
270  case ('EVP')
271  integrated = .true.
272  case ('STO')
273  integrated = .true.
274  case ('ZDG')
275  integrated = .true.
276  case default
277  end select
278  return
279  end function swf_idm_integrated
280 
281 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:310
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cdb_aggregate_definitions
Definition: swf-cdbidm.f90:348
type(inputblockdefinitiontype), dimension(*), parameter, public swf_cdb_block_definitions
Definition: swf-cdbidm.f90:354
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:414
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:367
type(inputparamdefinitiontype), dimension(*), parameter, public swf_chd_aggregate_definitions
Definition: swf-chdidm.f90:408
logical, public swf_chd_multi_package
Definition: swf-chdidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cxs_aggregate_definitions
Definition: swf-cxsidm.f90:226
type(inputparamdefinitiontype), dimension(*), parameter, public swf_cxs_param_definitions
Definition: swf-cxsidm.f90:177
type(inputblockdefinitiontype), dimension(*), parameter, public swf_cxs_block_definitions
Definition: swf-cxsidm.f90:233
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:291
type(inputparamdefinitiontype), dimension(*), parameter, public swf_dfw_aggregate_definitions
Definition: swf-dfwidm.f90:310
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:331
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:367
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:414
logical, public swf_evp_multi_package
Definition: swf-evpidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public swf_evp_aggregate_definitions
Definition: swf-evpidm.f90:408
type(inputblockdefinitiontype), dimension(*), parameter, public swf_flw_block_definitions
Definition: swf-flwidm.f90:414
type(inputparamdefinitiontype), dimension(*), parameter, public swf_flw_aggregate_definitions
Definition: swf-flwidm.f90:408
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:367
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:91
type(inputparamdefinitiontype), dimension(*), parameter, public swf_ic_aggregate_definitions
Definition: swf-icidm.f90:70
logical, public swf_ic_multi_package
Definition: swf-icidm.f90:19
type(inputparamdefinitiontype), dimension(*), parameter, public swf_ic_param_definitions
Definition: swf-icidm.f90:63
logical, public swf_nam_multi_package
Definition: swf-namidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public swf_nam_block_definitions
Definition: swf-namidm.f90:254
type(inputparamdefinitiontype), dimension(*), parameter, public swf_nam_param_definitions
Definition: swf-namidm.f90:215
type(inputparamdefinitiontype), dimension(*), parameter, public swf_nam_aggregate_definitions
Definition: swf-namidm.f90:248
character(len=16), dimension(*), parameter, public swf_nam_subpackages
Definition: swf-namidm.f90:29
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:408
type(inputblockdefinitiontype), dimension(*), parameter, public swf_pcp_block_definitions
Definition: swf-pcpidm.f90:414
type(inputparamdefinitiontype), dimension(*), parameter, public swf_pcp_param_definitions
Definition: swf-pcpidm.f90:367
type(inputblockdefinitiontype), dimension(*), parameter, public swf_sto_block_definitions
Definition: swf-stoidm.f90:131
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:110
type(inputparamdefinitiontype), dimension(*), parameter, public swf_sto_param_definitions
Definition: swf-stoidm.f90:101
type(inputblockdefinitiontype), dimension(*), parameter, public swf_zdg_block_definitions
Definition: swf-zdgidm.f90:454
type(inputparamdefinitiontype), dimension(*), parameter, public swf_zdg_param_definitions
Definition: swf-zdgidm.f90:405
type(inputparamdefinitiontype), dimension(*), parameter, public swf_zdg_aggregate_definitions
Definition: swf-zdgidm.f90:448
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