Update version info for release v4.6.1 (#2122)
[WRF.git] / hydro / OrchestratorLayer / orchestrator.F90
blob31be2852da6355f42a344e51495bd9cf86cbb688
1 module orchestrator_base
2   use io_manager_base
3   use config_base
4   implicit none
6   ! interface orchestrator_
7   !    procedure orchestrator_init
8   ! end interface orchestrator_
10   type orchestrator_
12      !class(FluxAggregator_) :: flux_aggregator
13      !class(Groundwater_) :: groundwater
14      !class(TimeManager_) :: time_manager
15      type(IOManager_) :: IO_manager
16      type(Configuration_) :: config
17      !class(SpatialObject_) :: spatial_object
19    contains
21      procedure, public, pass(self) :: init => orchestrator_init
23   end type orchestrator_
25   type(orchestrator_), save :: orchestrator
27 contains
29   !We may want routines to access the various components
31   subroutine orchestrator_init(self)
32     class (orchestrator_) :: self
34     self%config = Configuration_()
36     call self%config%init()
37     ! Read configuration and decide how to assemble the various components
38     ! Assuming IO_Manager_serial_ selected
39     self%IO_manager = IOManager_()
41   end subroutine orchestrator_init
43 end module orchestrator_base