GENIE Main
Philosophy
Central location for shared stuff. 'Linchpin' for coupling together model components.
All values exchanged between components for the coupling process should pass through genie-main. No 'secret passages' or 'trap doors', which can be a sideffect of using common blocks.
Avoid duplication. Maintain a clear, hierarchical relationship. This significantly enhances clarity and correspondingly the process of extending and improving the model.
Default Settings
runtime_defaults.sh
vanilla
Configuration Files
genie-main/configs
morph vanilla into flavours
Note compile-time and run-time settings
Compile
user.mak makefile.arc makefile (testing.mak)
calls sub-makefiles
Run the Model
user.sh
genie_example.job
namelists.sh
Source Code
- genie_control.f90
- flags to control the component coupling
- genie_global.f90
- any common variables (i.e. those used during coupling)
- constants, e.g. Pi
(** functions or subroutines which shold be common--put in a different module)
- genie.F
- the overall coupling logic and time loop: do this, then that, then the other, if, then, else.
argument passing.
(genie_ini_wrappers.f90, genie_loop_wrappers.f90)