MODFLOW 6  version 6.7.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
10 
11  implicit none
12  private
13  public :: utl_param_definitions
15  public :: utl_block_definitions
16  public :: utl_idm_multi_package
17  public :: utl_idm_subpackages
18  public :: utl_idm_integrated
19 
20 contains
21 
22  subroutine set_param_pointer(input_dfn, input_dfn_target)
23  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
24  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
25  input_dfn => input_dfn_target
26  end subroutine set_param_pointer
27 
28  subroutine set_block_pointer(input_dfn, input_dfn_target)
29  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
30  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
31  input_dfn => input_dfn_target
32  end subroutine set_block_pointer
33 
34  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
35  character(len=16), dimension(:), pointer :: subpkg_list
36  character(len=16), dimension(:), target :: subpkg_list_target
37  subpkg_list => subpkg_list_target
38  end subroutine set_subpkg_pointer
39 
40  function utl_param_definitions(subcomponent) result(input_definition)
41  character(len=*), intent(in) :: subcomponent
42  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
43  nullify (input_definition)
44  select case (subcomponent)
45  case ('HPC')
46  call set_param_pointer(input_definition, utl_hpc_param_definitions)
47  case ('NCF')
48  call set_param_pointer(input_definition, utl_ncf_param_definitions)
49  case default
50  end select
51  return
52  end function utl_param_definitions
53 
54  function utl_aggregate_definitions(subcomponent) result(input_definition)
55  character(len=*), intent(in) :: subcomponent
56  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
57  nullify (input_definition)
58  select case (subcomponent)
59  case ('HPC')
60  call set_param_pointer(input_definition, utl_hpc_aggregate_definitions)
61  case ('NCF')
62  call set_param_pointer(input_definition, utl_ncf_aggregate_definitions)
63  case default
64  end select
65  return
66  end function utl_aggregate_definitions
67 
68  function utl_block_definitions(subcomponent) result(input_definition)
69  character(len=*), intent(in) :: subcomponent
70  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
71  nullify (input_definition)
72  select case (subcomponent)
73  case ('HPC')
74  call set_block_pointer(input_definition, utl_hpc_block_definitions)
75  case ('NCF')
76  call set_block_pointer(input_definition, utl_ncf_block_definitions)
77  case default
78  end select
79  return
80  end function utl_block_definitions
81 
82  function utl_idm_multi_package(subcomponent) result(multi_package)
83  character(len=*), intent(in) :: subcomponent
84  logical :: multi_package
85  select case (subcomponent)
86  case ('HPC')
87  multi_package = utl_hpc_multi_package
88  case ('NCF')
89  multi_package = utl_ncf_multi_package
90  case default
91  call store_error('Idm selector subcomponent not found; '//&
92  &'component="UTL"'//&
93  &', subcomponent="'//trim(subcomponent)//'".', .true.)
94  end select
95  return
96  end function utl_idm_multi_package
97 
98  function utl_idm_subpackages(subcomponent) result(subpackages)
99  character(len=*), intent(in) :: subcomponent
100  character(len=16), dimension(:), pointer :: subpackages
101  select case (subcomponent)
102  case ('HPC')
103  call set_subpkg_pointer(subpackages, utl_hpc_subpackages)
104  case ('NCF')
105  call set_subpkg_pointer(subpackages, utl_ncf_subpackages)
106  case default
107  end select
108  return
109  end function utl_idm_subpackages
110 
111  function utl_idm_integrated(subcomponent) result(integrated)
112  character(len=*), intent(in) :: subcomponent
113  logical :: integrated
114  integrated = .false.
115  select case (subcomponent)
116  case ('HPC')
117  integrated = .true.
118  case ('NCF')
119  integrated = .true.
120  case default
121  end select
122  return
123  end function utl_idm_integrated
124 
125 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)
This module contains the InputDefinitionModule.
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:134
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:128
type(inputparamdefinitiontype), dimension(*), parameter, public utl_hpc_param_definitions
Definition: utl-hpcidm.f90:101
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:270
logical, public utl_ncf_multi_package
Definition: utl-ncfidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public utl_ncf_param_definitions
Definition: utl-ncfidm.f90:253
type(inputblockdefinitiontype), dimension(*), parameter, public utl_ncf_block_definitions
Definition: utl-ncfidm.f90:291