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
14 
15  implicit none
16  private
17  public :: utl_param_definitions
19  public :: utl_block_definitions
20  public :: utl_idm_multi_package
21  public :: utl_idm_is_advanced
22  public :: utl_idm_subpackages
23  public :: utl_idm_integrated
24 
25 contains
26 
27  subroutine set_param_pointer(input_dfn, input_dfn_target)
28  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
29  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
30  input_dfn => input_dfn_target
31  end subroutine set_param_pointer
32 
33  subroutine set_block_pointer(input_dfn, input_dfn_target)
34  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
35  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
36  input_dfn => input_dfn_target
37  end subroutine set_block_pointer
38 
39  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
40  character(len=16), dimension(:), pointer :: subpkg_list
41  character(len=16), dimension(:), target :: subpkg_list_target
42  subpkg_list => subpkg_list_target
43  end subroutine set_subpkg_pointer
44 
45  function utl_param_definitions(subcomponent) result(input_definition)
46  character(len=*), intent(in) :: subcomponent
47  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
48  nullify (input_definition)
49  select case (subcomponent)
50  case ('HPC')
51  call set_param_pointer(input_definition, utl_hpc_param_definitions)
52  case ('NCF')
53  call set_param_pointer(input_definition, utl_ncf_param_definitions)
54  case ('TVK')
55  call set_param_pointer(input_definition, utl_tvk_param_definitions)
56  case ('TVS')
57  call set_param_pointer(input_definition, utl_tvs_param_definitions)
58  case ('SPC')
59  call set_param_pointer(input_definition, utl_spc_param_definitions)
60  case ('SPCA')
61  call set_param_pointer(input_definition, utl_spca_param_definitions)
62  case default
63  end select
64  return
65  end function utl_param_definitions
66 
67  function utl_aggregate_definitions(subcomponent) result(input_definition)
68  character(len=*), intent(in) :: subcomponent
69  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
70  nullify (input_definition)
71  select case (subcomponent)
72  case ('HPC')
73  call set_param_pointer(input_definition, utl_hpc_aggregate_definitions)
74  case ('NCF')
75  call set_param_pointer(input_definition, utl_ncf_aggregate_definitions)
76  case ('TVK')
77  call set_param_pointer(input_definition, utl_tvk_aggregate_definitions)
78  case ('TVS')
79  call set_param_pointer(input_definition, utl_tvs_aggregate_definitions)
80  case ('SPC')
81  call set_param_pointer(input_definition, utl_spc_aggregate_definitions)
82  case ('SPCA')
84  case default
85  end select
86  return
87  end function utl_aggregate_definitions
88 
89  function utl_block_definitions(subcomponent) result(input_definition)
90  character(len=*), intent(in) :: subcomponent
91  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
92  nullify (input_definition)
93  select case (subcomponent)
94  case ('HPC')
95  call set_block_pointer(input_definition, utl_hpc_block_definitions)
96  case ('NCF')
97  call set_block_pointer(input_definition, utl_ncf_block_definitions)
98  case ('TVK')
99  call set_block_pointer(input_definition, utl_tvk_block_definitions)
100  case ('TVS')
101  call set_block_pointer(input_definition, utl_tvs_block_definitions)
102  case ('SPC')
103  call set_block_pointer(input_definition, utl_spc_block_definitions)
104  case ('SPCA')
105  call set_block_pointer(input_definition, utl_spca_block_definitions)
106  case default
107  end select
108  return
109  end function utl_block_definitions
110 
111  function utl_idm_multi_package(subcomponent) result(multi_package)
112  character(len=*), intent(in) :: subcomponent
113  logical :: multi_package
114  select case (subcomponent)
115  case ('HPC')
116  multi_package = utl_hpc_multi_package
117  case ('NCF')
118  multi_package = utl_ncf_multi_package
119  case ('TVK')
120  multi_package = utl_tvk_multi_package
121  case ('TVS')
122  multi_package = utl_tvs_multi_package
123  case ('SPC')
124  multi_package = utl_spc_multi_package
125  case ('SPCA')
126  multi_package = utl_spca_multi_package
127  case default
128  call store_error('Idm selector subcomponent not found; '//&
129  &'component="UTL"'//&
130  &', subcomponent="'//trim(subcomponent)//'".', .true.)
131  end select
132  return
133  end function utl_idm_multi_package
134 
135  function utl_idm_is_advanced(subcomponent) result(is_advanced)
136  character(len=*), intent(in) :: subcomponent
137  logical :: is_advanced
138  select case (subcomponent)
139  case ('HPC')
140  is_advanced = utl_hpc_is_advanced
141  case ('NCF')
142  is_advanced = utl_ncf_is_advanced
143  case ('TVK')
144  is_advanced = utl_tvk_is_advanced
145  case ('TVS')
146  is_advanced = utl_tvs_is_advanced
147  case ('SPC')
148  is_advanced = utl_spc_is_advanced
149  case ('SPCA')
150  is_advanced = utl_spca_is_advanced
151  case default
152  call store_error('Idm selector subcomponent not found; '//&
153  &'component="UTL"'//&
154  &', subcomponent="'//trim(subcomponent)//'".', .true.)
155  end select
156  return
157  end function utl_idm_is_advanced
158 
159  function utl_idm_subpackages(subcomponent) result(subpackages)
160  character(len=*), intent(in) :: subcomponent
161  character(len=16), dimension(:), pointer :: subpackages
162  select case (subcomponent)
163  case ('HPC')
164  call set_subpkg_pointer(subpackages, utl_hpc_subpackages)
165  case ('NCF')
166  call set_subpkg_pointer(subpackages, utl_ncf_subpackages)
167  case ('TVK')
168  call set_subpkg_pointer(subpackages, utl_tvk_subpackages)
169  case ('TVS')
170  call set_subpkg_pointer(subpackages, utl_tvs_subpackages)
171  case ('SPC')
172  call set_subpkg_pointer(subpackages, utl_spc_subpackages)
173  case ('SPCA')
174  call set_subpkg_pointer(subpackages, utl_spca_subpackages)
175  case default
176  end select
177  return
178  end function utl_idm_subpackages
179 
180  function utl_idm_integrated(subcomponent) result(integrated)
181  character(len=*), intent(in) :: subcomponent
182  logical :: integrated
183  integrated = .false.
184  select case (subcomponent)
185  case ('HPC')
186  integrated = .true.
187  case ('NCF')
188  integrated = .true.
189  case ('TVK')
190  integrated = .true.
191  case ('TVS')
192  integrated = .true.
193  case ('SPC')
194  integrated = .true.
195  case ('SPCA')
196  integrated = .true.
197  case default
198  end select
199  return
200  end function utl_idm_integrated
201 
202 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
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
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.