lucacarniato / ObjectOrientedFortran

An example of objected-oriented design in Fortran

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ObjectOrientedFortran

An example on how to create, use and compose objects in Fortran with minimal overhead.

The model class “has” implementors, but in an abstract way, so one can “plug” different implementors (e.g. different numerical discretizations) without convoluted if statements.

With careful choices on how the data is allocated and accessed in time-consuming loops, the overhead is minimal.

The model class only depends on interfaces and not on complex concrete modules (with data or function implementations), effectively implementing the inversion of control principle. For large projects this avoids long compilation times and reduces the coupling between modules and functions.

TODO: Add abstract factories

About

An example of objected-oriented design in Fortran


Languages

Language:Fortran 100.0%