MODFLOW 6  version 6.7.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
18 
19  implicit none
20  private
21  public :: chf_param_definitions
23  public :: chf_block_definitions
24  public :: chf_idm_multi_package
25  public :: chf_idm_subpackages
26  public :: chf_idm_integrated
27 
28 contains
29 
30  subroutine set_param_pointer(input_dfn, input_dfn_target)
31  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
32  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
33  input_dfn => input_dfn_target
34  end subroutine set_param_pointer
35 
36  subroutine set_block_pointer(input_dfn, input_dfn_target)
37  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
38  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
39  input_dfn => input_dfn_target
40  end subroutine set_block_pointer
41 
42  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
43  character(len=16), dimension(:), pointer :: subpkg_list
44  character(len=16), dimension(:), target :: subpkg_list_target
45  subpkg_list => subpkg_list_target
46  end subroutine set_subpkg_pointer
47 
48  function chf_param_definitions(subcomponent) result(input_definition)
49  character(len=*), intent(in) :: subcomponent
50  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
51  nullify (input_definition)
52  select case (subcomponent)
53  case ('NAM')
54  call set_param_pointer(input_definition, chf_nam_param_definitions)
55  case ('DISV1D')
56  call set_param_pointer(input_definition, chf_disv1d_param_definitions)
57  case ('CXS')
58  call set_param_pointer(input_definition, chf_cxs_param_definitions)
59  case ('DFW')
60  call set_param_pointer(input_definition, chf_dfw_param_definitions)
61  case ('IC')
62  call set_param_pointer(input_definition, chf_ic_param_definitions)
63  case ('CDB')
64  call set_param_pointer(input_definition, chf_cdb_param_definitions)
65  case ('CHD')
66  call set_param_pointer(input_definition, chf_chd_param_definitions)
67  case ('FLW')
68  call set_param_pointer(input_definition, chf_flw_param_definitions)
69  case ('STO')
70  call set_param_pointer(input_definition, chf_sto_param_definitions)
71  case ('ZDG')
72  call set_param_pointer(input_definition, chf_zdg_param_definitions)
73  case default
74  end select
75  return
76  end function chf_param_definitions
77 
78  function chf_aggregate_definitions(subcomponent) result(input_definition)
79  character(len=*), intent(in) :: subcomponent
80  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
81  nullify (input_definition)
82  select case (subcomponent)
83  case ('NAM')
84  call set_param_pointer(input_definition, chf_nam_aggregate_definitions)
85  case ('DISV1D')
87  case ('CXS')
88  call set_param_pointer(input_definition, chf_cxs_aggregate_definitions)
89  case ('DFW')
90  call set_param_pointer(input_definition, chf_dfw_aggregate_definitions)
91  case ('IC')
92  call set_param_pointer(input_definition, chf_ic_aggregate_definitions)
93  case ('CDB')
94  call set_param_pointer(input_definition, chf_cdb_aggregate_definitions)
95  case ('CHD')
96  call set_param_pointer(input_definition, chf_chd_aggregate_definitions)
97  case ('FLW')
98  call set_param_pointer(input_definition, chf_flw_aggregate_definitions)
99  case ('STO')
100  call set_param_pointer(input_definition, chf_sto_aggregate_definitions)
101  case ('ZDG')
102  call set_param_pointer(input_definition, chf_zdg_aggregate_definitions)
103  case default
104  end select
105  return
106  end function chf_aggregate_definitions
107 
108  function chf_block_definitions(subcomponent) result(input_definition)
109  character(len=*), intent(in) :: subcomponent
110  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
111  nullify (input_definition)
112  select case (subcomponent)
113  case ('NAM')
114  call set_block_pointer(input_definition, chf_nam_block_definitions)
115  case ('DISV1D')
116  call set_block_pointer(input_definition, chf_disv1d_block_definitions)
117  case ('CXS')
118  call set_block_pointer(input_definition, chf_cxs_block_definitions)
119  case ('DFW')
120  call set_block_pointer(input_definition, chf_dfw_block_definitions)
121  case ('IC')
122  call set_block_pointer(input_definition, chf_ic_block_definitions)
123  case ('CDB')
124  call set_block_pointer(input_definition, chf_cdb_block_definitions)
125  case ('CHD')
126  call set_block_pointer(input_definition, chf_chd_block_definitions)
127  case ('FLW')
128  call set_block_pointer(input_definition, chf_flw_block_definitions)
129  case ('STO')
130  call set_block_pointer(input_definition, chf_sto_block_definitions)
131  case ('ZDG')
132  call set_block_pointer(input_definition, chf_zdg_block_definitions)
133  case default
134  end select
135  return
136  end function chf_block_definitions
137 
138  function chf_idm_multi_package(subcomponent) result(multi_package)
139  character(len=*), intent(in) :: subcomponent
140  logical :: multi_package
141  select case (subcomponent)
142  case ('NAM')
143  multi_package = chf_nam_multi_package
144  case ('DISV1D')
145  multi_package = chf_disv1d_multi_package
146  case ('CXS')
147  multi_package = chf_cxs_multi_package
148  case ('DFW')
149  multi_package = chf_dfw_multi_package
150  case ('IC')
151  multi_package = chf_ic_multi_package
152  case ('CDB')
153  multi_package = chf_cdb_multi_package
154  case ('CHD')
155  multi_package = chf_chd_multi_package
156  case ('FLW')
157  multi_package = chf_flw_multi_package
158  case ('STO')
159  multi_package = chf_sto_multi_package
160  case ('ZDG')
161  multi_package = chf_zdg_multi_package
162  case default
163  call store_error('Idm selector subcomponent not found; '//&
164  &'component="CHF"'//&
165  &', subcomponent="'//trim(subcomponent)//'".', .true.)
166  end select
167  return
168  end function chf_idm_multi_package
169 
170  function chf_idm_subpackages(subcomponent) result(subpackages)
171  character(len=*), intent(in) :: subcomponent
172  character(len=16), dimension(:), pointer :: subpackages
173  select case (subcomponent)
174  case ('NAM')
175  call set_subpkg_pointer(subpackages, chf_nam_subpackages)
176  case ('DISV1D')
177  call set_subpkg_pointer(subpackages, chf_disv1d_subpackages)
178  case ('CXS')
179  call set_subpkg_pointer(subpackages, chf_cxs_subpackages)
180  case ('DFW')
181  call set_subpkg_pointer(subpackages, chf_dfw_subpackages)
182  case ('IC')
183  call set_subpkg_pointer(subpackages, chf_ic_subpackages)
184  case ('CDB')
185  call set_subpkg_pointer(subpackages, chf_cdb_subpackages)
186  case ('CHD')
187  call set_subpkg_pointer(subpackages, chf_chd_subpackages)
188  case ('FLW')
189  call set_subpkg_pointer(subpackages, chf_flw_subpackages)
190  case ('STO')
191  call set_subpkg_pointer(subpackages, chf_sto_subpackages)
192  case ('ZDG')
193  call set_subpkg_pointer(subpackages, chf_zdg_subpackages)
194  case default
195  end select
196  return
197  end function chf_idm_subpackages
198 
199  function chf_idm_integrated(subcomponent) result(integrated)
200  character(len=*), intent(in) :: subcomponent
201  logical :: integrated
202  integrated = .false.
203  select case (subcomponent)
204  case ('NAM')
205  integrated = .true.
206  case ('DISV1D')
207  integrated = .true.
208  case ('CXS')
209  integrated = .true.
210  case ('DFW')
211  integrated = .true.
212  case ('IC')
213  integrated = .true.
214  case ('CDB')
215  integrated = .true.
216  case ('CHD')
217  integrated = .true.
218  case ('FLW')
219  integrated = .true.
220  case ('STO')
221  integrated = .true.
222  case ('ZDG')
223  integrated = .true.
224  case default
225  end select
226  return
227  end function chf_idm_integrated
228 
229 end module idmchfdfnselectormodule
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_aggregate_definitions
Definition: chf-cdbidm.f90:348
logical, public chf_cdb_multi_package
Definition: chf-cdbidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cdb_param_definitions
Definition: chf-cdbidm.f90:310
type(inputblockdefinitiontype), dimension(*), parameter, public chf_cdb_block_definitions
Definition: chf-cdbidm.f90:354
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:408
logical, public chf_chd_multi_package
Definition: chf-chdidm.f90:35
type(inputblockdefinitiontype), dimension(*), parameter, public chf_chd_block_definitions
Definition: chf-chdidm.f90:414
type(inputparamdefinitiontype), dimension(*), parameter, public chf_chd_param_definitions
Definition: chf-chdidm.f90:367
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_param_definitions
Definition: chf-cxsidm.f90:177
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:233
type(inputparamdefinitiontype), dimension(*), parameter, public chf_cxs_aggregate_definitions
Definition: chf-cxsidm.f90:226
type(inputblockdefinitiontype), dimension(*), parameter, public chf_dfw_block_definitions
Definition: chf-dfwidm.f90:331
type(inputparamdefinitiontype), dimension(*), parameter, public chf_dfw_param_definitions
Definition: chf-dfwidm.f90:291
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:310
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_flw_block_definitions
Definition: chf-flwidm.f90:414
logical, public chf_flw_multi_package
Definition: chf-flwidm.f90:35
type(inputparamdefinitiontype), dimension(*), parameter, public chf_flw_param_definitions
Definition: chf-flwidm.f90:367
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:408
logical, public chf_ic_multi_package
Definition: chf-icidm.f90:19
type(inputblockdefinitiontype), dimension(*), parameter, public chf_ic_block_definitions
Definition: chf-icidm.f90:91
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:63
type(inputparamdefinitiontype), dimension(*), parameter, public chf_ic_aggregate_definitions
Definition: chf-icidm.f90:70
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_aggregate_definitions
Definition: chf-namidm.f90:248
type(inputparamdefinitiontype), dimension(*), parameter, public chf_nam_param_definitions
Definition: chf-namidm.f90:215
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:254
logical, public chf_nam_multi_package
Definition: chf-namidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public chf_sto_block_definitions
Definition: chf-stoidm.f90:131
logical, public chf_sto_multi_package
Definition: chf-stoidm.f90:21
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_param_definitions
Definition: chf-stoidm.f90:101
type(inputparamdefinitiontype), dimension(*), parameter, public chf_sto_aggregate_definitions
Definition: chf-stoidm.f90:110
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:454
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:448
type(inputparamdefinitiontype), dimension(*), parameter, public chf_zdg_param_definitions
Definition: chf-zdgidm.f90:405
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