MODFLOW 6  version 6.7.0.dev3
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_subpackages
23  public :: prt_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 prt_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 ('NAM')
51  call set_param_pointer(input_definition, prt_nam_param_definitions)
52  case ('DIS')
53  call set_param_pointer(input_definition, prt_dis_param_definitions)
54  case ('DISV')
55  call set_param_pointer(input_definition, prt_disv_param_definitions)
56  case ('FMI')
57  call set_param_pointer(input_definition, prt_fmi_param_definitions)
58  case ('MIP')
59  call set_param_pointer(input_definition, prt_mip_param_definitions)
60  case ('OC')
61  call set_param_pointer(input_definition, prt_oc_param_definitions)
62  case ('PRP')
63  call set_param_pointer(input_definition, prt_prp_param_definitions)
64  case default
65  end select
66  return
67  end function prt_param_definitions
68 
69  function prt_aggregate_definitions(subcomponent) result(input_definition)
70  character(len=*), intent(in) :: subcomponent
71  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
72  nullify (input_definition)
73  select case (subcomponent)
74  case ('NAM')
75  call set_param_pointer(input_definition, prt_nam_aggregate_definitions)
76  case ('DIS')
77  call set_param_pointer(input_definition, prt_dis_aggregate_definitions)
78  case ('DISV')
80  case ('FMI')
81  call set_param_pointer(input_definition, prt_fmi_aggregate_definitions)
82  case ('MIP')
83  call set_param_pointer(input_definition, prt_mip_aggregate_definitions)
84  case ('OC')
85  call set_param_pointer(input_definition, prt_oc_aggregate_definitions)
86  case ('PRP')
87  call set_param_pointer(input_definition, prt_prp_aggregate_definitions)
88  case default
89  end select
90  return
91  end function prt_aggregate_definitions
92 
93  function prt_block_definitions(subcomponent) result(input_definition)
94  character(len=*), intent(in) :: subcomponent
95  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
96  nullify (input_definition)
97  select case (subcomponent)
98  case ('NAM')
99  call set_block_pointer(input_definition, prt_nam_block_definitions)
100  case ('DIS')
101  call set_block_pointer(input_definition, prt_dis_block_definitions)
102  case ('DISV')
103  call set_block_pointer(input_definition, prt_disv_block_definitions)
104  case ('FMI')
105  call set_block_pointer(input_definition, prt_fmi_block_definitions)
106  case ('MIP')
107  call set_block_pointer(input_definition, prt_mip_block_definitions)
108  case ('OC')
109  call set_block_pointer(input_definition, prt_oc_block_definitions)
110  case ('PRP')
111  call set_block_pointer(input_definition, prt_prp_block_definitions)
112  case default
113  end select
114  return
115  end function prt_block_definitions
116 
117  function prt_idm_multi_package(subcomponent) result(multi_package)
118  character(len=*), intent(in) :: subcomponent
119  logical :: multi_package
120  select case (subcomponent)
121  case ('NAM')
122  multi_package = prt_nam_multi_package
123  case ('DIS')
124  multi_package = prt_dis_multi_package
125  case ('DISV')
126  multi_package = prt_disv_multi_package
127  case ('FMI')
128  multi_package = prt_fmi_multi_package
129  case ('MIP')
130  multi_package = prt_mip_multi_package
131  case ('OC')
132  multi_package = prt_oc_multi_package
133  case ('PRP')
134  multi_package = prt_prp_multi_package
135  case default
136  call store_error('Idm selector subcomponent not found; '//&
137  &'component="PRT"'//&
138  &', subcomponent="'//trim(subcomponent)//'".', .true.)
139  end select
140  return
141  end function prt_idm_multi_package
142 
143  function prt_idm_subpackages(subcomponent) result(subpackages)
144  character(len=*), intent(in) :: subcomponent
145  character(len=16), dimension(:), pointer :: subpackages
146  select case (subcomponent)
147  case ('NAM')
148  call set_subpkg_pointer(subpackages, prt_nam_subpackages)
149  case ('DIS')
150  call set_subpkg_pointer(subpackages, prt_dis_subpackages)
151  case ('DISV')
152  call set_subpkg_pointer(subpackages, prt_disv_subpackages)
153  case ('FMI')
154  call set_subpkg_pointer(subpackages, prt_fmi_subpackages)
155  case ('MIP')
156  call set_subpkg_pointer(subpackages, prt_mip_subpackages)
157  case ('OC')
158  call set_subpkg_pointer(subpackages, prt_oc_subpackages)
159  case ('PRP')
160  call set_subpkg_pointer(subpackages, prt_prp_subpackages)
161  case default
162  end select
163  return
164  end function prt_idm_subpackages
165 
166  function prt_idm_integrated(subcomponent) result(integrated)
167  character(len=*), intent(in) :: subcomponent
168  logical :: integrated
169  integrated = .false.
170  select case (subcomponent)
171  case ('NAM')
172  integrated = .true.
173  case ('DIS')
174  integrated = .true.
175  case ('DISV')
176  integrated = .true.
177  case ('FMI')
178  integrated = .true.
179  case ('MIP')
180  integrated = .true.
181  case ('OC')
182  integrated = .true.
183  case ('PRP')
184  integrated = .true.
185  case default
186  end select
187  return
188  end function prt_idm_integrated
189 
190 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)
subroutine set_param_pointer(input_dfn, input_dfn_target)
type(inputblockdefinitiontype) function, dimension(:), pointer, public prt_block_definitions(subcomponent)
This module contains the InputDefinitionModule.
character(len=16), dimension(*), parameter, public prt_dis_subpackages
Definition: prt-disidm.f90:43
type(inputparamdefinitiontype), dimension(*), parameter, public prt_dis_aggregate_definitions
Definition: prt-disidm.f90:534
type(inputblockdefinitiontype), dimension(*), parameter, public prt_dis_block_definitions
Definition: prt-disidm.f90:556
type(inputparamdefinitiontype), dimension(*), parameter, public prt_dis_param_definitions
Definition: prt-disidm.f90:505
logical, public prt_dis_multi_package
Definition: prt-disidm.f90:41
logical, public prt_disv_multi_package
Definition: prt-disvidm.f90:47
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:49
type(inputblockdefinitiontype), dimension(*), parameter, public prt_disv_block_definitions
type(inputparamdefinitiontype), dimension(*), parameter, public prt_fmi_aggregate_definitions
Definition: prt-fmiidm.f90:133
logical, public prt_fmi_multi_package
Definition: prt-fmiidm.f90:21
character(len=16), dimension(*), parameter, public prt_fmi_subpackages
Definition: prt-fmiidm.f90:23
type(inputparamdefinitiontype), dimension(*), parameter, public prt_fmi_param_definitions
Definition: prt-fmiidm.f90:105
type(inputblockdefinitiontype), dimension(*), parameter, public prt_fmi_block_definitions
Definition: prt-fmiidm.f90:139
type(inputblockdefinitiontype), dimension(*), parameter, public prt_mip_block_definitions
Definition: prt-mipidm.f90:136
logical, public prt_mip_multi_package
Definition: prt-mipidm.f90:21
type(inputparamdefinitiontype), dimension(*), parameter, public prt_mip_aggregate_definitions
Definition: prt-mipidm.f90:114
type(inputparamdefinitiontype), dimension(*), parameter, public prt_mip_param_definitions
Definition: prt-mipidm.f90:105
character(len=16), dimension(*), parameter, public prt_mip_subpackages
Definition: prt-mipidm.f90:23
type(inputblockdefinitiontype), dimension(*), parameter, public prt_nam_block_definitions
Definition: prt-namidm.f90:202
type(inputparamdefinitiontype), dimension(*), parameter, public prt_nam_param_definitions
Definition: prt-namidm.f90:165
logical, public prt_nam_multi_package
Definition: prt-namidm.f90:24
type(inputparamdefinitiontype), dimension(*), parameter, public prt_nam_aggregate_definitions
Definition: prt-namidm.f90:196
character(len=16), dimension(*), parameter, public prt_nam_subpackages
Definition: prt-namidm.f90:26
logical, public prt_oc_multi_package
Definition: prt-ocidm.f90:58
type(inputparamdefinitiontype), dimension(*), parameter, public prt_oc_param_definitions
Definition: prt-ocidm.f90:845
type(inputparamdefinitiontype), dimension(*), parameter, public prt_oc_aggregate_definitions
Definition: prt-ocidm.f90:910
character(len=16), dimension(*), parameter, public prt_oc_subpackages
Definition: prt-ocidm.f90:60
type(inputblockdefinitiontype), dimension(*), parameter, public prt_oc_block_definitions
Definition: prt-ocidm.f90:916
type(inputparamdefinitiontype), dimension(*), parameter, public prt_prp_param_definitions
Definition: prt-prpidm.f90:945
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:65
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