MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
IdmSimDfnSelector.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 :: sim_param_definitions
15  public :: sim_block_definitions
16  public :: sim_idm_multi_package
17  public :: sim_idm_is_advanced
18  public :: sim_idm_subpackages
19  public :: sim_idm_integrated
20 
21 contains
22 
23  subroutine set_param_pointer(input_dfn, input_dfn_target)
24  type(inputparamdefinitiontype), dimension(:), pointer :: input_dfn
25  type(inputparamdefinitiontype), dimension(:), target :: input_dfn_target
26  input_dfn => input_dfn_target
27  end subroutine set_param_pointer
28 
29  subroutine set_block_pointer(input_dfn, input_dfn_target)
30  type(inputblockdefinitiontype), dimension(:), pointer :: input_dfn
31  type(inputblockdefinitiontype), dimension(:), target :: input_dfn_target
32  input_dfn => input_dfn_target
33  end subroutine set_block_pointer
34 
35  subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
36  character(len=16), dimension(:), pointer :: subpkg_list
37  character(len=16), dimension(:), target :: subpkg_list_target
38  subpkg_list => subpkg_list_target
39  end subroutine set_subpkg_pointer
40 
41  function sim_param_definitions(subcomponent) result(input_definition)
42  character(len=*), intent(in) :: subcomponent
43  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
44  nullify (input_definition)
45  select case (subcomponent)
46  case ('NAM')
47  call set_param_pointer(input_definition, sim_nam_param_definitions)
48  case ('TDIS')
49  call set_param_pointer(input_definition, sim_tdis_param_definitions)
50  case default
51  end select
52  return
53  end function sim_param_definitions
54 
55  function sim_aggregate_definitions(subcomponent) result(input_definition)
56  character(len=*), intent(in) :: subcomponent
57  type(inputparamdefinitiontype), dimension(:), pointer :: input_definition
58  nullify (input_definition)
59  select case (subcomponent)
60  case ('NAM')
61  call set_param_pointer(input_definition, sim_nam_aggregate_definitions)
62  case ('TDIS')
64  case default
65  end select
66  return
67  end function sim_aggregate_definitions
68 
69  function sim_block_definitions(subcomponent) result(input_definition)
70  character(len=*), intent(in) :: subcomponent
71  type(inputblockdefinitiontype), dimension(:), pointer :: input_definition
72  nullify (input_definition)
73  select case (subcomponent)
74  case ('NAM')
75  call set_block_pointer(input_definition, sim_nam_block_definitions)
76  case ('TDIS')
77  call set_block_pointer(input_definition, sim_tdis_block_definitions)
78  case default
79  end select
80  return
81  end function sim_block_definitions
82 
83  function sim_idm_multi_package(subcomponent) result(multi_package)
84  character(len=*), intent(in) :: subcomponent
85  logical :: multi_package
86  select case (subcomponent)
87  case ('NAM')
88  multi_package = sim_nam_multi_package
89  case ('TDIS')
90  multi_package = sim_tdis_multi_package
91  case default
92  call store_error('Idm selector subcomponent not found; '//&
93  &'component="SIM"'//&
94  &', subcomponent="'//trim(subcomponent)//'".', .true.)
95  end select
96  return
97  end function sim_idm_multi_package
98 
99  function sim_idm_is_advanced(subcomponent) result(is_advanced)
100  character(len=*), intent(in) :: subcomponent
101  logical :: is_advanced
102  select case (subcomponent)
103  case ('NAM')
104  is_advanced = sim_nam_is_advanced
105  case ('TDIS')
106  is_advanced = sim_tdis_is_advanced
107  case default
108  call store_error('Idm selector subcomponent not found; '//&
109  &'component="SIM"'//&
110  &', subcomponent="'//trim(subcomponent)//'".', .true.)
111  end select
112  return
113  end function sim_idm_is_advanced
114 
115  function sim_idm_subpackages(subcomponent) result(subpackages)
116  character(len=*), intent(in) :: subcomponent
117  character(len=16), dimension(:), pointer :: subpackages
118  select case (subcomponent)
119  case ('NAM')
120  call set_subpkg_pointer(subpackages, sim_nam_subpackages)
121  case ('TDIS')
122  call set_subpkg_pointer(subpackages, sim_tdis_subpackages)
123  case default
124  end select
125  return
126  end function sim_idm_subpackages
127 
128  function sim_idm_integrated(subcomponent) result(integrated)
129  character(len=*), intent(in) :: subcomponent
130  logical :: integrated
131  integrated = .false.
132  select case (subcomponent)
133  case ('NAM')
134  integrated = .true.
135  case ('TDIS')
136  integrated = .true.
137  case default
138  end select
139  return
140  end function sim_idm_integrated
141 
142 end module idmsimdfnselectormodule
This module contains simulation constants.
Definition: Constants.f90:9
integer(i4b), parameter lenvarname
maximum length of a variable name
Definition: Constants.f90:17
type(inputblockdefinitiontype) function, dimension(:), pointer, public sim_block_definitions(subcomponent)
logical function, public sim_idm_multi_package(subcomponent)
subroutine set_param_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public sim_aggregate_definitions(subcomponent)
subroutine set_block_pointer(input_dfn, input_dfn_target)
type(inputparamdefinitiontype) function, dimension(:), pointer, public sim_param_definitions(subcomponent)
logical function, public sim_idm_is_advanced(subcomponent)
subroutine set_subpkg_pointer(subpkg_list, subpkg_list_target)
logical function, public sim_idm_integrated(subcomponent)
character(len=16) function, dimension(:), pointer, public sim_idm_subpackages(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
logical, public sim_nam_multi_package
Definition: sim-namidm.f90:40
type(inputblockdefinitiontype), dimension(*), parameter, public sim_nam_block_definitions
Definition: sim-namidm.f90:559
character(len=16), dimension(*), parameter, public sim_nam_subpackages
Definition: sim-namidm.f90:43
type(inputparamdefinitiontype), dimension(*), parameter, public sim_nam_param_definitions
Definition: sim-namidm.f90:467
logical, public sim_nam_is_advanced
Definition: sim-namidm.f90:41
type(inputparamdefinitiontype), dimension(*), parameter, public sim_nam_aggregate_definitions
Definition: sim-namidm.f90:551
logical, public sim_tdis_multi_package
Definition: sim-tdisidm.f90:28
type(inputparamdefinitiontype), dimension(*), parameter, public sim_tdis_param_definitions
character(len=16), dimension(*), parameter, public sim_tdis_subpackages
Definition: sim-tdisidm.f90:31
type(inputparamdefinitiontype), dimension(*), parameter, public sim_tdis_aggregate_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public sim_tdis_block_definitions
logical, public sim_tdis_is_advanced
Definition: sim-tdisidm.f90:29
Input block definition. Describes an input block.
Input parameter definition. Describes an input parameter.