MONC
/nfs/a277/earlcd/dev/monc/svn-git/monc/monc_driver.F90
Go to the documentation of this file.
1 
2 !
3 program monc_driver
4  use io_server_mod, only : io_server_run
5  use monc_mod, only : monc_core_bootstrap
8  ! Include the autogenerated use modules for each of the components
9 #ifdef USE_MAKE
10 #include "components/componentheaders.autogen"
11 #include "testcases/testcaseheaders.autogen"
12 #else
13 #include "componentheaders.static"
14 #include "testcaseheaders.static"
15 #endif
16  implicit none
17 
18  type(list_type) :: component_descriptions
19 
20  call get_compiled_components(component_descriptions)
21  call monc_core_bootstrap(component_descriptions, io_server_run)
22 contains
23 
24  subroutine get_compiled_components(component_descriptions)
25  type(list_type), intent(inout) :: component_descriptions
26 
27  ! Include the autogenerated registration calls for each of the components
28 #ifdef USE_MAKE
29 #include "components/componentregistrations.autogen"
30 #include "testcases/testcaseregistrations.autogen"
31 #else
32 #include "componentregistrations.static"
33 #include "testcaseregistrations.static"
34 #endif
35  end subroutine get_compiled_components
36 
38  subroutine add_component(component_descriptions, single_description)
39  type(list_type), intent(inout) :: component_descriptions
40  type(component_descriptor_type), intent(in) :: single_description
41 
42  class(*), pointer :: raw_data
43  allocate(raw_data, source=single_description)
44  call c_add_generic(component_descriptions, raw_data, .false.)
45  end subroutine add_component
46 end program monc_driver
subroutine get_compiled_components(component_descriptions)
Definition: monc_driver.F90:25
subroutine, public monc_core_bootstrap(component_descriptions, io_server_run)
Main core entry point to bootstrap running the model.
Definition: monc.F90:52
program monc_driver
MONC program entry point which simply calls the main procedure in the MONC module.
Definition: monc_driver.F90:3
subroutine, public io_server_run(options_database, io_communicator_arg, provided_threading, total_global_processes, continuation_run, io_configuration_file)
Called to start the IO server and once this subroutine returns then it indicates that the IO server h...
Definition: ioserver.F90:66
Main core entry point to the rest of the model, this is called by the program main.
Definition: monc.F90:2
Interfaces and types that MONC components must specify.
Collection data structures.
Definition: collections.F90:7
subroutine add_component(component_descriptions, single_description)
Called by each component to add itself to the registration list_type.
Definition: monc_driver.F90:39
List data structure which implements a doubly linked list. This list will preserve its order...
Definition: collections.F90:60
Adds a generic element to the end of the list.
The main IO server functionality which handles waiting for commands and data both of which are delt w...
Definition: ioserver.F90:5