MODFLOW 6  version 6.7.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_subpackages
18  public :: sim_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 sim_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 ('NAM')
46  call set_param_pointer(input_definition, sim_nam_param_definitions)
47  case ('TDIS')
48  call set_param_pointer(input_definition, sim_tdis_param_definitions)
49  case default
50  end select
51  return
52  end function sim_param_definitions
53 
54  function sim_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 ('NAM')
60  call set_param_pointer(input_definition, sim_nam_aggregate_definitions)
61  case ('TDIS')
63  case default
64  end select
65  return
66  end function sim_aggregate_definitions
67 
68  function sim_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 ('NAM')
74  call set_block_pointer(input_definition, sim_nam_block_definitions)
75  case ('TDIS')
76  call set_block_pointer(input_definition, sim_tdis_block_definitions)
77  case default
78  end select
79  return
80  end function sim_block_definitions
81 
82  function sim_idm_multi_package(subcomponent) result(multi_package)
83  character(len=*), intent(in) :: subcomponent
84  logical :: multi_package
85  select case (subcomponent)
86  case ('NAM')
87  multi_package = sim_nam_multi_package
88  case ('TDIS')
89  multi_package = sim_tdis_multi_package
90  case default
91  call store_error('Idm selector subcomponent not found; '//&
92  &'component="SIM"'//&
93  &', subcomponent="'//trim(subcomponent)//'".', .true.)
94  end select
95  return
96  end function sim_idm_multi_package
97 
98  function sim_idm_subpackages(subcomponent) result(subpackages)
99  character(len=*), intent(in) :: subcomponent
100  character(len=16), dimension(:), pointer :: subpackages
101  select case (subcomponent)
102  case ('NAM')
103  call set_subpkg_pointer(subpackages, sim_nam_subpackages)
104  case ('TDIS')
105  call set_subpkg_pointer(subpackages, sim_tdis_subpackages)
106  case default
107  end select
108  return
109  end function sim_idm_subpackages
110 
111  function sim_idm_integrated(subcomponent) result(integrated)
112  character(len=*), intent(in) :: subcomponent
113  logical :: integrated
114  integrated = .false.
115  select case (subcomponent)
116  case ('NAM')
117  integrated = .true.
118  case ('TDIS')
119  integrated = .true.
120  case default
121  end select
122  return
123  end function sim_idm_integrated
124 
125 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)
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)
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
logical, public sim_nam_multi_package
Definition: sim-namidm.f90:38
type(inputblockdefinitiontype), dimension(*), parameter, public sim_nam_block_definitions
Definition: sim-namidm.f90:512
character(len=16), dimension(*), parameter, public sim_nam_subpackages
Definition: sim-namidm.f90:40
type(inputparamdefinitiontype), dimension(*), parameter, public sim_nam_param_definitions
Definition: sim-namidm.f90:424
type(inputparamdefinitiontype), dimension(*), parameter, public sim_nam_aggregate_definitions
Definition: sim-namidm.f90:504
logical, public sim_tdis_multi_package
Definition: sim-tdisidm.f90:27
type(inputparamdefinitiontype), dimension(*), parameter, public sim_tdis_param_definitions
character(len=16), dimension(*), parameter, public sim_tdis_subpackages
Definition: sim-tdisidm.f90:29
type(inputparamdefinitiontype), dimension(*), parameter, public sim_tdis_aggregate_definitions
type(inputblockdefinitiontype), dimension(*), parameter, public sim_tdis_block_definitions