MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmPrtDfnSelector.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
15 
16  implicit none
17  private
18  public :: prt_param_definitions
20  public :: prt_block_definitions
21  public :: prt_idm_multi_package
22  public :: prt_idm_is_advanced
23  public :: prt_idm_subpackages
24  public :: prt_idm_integrated
25 
26 contains
27 
28  subroutine set_param_pointer(input_dfn, input_dfn_target)
29  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
30  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
31  input_dfn => input_dfn_target
32  end subroutine set_param_pointer
33 
34  subroutine set_block_pointer(input_dfn, input_dfn_target)
35  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
36  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
37  input_dfn => input_dfn_target
38  end subroutine set_block_pointer
39 
40  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
41  character(len=16), dimension(:), pointer :: subpkg_list
42  character(len=16), dimension(:), target :: subpkg_list_target
43  subpkg_list => subpkg_list_target
44  end subroutine set_subpkg_pointer
45 
46  function prt_param_definitions(subcomponent) result(input_definition)
47  character(len=*), intent(in) :: subcomponent
48  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
49  nullify (input_definition)
50  select case (subcomponent)
51  case ('NAM')
52  call set_param_pointer(input_definition, prt_nam_param_definitions)
53  case ('DIS')
54  call set_param_pointer(input_definition, prt_dis_param_definitions)
55  case ('DISV')
56  call set_param_pointer(input_definition, prt_disv_param_definitions)
57  case ('FMI')
58  call set_param_pointer(input_definition, prt_fmi_param_definitions)
59  case ('MIP')
60  call set_param_pointer(input_definition, prt_mip_param_definitions)
61  case ('OC')
62  call set_param_pointer(input_definition, prt_oc_param_definitions)
63  case ('PRP')
64  call set_param_pointer(input_definition, prt_prp_param_definitions)
65  case default
66  end select
67  return
68  end function prt_param_definitions
69 
70  function prt_aggregate_definitions(subcomponent) result(input_definition)
71  character(len=*), intent(in) :: subcomponent
72  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
73  nullify (input_definition)
74  select case (subcomponent)
75  case ('NAM')
76  call set_param_pointer(input_definition, prt_nam_aggregate_definitions)
77  case ('DIS')
78  call set_param_pointer(input_definition, prt_dis_aggregate_definitions)
79  case ('DISV')
81  case ('FMI')
82  call set_param_pointer(input_definition, prt_fmi_aggregate_definitions)
83  case ('MIP')
84  call set_param_pointer(input_definition, prt_mip_aggregate_definitions)
85  case ('OC')
86  call set_param_pointer(input_definition, prt_oc_aggregate_definitions)
87  case ('PRP')
88  call set_param_pointer(input_definition, prt_prp_aggregate_definitions)
89  case default
90  end select
91  return
92  end function prt_aggregate_definitions
93 
94  function prt_block_definitions(subcomponent) result(input_definition)
95  character(len=*), intent(in) :: subcomponent
96  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
97  nullify (input_definition)
98  select case (subcomponent)
99  case ('NAM')
100  call set_block_pointer(input_definition, prt_nam_block_definitions)
101  case ('DIS')
102  call set_block_pointer(input_definition, prt_dis_block_definitions)
103  case ('DISV')
104  call set_block_pointer(input_definition, prt_disv_block_definitions)
105  case ('FMI')
106  call set_block_pointer(input_definition, prt_fmi_block_definitions)
107  case ('MIP')
108  call set_block_pointer(input_definition, prt_mip_block_definitions)
109  case ('OC')
110  call set_block_pointer(input_definition, prt_oc_block_definitions)
111  case ('PRP')
112  call set_block_pointer(input_definition, prt_prp_block_definitions)
113  case default
114  end select
115  return
116  end function prt_block_definitions
117 
118  function prt_idm_multi_package(subcomponent) result(multi_package)
119  character(len=*), intent(in) :: subcomponent
120  logical :: multi_package
121  select case (subcomponent)
122  case ('NAM')
123  multi_package = prt_nam_multi_package
124  case ('DIS')
125  multi_package = prt_dis_multi_package
126  case ('DISV')
127  multi_package = prt_disv_multi_package
128  case ('FMI')
129  multi_package = prt_fmi_multi_package
130  case ('MIP')
131  multi_package = prt_mip_multi_package
132  case ('OC')
133  multi_package = prt_oc_multi_package
134  case ('PRP')
135  multi_package = prt_prp_multi_package
136  case default
137  call store_error('Idm selector subcomponent not found; '//&
138  &'component="PRT"'//&
139  &', subcomponent="'//trim(subcomponent)//'".', .true.)
140  end select
141  return
142  end function prt_idm_multi_package
143 
144  function prt_idm_is_advanced(subcomponent) result(is_advanced)
145  character(len=*), intent(in) :: subcomponent
146  logical :: is_advanced
147  select case (subcomponent)
148  case ('NAM')
149  is_advanced = prt_nam_is_advanced
150  case ('DIS')
151  is_advanced = prt_dis_is_advanced
152  case ('DISV')
153  is_advanced = prt_disv_is_advanced
154  case ('FMI')
155  is_advanced = prt_fmi_is_advanced
156  case ('MIP')
157  is_advanced = prt_mip_is_advanced
158  case ('OC')
159  is_advanced = prt_oc_is_advanced
160  case ('PRP')
161  is_advanced = prt_prp_is_advanced
162  case default
163  call store_error('Idm selector subcomponent not found; '//&
164  &'component="PRT"'//&
165  &', subcomponent="'//trim(subcomponent)//'".', .true.)
166  end select
167  return
168  end function prt_idm_is_advanced
169 
170  function prt_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, prt_nam_subpackages)
176  case ('DIS')
177  call set_subpkg_pointer(subpackages, prt_dis_subpackages)
178  case ('DISV')
179  call set_subpkg_pointer(subpackages, prt_disv_subpackages)
180  case ('FMI')
181  call set_subpkg_pointer(subpackages, prt_fmi_subpackages)
182  case ('MIP')
183  call set_subpkg_pointer(subpackages, prt_mip_subpackages)
184  case ('OC')
185  call set_subpkg_pointer(subpackages, prt_oc_subpackages)
186  case ('PRP')
187  call set_subpkg_pointer(subpackages, prt_prp_subpackages)
188  case default
189  end select
190  return
191  end function prt_idm_subpackages
192 
193  function prt_idm_integrated(subcomponent) result(integrated)
194  character(len=*), intent(in) :: subcomponent
195  logical :: integrated
196  integrated = .false.
197  select case (subcomponent)
198  case ('NAM')
199  integrated = .true.
200  case ('DIS')
201  integrated = .true.
202  case ('DISV')
203  integrated = .true.
204  case ('FMI')
205  integrated = .true.
206  case ('MIP')
207  integrated = .true.
208  case ('OC')
209  integrated = .true.
210  case ('PRP')
211  integrated = .true.
212  case default
213  end select
214  return
215  end function prt_idm_integrated
216 
217 end module idmprtdfnselectormodule
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
type(inputparamdefinitiontype) function, dimension(:), pointer, public prt_aggregate_definitions(subcomponent)
type(inputparamdefinitiontype) function, dimension(:), pointer, public prt_param_definitions(subcomponent)
logical function, public prt_idm_multi_package(subcomponent)
logical function, public prt_idm_integrated(subcomponent)
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
subroutine set_block_pointer(input_dfn, input_dfn_target)
character(len=16) function, dimension(:), pointer, public prt_idm_subpackages(subcomponent)
logical function, public prt_idm_is_advanced(subcomponent)
subroutine set_param_pointer(input_dfn, input_dfn_target)
type(inputblockdefinitiontype) function, dimension(:), pointer, public prt_block_definitions(subcomponent)
Input definition module.
logical, public prt_dis_is_advanced
Definition: prt-disidm.f90:43
character(len=16), dimension(*), parameter, public prt_dis_subpackages
Definition: prt-disidm.f90:45
type(inputparamdefinitiontype), dimension(*), parameter, public prt_dis_aggregate_definitions
Definition: prt-disidm.f90:536
type(inputblockdefinitiontype), dimension(*), parameter, public prt_dis_block_definitions
Definition: prt-disidm.f90:558
type(inputparamdefinitiontype), dimension(*), parameter, public prt_dis_param_definitions
Definition: prt-disidm.f90:507
logical, public prt_dis_multi_package
Definition: prt-disidm.f90:42
logical, public prt_disv_multi_package
Definition: prt-disvidm.f90:48
type(inputparamdefinitiontype), dimension(*), parameter, public prt_disv_aggregate_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public prt_disv_param_definitions
character(len=16), dimension(*), parameter, public prt_disv_subpackages
Definition: prt-disvidm.f90:51
logical, public prt_disv_is_advanced
Definition: prt-disvidm.f90:49
type(inputblockdefinitiontype), dimension(*), parameter, public prt_disv_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public prt_fmi_aggregate_definitions
Definition: prt-fmiidm.f90:135
logical, public prt_fmi_multi_package
Definition: prt-fmiidm.f90:22
character(len=16), dimension(*), parameter, public prt_fmi_subpackages
Definition: prt-fmiidm.f90:25
logical, public prt_fmi_is_advanced
Definition: prt-fmiidm.f90:23
type(inputparamdefinitiontype), dimension(*), parameter, public prt_fmi_param_definitions
Definition: prt-fmiidm.f90:107
type(inputblockdefinitiontype), dimension(*), parameter, public prt_fmi_block_definitions
Definition: prt-fmiidm.f90:141
type(inputblockdefinitiontype), dimension(*), parameter, public prt_mip_block_definitions
Definition: prt-mipidm.f90:138
logical, public prt_mip_is_advanced
Definition: prt-mipidm.f90:23
logical, public prt_mip_multi_package
Definition: prt-mipidm.f90:22
type(inputparamdefinitiontype), dimension(*), parameter, public prt_mip_aggregate_definitions
Definition: prt-mipidm.f90:116
type(inputparamdefinitiontype), dimension(*), parameter, public prt_mip_param_definitions
Definition: prt-mipidm.f90:107
character(len=16), dimension(*), parameter, public prt_mip_subpackages
Definition: prt-mipidm.f90:25
type(inputblockdefinitiontype), dimension(*), parameter, public prt_nam_block_definitions
Definition: prt-namidm.f90:204
type(inputparamdefinitiontype), dimension(*), parameter, public prt_nam_param_definitions
Definition: prt-namidm.f90:167
logical, public prt_nam_multi_package
Definition: prt-namidm.f90:25
logical, public prt_nam_is_advanced
Definition: prt-namidm.f90:26
type(inputparamdefinitiontype), dimension(*), parameter, public prt_nam_aggregate_definitions
Definition: prt-namidm.f90:198
character(len=16), dimension(*), parameter, public prt_nam_subpackages
Definition: prt-namidm.f90:28
logical, public prt_oc_multi_package
Definition: prt-ocidm.f90:59
type(inputparamdefinitiontype), dimension(*), parameter, public prt_oc_param_definitions
Definition: prt-ocidm.f90:847
type(inputparamdefinitiontype), dimension(*), parameter, public prt_oc_aggregate_definitions
Definition: prt-ocidm.f90:931
logical, public prt_oc_is_advanced
Definition: prt-ocidm.f90:60
character(len=16), dimension(*), parameter, public prt_oc_subpackages
Definition: prt-ocidm.f90:62
type(inputblockdefinitiontype), dimension(*), parameter, public prt_oc_block_definitions
Definition: prt-ocidm.f90:938
logical, public prt_prp_is_advanced
Definition: prt-prpidm.f90:64
type(inputparamdefinitiontype), dimension(*), parameter, public prt_prp_param_definitions
Definition: prt-prpidm.f90:927
type(inputparamdefinitiontype), dimension(*), parameter, public prt_prp_aggregate_definitions
logical, public prt_prp_multi_package
Definition: prt-prpidm.f90:63
character(len=16), dimension(*), parameter, public prt_prp_subpackages
Definition: prt-prpidm.f90:66
type(inputblockdefinitiontype), dimension(*), parameter, public prt_prp_block_definitions
This module contains simulation methods.
Definition: Sim.f90:10
subroutine, public store_error(msg, terminate)
Store an error message.
Definition: Sim.f90:92
Input block definition. Describes an input block.
Input parameter definition. Describes an input parameter.