MOHID framework consists of 3 main
Numerical Tools, which
provides model calculations, and other auxiliar tools and converters;
Exchange and Storage, saving the
information produced by the model;
User Interfaces (GUI's),
providing management of input data, control of program execution,
and output results analysis.
This water modelling system is
programmed in FORTRAN (ANSI FORTRAN 95) following an object
oriented philosophy. Presently there are three core tools:
MOHID Water -
Three-dimensional numerical program to simulate
surface water bodies;
MOHID Land -
watershed model / Numerical program to simulate hydrographic
basin and aquifers
MOHID Soil -
simulates water flow through porous media
versatility can easily be demonstrated by the range of applications
carried out in the last couple of years: applications in the North
Atlantic to study general circulation, Oil Spills, eutrophication and
residence times in estuaries and reservoirs .
MOHID Land is the
most recent core executable of the MOHID Framework and doesnít have yet
the maturity of MOHID Water. So far it was applied to some watersheds,
among them the Trancao Basin, which outlet is the Tagus Estuary.
Today the MOHID
Water Modelling System is a reliable and robust framework for the
upcoming challenges of water modelling.
The whole structure of the system is divided into FORTRAN modules,
each of them having the functionality of an object class. Actually MOHID model is composed by over
which complete over 260 000 code lines.
Each module is responsible to manage a certain kind of information.
The information flux between modules
is made in a client/server basis, assuring the information
encapsulation in each module. Each module manages his associated
memory, which is dynamically allocated.
b MOHID main
are structured in a hierarchical way. All executables of the MOHID
WaterModelling System are built on the top of one or more base libraries.
The hierarchical structure of MOHIDís Framework is presented in next
Hierarchical design of
The three core executables files (MOHID Water, MOHID Soil and MOHID Land)
can be found at the top of the pyramid. Smaller utility programs are
easily built on the top of the libraries, which are usually designed for
pre or post-processing results of the core executables.
The common design of all MOHID classes,
related to encapsulation/public methods not only turned the code more
reliable and protected against errors, but also led to a very well
structured code, easily understood by new scientists that work with the
model, even taken into account the over 200k code lines which compose
system MOHID uses 2 components to exchange information between model
and graphical user interface:
MOHIDís class EnterData allows to
write and read ASCII data files structured in a similar way as XML
files. The major reason why this class doesnít read XML files is that it
was implemented just before XML turned popular. It would be quiet easy
to modify this class to read XML files, but the backward compatibility
with all existing data files would be lost. In order to exchange
information between the numerical tools written in FORTRAN 95 and the
graphical user interface written in .NET class EnterData has been
developed in both languages.
Almost every module which handles any
kind of process uses a separate instance of module EnterData, since all
modules have to read a specific data file.
Data Format ->
is developed by the
for Super Computation Application (NCSA) under the coordination of Mike
Folk. MOHID uses HDF to stores the results produced by the model since
several years. Actually MOHID uses HDF 5 format in the whole model as new
Several modules of
MOHID system use HDF library to store the results, like for instance the
modules Hydrodynamic, Waterproperties, Turbulence, etc. Each module
produces a separated HDF file. In each of these results files, the
underlying grid of the model is stored (which must not be necessarily the
same for each module). The grid information contains, besides basic
geometry variables (geo-referenced grid connections, bathymetric data,
etc.), also information about the type of grid point (water, land
As MOHID Numerical tools become more
complex, the need for a well structured graphical user interface grows.
With the development of the MOHID Framework a graphical user interface
was built in parallel, which allows the model input data, program execution and
output results analysis.
MOHIDís graphical user interface is
composed by two core programs, written mainly in VB.NET and so it uses
full object oriented features:
which handles the directory structure and data
files necessary to set up a set of MOHID simulations,
and handles output
data files used and generated by Mohid.
It also serves as the main application
which joins all Mohid software;
MOHID GIS which is a tool which
handles geo-referenced data and also visualizes results produced by MOHID.
Both of them incorporate other auxiliar
tools to handle MOHID outputs. Some examples of them are: