GENIE Main

From SourceWiki
Jump to navigation Jump to search

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)

The Future