Difference between revisions of "GENIE Main"
Genie-user (talk | contribs) |
Genie-user (talk | contribs) |
||
Line 42: | Line 42: | ||
*genie_control.f90 | *genie_control.f90 | ||
** flags to control the component coupling | ** flags to control the component coupling | ||
− | |||
*genie_global.f90 | *genie_global.f90 | ||
− | ** any common variables (i.e. those used during coupling) | + | ** 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 | *genie.F | ||
** the overall coupling logic and time loop: do this, then that, then the other, if, then, else. | ** the overall coupling logic and time loop: do this, then that, then the other, if, then, else. |
Revision as of 11:29, 21 June 2007
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)