The development of MOHID started back in 1985. Since that time a continuous development effort of new features has been maintained. Model updates and improvements were made available in a regular basis were used in the framework of many research and engineering projects.
Initially, MOHID was a two-dimensional tidal model written in FORTRAN 77 (Neves, 1985). This version also gave the present name to model, which derives from the Portuguese abbreviation of MOdelo HIDrodinâmico (Hydrodynamic Model) and was used to study estuaries and coastal areas using a classic finite-differences approach.
In the subsequent years, two-dimensional eulerian and lagrangian transport modules were included in this model, as well as a Boussinesq model for non-hydrostatic gravity waves (Silva, 1991). The first three-dimensional version of the model was introduced with the version MOHID 3D which used a vertical double Sigma coordinate (Santos, 1995). The limitations of the double Sigma coordinate revealed the necessity to develop a new version which could use a generic vertical coordinate, allowing the user to choose from several coordinates, depending on the main processes in the study area. This necessity led to the introduction of the concept of the finite volumes approach which was introduced in the version MESH 3D (Martins, 1999). In MESH 3D model, a 3D eulerian transport model, a 3D lagrangian transport model (Leitão, 1996) and a zero-dimensional water quality model (Miranda, 1999) were included. This version revealed that the use of an integrated model based on a generic vertical coordinate is a very powerful tool.
However it was clear that the model was difficult to maintain and to extend due to the FORTRAN 77 language limitations and due to the increasing number of users and programmers and the interdisciplinary character of the modelled processes. Thus, it was necessary to establish a methodology which permitted to reuse the code more often and improve its robustness related to programming errors (Leitão, 2003). It was decided to reorganize the model, writing it in ANSI FORTRAN 95, profiting from all its new features, including the ability to produce object oriented programming with it, although it is not an object oriented language. This migration began in 1998, implementing object oriented features like those described in Decyk (Decyk, et al., 1997) with significant changes in code organization (Miranda, et al., 2000). This migration resulted in an object oriented model for surface water bodies which integrates scales and processes (Leitão, 2003).