1 module orchestrator_base
6 ! interface orchestrator_
7 ! procedure orchestrator_init
8 ! end interface 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
21 procedure, public, pass(self) :: init => orchestrator_init
23 end type orchestrator_
25 type(orchestrator_), save :: orchestrator
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