MODFLOW 6  version 6.8.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_subpackages
22  public :: utl_idm_integrated
23 
24 contains
25 
26  subroutine set_param_pointer(input_dfn, input_dfn_target)
27  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
28  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
29  input_dfn => input_dfn_target
30  end subroutine set_param_pointer
31 
32  subroutine set_block_pointer(input_dfn, input_dfn_target)
33  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
34  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
35  input_dfn => input_dfn_target
36  end subroutine set_block_pointer
37 
38  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
39  character(len=16), dimension(:), pointer :: subpkg_list
40  character(len=16), dimension(:), target :: subpkg_list_target
41  subpkg_list => subpkg_list_target
42  end subroutine set_subpkg_pointer
43 
44  function utl_param_definitions(subcomponent) result(input_definition)
45  character(len=*), intent(in) :: subcomponent
46  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
47  nullify (input_definition)
48  select case (subcomponent)
49  case ('HPC')
50  call set_param_pointer(input_definition, utl_hpc_param_definitions)
51  case ('NCF')
52  call set_param_pointer(input_definition, utl_ncf_param_definitions)
53  case ('TVK')
54  call set_param_pointer(input_definition, utl_tvk_param_definitions)
55  case ('TVS')
56  call set_param_pointer(input_definition, utl_tvs_param_definitions)
57  case ('SPC')
58  call set_param_pointer(input_definition, utl_spc_param_definitions)
59  case ('SPCA')
60  call set_param_pointer(input_definition, utl_spca_param_definitions)
61  case default
62  end select
63  return
64  end function utl_param_definitions
65 
66  function utl_aggregate_definitions(subcomponent) result(input_definition)
67  character(len=*), intent(in) :: subcomponent
68  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
69  nullify (input_definition)
70  select case (subcomponent)
71  case ('HPC')
72  call set_param_pointer(input_definition, utl_hpc_aggregate_definitions)
73  case ('NCF')
74  call set_param_pointer(input_definition, utl_ncf_aggregate_definitions)
75  case ('TVK')
76  call set_param_pointer(input_definition, utl_tvk_aggregate_definitions)
77  case ('TVS')
78  call set_param_pointer(input_definition, utl_tvs_aggregate_definitions)
79  case ('SPC')
80  call set_param_pointer(input_definition, utl_spc_aggregate_definitions)
81  case ('SPCA')
83  case default
84  end select
85  return
86  end function utl_aggregate_definitions
87 
88  function utl_block_definitions(subcomponent) result(input_definition)
89  character(len=*), intent(in) :: subcomponent
90  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
91  nullify (input_definition)
92  select case (subcomponent)
93  case ('HPC')
94  call set_block_pointer(input_definition, utl_hpc_block_definitions)
95  case ('NCF')
96  call set_block_pointer(input_definition, utl_ncf_block_definitions)
97  case ('TVK')
98  call set_block_pointer(input_definition, utl_tvk_block_definitions)
99  case ('TVS')
100  call set_block_pointer(input_definition, utl_tvs_block_definitions)
101  case ('SPC')
102  call set_block_pointer(input_definition, utl_spc_block_definitions)
103  case ('SPCA')
104  call set_block_pointer(input_definition, utl_spca_block_definitions)
105  case default
106  end select
107  return
108  end function utl_block_definitions
109 
110  function utl_idm_multi_package(subcomponent) result(multi_package)
111  character(len=*), intent(in) :: subcomponent
112  logical :: multi_package
113  select case (subcomponent)
114  case ('HPC')
115  multi_package = utl_hpc_multi_package
116  case ('NCF')
117  multi_package = utl_ncf_multi_package
118  case ('TVK')
119  multi_package = utl_tvk_multi_package
120  case ('TVS')
121  multi_package = utl_tvs_multi_package
122  case ('SPC')
123  multi_package = utl_spc_multi_package
124  case ('SPCA')
125  multi_package = utl_spca_multi_package
126  case default
127  call store_error('Idm selector subcomponent not found; '//&
128  &'component="UTL"'//&
129  &', subcomponent="'//trim(subcomponent)//'".', .true.)
130  end select
131  return
132  end function utl_idm_multi_package
133 
134  function utl_idm_subpackages(subcomponent) result(subpackages)
135  character(len=*), intent(in) :: subcomponent
136  character(len=16), dimension(:), pointer :: subpackages
137  select case (subcomponent)
138  case ('HPC')
139  call set_subpkg_pointer(subpackages, utl_hpc_subpackages)
140  case ('NCF')
141  call set_subpkg_pointer(subpackages, utl_ncf_subpackages)
142  case ('TVK')
143  call set_subpkg_pointer(subpackages, utl_tvk_subpackages)
144  case ('TVS')
145  call set_subpkg_pointer(subpackages, utl_tvs_subpackages)
146  case ('SPC')
147  call set_subpkg_pointer(subpackages, utl_spc_subpackages)
148  case ('SPCA')
149  call set_subpkg_pointer(subpackages, utl_spca_subpackages)
150  case default
151  end select
152  return
153  end function utl_idm_subpackages
154 
155  function utl_idm_integrated(subcomponent) result(integrated)
156  character(len=*), intent(in) :: subcomponent
157  logical :: integrated
158  integrated = .false.
159  select case (subcomponent)
160  case ('HPC')
161  integrated = .true.
162  case ('NCF')
163  integrated = .true.
164  case ('TVK')
165  integrated = .true.
166  case ('TVS')
167  integrated = .true.
168  case ('SPC')
169  integrated = .true.
170  case ('SPCA')
171  integrated = .true.
172  case default
173  end select
174  return
175  end function utl_idm_integrated
176 
177 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)
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:139
logical, public utl_hpc_multi_package
Definition: utl-hpcidm.f90:21
character(len=16), dimension(*), parameter, public utl_hpc_subpackages
Definition: utl-hpcidm.f90:23
type(inputparamdefinitiontype), dimension(*), parameter, public utl_hpc_aggregate_definitions
Definition: utl-hpcidm.f90:133
type(inputparamdefinitiontype), dimension(*), parameter, public utl_hpc_param_definitions
Definition: utl-hpcidm.f90:105
character(len=16), dimension(*), parameter, public utl_ncf_subpackages
Definition: utl-ncfidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public utl_ncf_aggregate_definitions
Definition: utl-ncfidm.f90:282
logical, public utl_ncf_multi_package
Definition: utl-ncfidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public utl_ncf_param_definitions
Definition: utl-ncfidm.f90:265
type(inputblockdefinitiontype), dimension(*), parameter, public utl_ncf_block_definitions
Definition: utl-ncfidm.f90:304
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spca_param_definitions
logical, public utl_spca_multi_package
Definition: utl-spcaidm.f90:25
type(inputblockdefinitiontype), dimension(*), parameter, public utl_spca_block_definitions
character(len=16), dimension(*), parameter, public utl_spca_subpackages
Definition: utl-spcaidm.f90:27
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spca_aggregate_definitions
character(len=16), dimension(*), parameter, public utl_spc_subpackages
Definition: utl-spcidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spc_param_definitions
Definition: utl-spcidm.f90:205
type(inputblockdefinitiontype), dimension(*), parameter, public utl_spc_block_definitions
Definition: utl-spcidm.f90:264
logical, public utl_spc_multi_package
Definition: utl-spcidm.f90:26
type(inputparamdefinitiontype), dimension(*), parameter, public utl_spc_aggregate_definitions
Definition: utl-spcidm.f90:257
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvk_param_definitions
Definition: utl-tvkidm.f90:205
character(len=16), dimension(*), parameter, public utl_tvk_subpackages
Definition: utl-tvkidm.f90:28
logical, public utl_tvk_multi_package
Definition: utl-tvkidm.f90:26
type(inputblockdefinitiontype), dimension(*), parameter, public utl_tvk_block_definitions
Definition: utl-tvkidm.f90:264
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvk_aggregate_definitions
Definition: utl-tvkidm.f90:257
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvs_aggregate_definitions
Definition: utl-tvsidm.f90:257
logical, public utl_tvs_multi_package
Definition: utl-tvsidm.f90:26
type(inputblockdefinitiontype), dimension(*), parameter, public utl_tvs_block_definitions
Definition: utl-tvsidm.f90:264
type(inputparamdefinitiontype), dimension(*), parameter, public utl_tvs_param_definitions
Definition: utl-tvsidm.f90:205
character(len=16), dimension(*), parameter, public utl_tvs_subpackages
Definition: utl-tvsidm.f90:28
Input block definition. Describes an input block.
Input parameter definition. Describes an input parameter.