MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmUtlDfnSelector.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
16 
17  implicit none
18  private
19  public :: utl_param_definitions
21  public :: utl_block_definitions
22  public :: utl_idm_multi_package
23  public :: utl_idm_is_advanced
24  public :: utl_idm_subpackages
25  public :: utl_idm_integrated
26 
27 contains
28 
29  subroutine set_param_pointer(input_dfn, input_dfn_target)
30  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
31  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
32  input_dfn => input_dfn_target
33  end subroutine set_param_pointer
34 
35  subroutine set_block_pointer(input_dfn, input_dfn_target)
36  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
37  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
38  input_dfn => input_dfn_target
39  end subroutine set_block_pointer
40 
41  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
42  character(len=16), dimension(:), pointer :: subpkg_list
43  character(len=16), dimension(:), target :: subpkg_list_target
44  subpkg_list => subpkg_list_target
45  end subroutine set_subpkg_pointer
46 
47  function utl_param_definitions(subcomponent) result(input_definition)
48  character(len=*), intent(in) :: subcomponent
49  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
50  nullify (input_definition)
51  select case (subcomponent)
52  case ('HPC')
53  call set_param_pointer(input_definition, utl_hpc_param_definitions)
54  case ('LAKTAB')
55  call set_param_pointer(input_definition, utl_laktab_param_definitions)
56  case ('NCF')
57  call set_param_pointer(input_definition, utl_ncf_param_definitions)
58  case ('SFRTAB')
59  call set_param_pointer(input_definition, utl_sfrtab_param_definitions)
60  case ('TVK')
61  call set_param_pointer(input_definition, utl_tvk_param_definitions)
62  case ('TVS')
63  call set_param_pointer(input_definition, utl_tvs_param_definitions)
64  case ('SPC')
65  call set_param_pointer(input_definition, utl_spc_param_definitions)
66  case ('SPCA')
67  call set_param_pointer(input_definition, utl_spca_param_definitions)
68  case default
69  end select
70  return
71  end function utl_param_definitions
72 
73  function utl_aggregate_definitions(subcomponent) result(input_definition)
74  character(len=*), intent(in) :: subcomponent
75  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
76  nullify (input_definition)
77  select case (subcomponent)
78  case ('HPC')
79  call set_param_pointer(input_definition, utl_hpc_aggregate_definitions)
80  case ('LAKTAB')
82  case ('NCF')
83  call set_param_pointer(input_definition, utl_ncf_aggregate_definitions)
84  case ('SFRTAB')
86  case ('TVK')
87  call set_param_pointer(input_definition, utl_tvk_aggregate_definitions)
88  case ('TVS')
89  call set_param_pointer(input_definition, utl_tvs_aggregate_definitions)
90  case ('SPC')
91  call set_param_pointer(input_definition, utl_spc_aggregate_definitions)
92  case ('SPCA')
94  case default
95  end select
96  return
97  end function utl_aggregate_definitions
98 
99  function utl_block_definitions(subcomponent) result(input_definition)
100  character(len=*), intent(in) :: subcomponent
101  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
102  nullify (input_definition)
103  select case (subcomponent)
104  case ('HPC')
105  call set_block_pointer(input_definition, utl_hpc_block_definitions)
106  case ('LAKTAB')
107  call set_block_pointer(input_definition, utl_laktab_block_definitions)
108  case ('NCF')
109  call set_block_pointer(input_definition, utl_ncf_block_definitions)
110  case ('SFRTAB')
111  call set_block_pointer(input_definition, utl_sfrtab_block_definitions)
112  case ('TVK')
113  call set_block_pointer(input_definition, utl_tvk_block_definitions)
114  case ('TVS')
115  call set_block_pointer(input_definition, utl_tvs_block_definitions)
116  case ('SPC')
117  call set_block_pointer(input_definition, utl_spc_block_definitions)
118  case ('SPCA')
119  call set_block_pointer(input_definition, utl_spca_block_definitions)
120  case default
121  end select
122  return
123  end function utl_block_definitions
124 
125  function utl_idm_multi_package(subcomponent) result(multi_package)
126  character(len=*), intent(in) :: subcomponent
127  logical :: multi_package
128  select case (subcomponent)
129  case ('HPC')
130  multi_package = utl_hpc_multi_package
131  case ('LAKTAB')
132  multi_package = utl_laktab_multi_package
133  case ('NCF')
134  multi_package = utl_ncf_multi_package
135  case ('SFRTAB')
136  multi_package = utl_sfrtab_multi_package
137  case ('TVK')
138  multi_package = utl_tvk_multi_package
139  case ('TVS')
140  multi_package = utl_tvs_multi_package
141  case ('SPC')
142  multi_package = utl_spc_multi_package
143  case ('SPCA')
144  multi_package = utl_spca_multi_package
145  case default
146  call store_error('Idm selector subcomponent not found; '//&
147  &'component="UTL"'//&
148  &', subcomponent="'//trim(subcomponent)//'".', .true.)
149  end select
150  return
151  end function utl_idm_multi_package
152 
153  function utl_idm_is_advanced(subcomponent) result(is_advanced)
154  character(len=*), intent(in) :: subcomponent
155  logical :: is_advanced
156  select case (subcomponent)
157  case ('HPC')
158  is_advanced = utl_hpc_is_advanced
159  case ('LAKTAB')
160  is_advanced = utl_laktab_is_advanced
161  case ('NCF')
162  is_advanced = utl_ncf_is_advanced
163  case ('SFRTAB')
164  is_advanced = utl_sfrtab_is_advanced
165  case ('TVK')
166  is_advanced = utl_tvk_is_advanced
167  case ('TVS')
168  is_advanced = utl_tvs_is_advanced
169  case ('SPC')
170  is_advanced = utl_spc_is_advanced
171  case ('SPCA')
172  is_advanced = utl_spca_is_advanced
173  case default
174  call store_error('Idm selector subcomponent not found; '//&
175  &'component="UTL"'//&
176  &', subcomponent="'//trim(subcomponent)//'".', .true.)
177  end select
178  return
179  end function utl_idm_is_advanced
180 
181  function utl_idm_subpackages(subcomponent) result(subpackages)
182  character(len=*), intent(in) :: subcomponent
183  character(len=16), dimension(:), pointer :: subpackages
184  select case (subcomponent)
185  case ('HPC')
186  call set_subpkg_pointer(subpackages, utl_hpc_subpackages)
187  case ('LAKTAB')
188  call set_subpkg_pointer(subpackages, utl_laktab_subpackages)
189  case ('NCF')
190  call set_subpkg_pointer(subpackages, utl_ncf_subpackages)
191  case ('SFRTAB')
192  call set_subpkg_pointer(subpackages, utl_sfrtab_subpackages)
193  case ('TVK')
194  call set_subpkg_pointer(subpackages, utl_tvk_subpackages)
195  case ('TVS')
196  call set_subpkg_pointer(subpackages, utl_tvs_subpackages)
197  case ('SPC')
198  call set_subpkg_pointer(subpackages, utl_spc_subpackages)
199  case ('SPCA')
200  call set_subpkg_pointer(subpackages, utl_spca_subpackages)
201  case default
202  end select
203  return
204  end function utl_idm_subpackages
205 
206  function utl_idm_integrated(subcomponent) result(integrated)
207  character(len=*), intent(in) :: subcomponent
208  logical :: integrated
209  integrated = .false.
210  select case (subcomponent)
211  case ('HPC')
212  integrated = .true.
213  case ('LAKTAB')
214  integrated = .true.
215  case ('NCF')
216  integrated = .true.
217  case ('SFRTAB')
218  integrated = .true.
219  case ('TVK')
220  integrated = .true.
221  case ('TVS')
222  integrated = .true.
223  case ('SPC')
224  integrated = .true.
225  case ('SPCA')
226  integrated = .true.
227  case default
228  end select
229  return
230  end function utl_idm_integrated
231 
232 end module idmutldfnselectormodule
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 utl_idm_subpackages(subcomponent)
logical function, public utl_idm_integrated(subcomponent)
subroutine set_block_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public utl_aggregate_definitions(subcomponent)
subroutine set_param_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public utl_param_definitions(subcomponent)
logical function, public utl_idm_multi_package(subcomponent)
type(inputblockdefinitiontype) function, dimension(:), pointer, public utl_block_definitions(subcomponent)
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
logical function, public utl_idm_is_advanced(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
type(inputblockdefinitiontype), dimension(*), parameter, public utl_hpc_block_definitions
Definition: utl-hpcidm.f90:141
logical, public utl_hpc_is_advanced
Definition: utl-hpcidm.f90:23
logical, public utl_hpc_multi_package
Definition: utl-hpcidm.f90:22
character(len=16), dimension(*), parameter, public utl_hpc_subpackages
Definition: utl-hpcidm.f90:25
type(inputparamdefinitiontype), dimension(*), parameter, public utl_hpc_aggregate_definitions
Definition: utl-hpcidm.f90:135
type(inputparamdefinitiontype), dimension(*), parameter, public utl_hpc_param_definitions
Definition: utl-hpcidm.f90:107
type(inputblockdefinitiontype), dimension(*), parameter, public utl_laktab_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public utl_laktab_param_definitions
character(len=16), dimension(*), parameter, public utl_laktab_subpackages
logical, public utl_laktab_multi_package
type(inputparamdefinitiontype), dimension(*), parameter, public utl_laktab_aggregate_definitions
logical, public utl_laktab_is_advanced
character(len=16), dimension(*), parameter, public utl_ncf_subpackages
Definition: utl-ncfidm.f90:34
logical, public utl_ncf_is_advanced
Definition: utl-ncfidm.f90:32
type(inputparamdefinitiontype), dimension(*), parameter, public utl_ncf_aggregate_definitions
Definition: utl-ncfidm.f90:305
logical, public utl_ncf_multi_package
Definition: utl-ncfidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public utl_ncf_param_definitions
Definition: utl-ncfidm.f90:287
type(inputblockdefinitiontype), dimension(*), parameter, public utl_ncf_block_definitions
Definition: utl-ncfidm.f90:327
type(inputparamdefinitiontype), dimension(*), parameter, public utl_sfrtab_aggregate_definitions
character(len=16), dimension(*), parameter, public utl_sfrtab_subpackages
type(inputparamdefinitiontype), dimension(*), parameter, public utl_sfrtab_param_definitions
logical, public utl_sfrtab_is_advanced
logical, public utl_sfrtab_multi_package
type(inputblockdefinitiontype), dimension(*), parameter, public utl_sfrtab_block_definitions
logical, public utl_spca_is_advanced
Definition: utl-spcaidm.f90:27
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spca_param_definitions
logical, public utl_spca_multi_package
Definition: utl-spcaidm.f90:26
type(inputblockdefinitiontype), dimension(*), parameter, public utl_spca_block_definitions
character(len=16), dimension(*), parameter, public utl_spca_subpackages
Definition: utl-spcaidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spca_aggregate_definitions
character(len=16), dimension(*), parameter, public utl_spc_subpackages
Definition: utl-spcidm.f90:30
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spc_param_definitions
Definition: utl-spcidm.f90:207
type(inputblockdefinitiontype), dimension(*), parameter, public utl_spc_block_definitions
Definition: utl-spcidm.f90:266
logical, public utl_spc_multi_package
Definition: utl-spcidm.f90:27
logical, public utl_spc_is_advanced
Definition: utl-spcidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spc_aggregate_definitions
Definition: utl-spcidm.f90:259
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvk_param_definitions
Definition: utl-tvkidm.f90:207
character(len=16), dimension(*), parameter, public utl_tvk_subpackages
Definition: utl-tvkidm.f90:30
logical, public utl_tvk_is_advanced
Definition: utl-tvkidm.f90:28
logical, public utl_tvk_multi_package
Definition: utl-tvkidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public utl_tvk_block_definitions
Definition: utl-tvkidm.f90:266
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvk_aggregate_definitions
Definition: utl-tvkidm.f90:259
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvs_aggregate_definitions
Definition: utl-tvsidm.f90:259
logical, public utl_tvs_multi_package
Definition: utl-tvsidm.f90:27
type(inputblockdefinitiontype), dimension(*), parameter, public utl_tvs_block_definitions
Definition: utl-tvsidm.f90:266
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvs_param_definitions
Definition: utl-tvsidm.f90:207
character(len=16), dimension(*), parameter, public utl_tvs_subpackages
Definition: utl-tvsidm.f90:30
logical, public utl_tvs_is_advanced
Definition: utl-tvsidm.f90:28
Input block definition. Describes an input block.
Input parameter definition. Describes an input parameter.