Coder Social home page Coder Social logo

mohid-water-modelling-system / mohid Goto Github PK

View Code? Open in Web Editor NEW
71.0 27.0 58.0 585.96 MB

Official MOHID Water Modelling System repository

Home Page: http://www.mohid.com

C 11.60% C++ 2.21% Fortran 83.29% CMake 0.02% Shell 0.15% Pascal 0.09% Cuda 0.05% Makefile 0.05% Batchfile 0.01% C# 0.23% Roff 2.28% Rich Text Format 0.04%
catchment circulation estuary mohid ocean watershed fortran biogeochemical-model hydrodynamic-modeling lagrangian-ocean-modelling

mohid's Introduction

MOHID - Water Modelling System

MOHID is short for Modelo Hidrodinâmico which is hydrodynamic model in Portuguese. MOHID is a three-dimensional water modelling system, developed by MARETEC (Marine and Environmental Technology Research Center) at Instituto Superior Técnico (IST) which belongs to Lisbon University.

What is this repository?

This is the MOHID Water Modelling System OFFICIAL repository

Overview

MOHID is a modular finite volumes water-modelling system written in ANSI-Fortran95 using an Object-oriented programming philosophy, integrating diverse mathematical models and supporting graphical user interfaces that manage all the pre- and post-processing. MOHID allows the adoption of an integrated modelling philosophy, not only of processes (physical and biogeochemical), but also of different scales (allowing the use of nested models) and systems (estuaries and watersheds), due to the adoption of an object oriented programming philosophy. 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. All programs included in MOHID Water Modelling System are built on the top of one or more base libraries and the two core executables files can be found at the top of the pyramid:

  • MOHID Water – Three-dimensional mathematical model to simulate surface water bodies.
  • MOHID Land – Watershed mathematical model or Hydrological transport model designed to simulate drainage basin and aquifer;

Smaller utility programs are easily built on the top of the libraries, which are usually designed for pre or post-processing results of the models. This support tools are normally managed by graphical user interfaces which allow management of input data, control of program execution, and output results analysis, along with other pre- and post-processing operations. The integration of MOHID’s different tools can be easily achieved since these tools are based on the same framework. This coupling can thus be used to study the water cycle and its associated processes in an integrated approach.

Help, Bugs, Feedback

If you need help with MOHID, want to keep up with progress, chat with developers or ask any other questions about MOHID, you can hang out by mail: [email protected] or consult our MOHID wiki. You can also subscribe to our MOHID forum. To report bugs, please create a GitHub issue or contact any developers. More information consult http://www.mohid.com

License

GNU General Public License. See the GNU General Public License web page for more information.

mohid's People

Contributors

anaioliveira avatar campuzanofj avatar eacarina avatar eduardojauch avatar frank-am avatar guifranz avatar guillaume7 avatar isabellascione avatar jauchongithub avatar joao-ribeiro avatar joaobsobrinho avatar llaximi avatar luisfernandes77 avatar mmateus avatar odavidbrito avatar oscarbb avatar paulochambelgit avatar pedrochambel avatar rbcanelas avatar ricardomiranda avatar rodrigomfernandes avatar rosatrancoso avatar sofiasaraiva avatar tm-cg avatar xjpalma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mohid's Issues

Idea: MANDATORY Name/Module Name values for any property

It would be very helpful to make "mandatory" the definition of the property name and also the modules name in the property structure, so to enable a better warning to the user when an error regarding properties is found.

Currently it is possible to have properties without name and usually there is no way to tell to which module the property belongs if the error happens inside a function called by the module, but that is in other module.

Correct type inconsistencies and stop using archaic intrinsic functions

Compiling Base1 & Base2 with GNU Fortran (GFortran) with naive compiler flags renders a list of errors related to type mismatches. Example:

ModuleFunctions.F90:6230:25:
aux1 = dmod (aux, DTD)
1
Error: 'a' argument of 'dmod' intrinsic at (1) must be double precision

ModuleFunctions.F90:6231:33:
MinError = min (dabs(aux1), dabs(DTD - aux1))
1
Error: 'a' argument of 'dabs' intrinsic at (1) must be double precision

These are related to the use of dabs and dmod, that shouldn't be used (using abs and mod is enough).

ModuleVoronoi3D.f:71:72:
* ipnti,iflpi,iarti,irani,ireci,iredi,nw,nt,icon,is)
1
Error: Type mismatch in argument 'x' at (1); passed REAL(8) to REAL(16)

ModuleVoronoi3D is laden with these issues. More might show elsewhere once these get corrected.

iFort and compilation flags for GFortran might work with this, but the outcome is typically a wildcard and might produce unstable results. This might be the reason GFort compiles but then execution throws segfaults.

Error in ConverToHDF5

Hello everyone.
Since a few years ago we use the MOHID model, a few days ago we installed MOHID on a Linux machine, based on the information in the repository (update), however, when using ConvertToFDF5 for an interpolation process in the water column an error occurs that was not observed in previous processes (presented below).

Reading temperature fields
HDF5-DIAG: Error detected in HDF5 (1.8.23) thread 0:
#000: H5A.c line 626 in H5Aread(): unable to read attribute
major: Attribute
minor: Read failed
#1: H5Aint.c line 661 in H5A_read(): unable to convert between src and dst datatypes
major: Attribute
minor: Feature is unsupported
#2: H5T.c line 4649 in H5T_path_find(): no appropriate function for conversion path
major: Datatype
minor: Unable to initialize object
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
libc.so.6 000014B20B85B050 Unknown Unknown Unknown
libiomp5.so 000014B20BB7F07A Unknown Unknown Unknown
libiomp5.so 000014B20BB7EEB0 Unknown Unknown Unknown
libiomp5.so 000014B20BB7ECC3 Unknown Unknown Unknown
libiomp5.so 000014B20BB7FE7D Unknown Unknown Unknown
libiomp5.so 000014B20BB742A4 Unknown Unknown Unknown
libiomp5.so 000014B20BB6EDB3 Unknown Unknown Unknown
libiomp5.so 000014B20BB6F727 Unknown Unknown Unknown
libifcoremt.so.5 000014B20D732044 for_allocate_hand Unknown Unknown
ConvertToHDF5.exe 00000000004C5FA9 Unknown Unknown Unknown
ConvertToHDF5.exe 00000000004B3F6E Unknown Unknown Unknown
ConvertToHDF5.exe 00000000004AC780 Unknown Unknown Unknown
ConvertToHDF5.exe 00000000004A27A7 Unknown Unknown Unknown
ConvertToHDF5.exe 0000000000B6E050 Unknown Unknown Unknown
ConvertToHDF5.exe 0000000000B6ED1B Unknown Unknown Unknown
ConvertToHDF5.exe 0000000000B6D09E Unknown Unknown Unknown
ConvertToHDF5.exe 000000000040616D Unknown Unknown Unknown
libc.so.6 000014B20B84624A Unknown Unknown Unknown
libc.so.6 000014B20B846305 __libc_start_main Unknown Unknown
ConvertToHDF5.exe 0000000000406081 Unknown Unknown Unknown

The working methodology was as follows:

  1. Download information from HYCOM for 40 levels in the vertical.
  2. The information was interpolated on a bathymetry of interest and then an HDF5 file was created (we used MATLAB).
  3. The created HDF5 file was delivered to CONVERTHDF5 for interpolation considering as parent bathymetry and new bathymetry the one used in item 2. In addition, the geometry file was provided (attached GEOMETRY).
  4. The process was executed and the HDF5 file was obtained interpolated to the domain of interest based on the data and geometry information.

At present we do not get this result, it would be very useful for us a recommendation. Thank you.

HYCOMGeometry.txt
MOHIDGeometry.txt

Problems with ConvertToFDF5 Aplication

Hellow,
I have an old version of MOHID, of 2008. I have been runing an hidrodinamic model of a region of Chile using MOHID GIS, GUI and Post Procesor, without any problem. Nevertheless, now I want to incorpore atmospheric files from WRF in my model, so I tried to use the aplication "ConvertToHDF5", but I have not been successful, I can't even open the aplication, It says that the netcdf.dll it's missing. So I tried to do it again with the netcdf.dll that comes with the actualization of MOHID Water v 2019, but It still doesn't work. So, I ask If you know if there is a new version of all aplications in a package, so I don't have problems with the diferent versions, and if you know where I can find it? Specially refering to ConvertToHDF5 aplication... Or if you know where I can find that specific netcdf.dll or have another suggestion...
Thank you very much,
Gabriela

Idea: add OMP_NUM_THREADS keyword to Mohid Land

It would be nice to have the possibility to control the number of threads when running MohidLand with OpenMP.
Could be through the same keyword already used in Mohid Water: OMP_NUM_THREADS.

Model Parameter Verfication(MOHID is quite slow than I expected.)

Hello All,

I am writing to ask a question about MOHID Input files and paramters.

In my computer (Windows), it take one hour for forecasting one day.
As far as I concerned it is quite slow because the model domain is small and the computational load is not that big.
Then I think I'm calculating some other variables that I don't want to calculate. And I want to cacluate only the flow considering the tide and winds.
So I suspect that the option is set to calculate other variables t,s,others.

And I also want to ask if it will be better to do it on Linux.
Plese let me know if you need to addtional information.

Thank you,
Kihang

Below is my environments
OS: Windows
Mohid Exec: MOHIDWater_v18.06_x64_OpenMP.exe
Level1.zip

Add metadata to hdf5 ouput

It would be very useful if the hdf5 files were more descriptive.

A group with metadata such as
-type of file (hydrodynamic, lagrangian, waterproperties, external interpolated solution, ...)
-dimensionality of the encased solution (3D, 2D, 1D)
-type of mesh
-version of mohid or tool that produced it
-...

Every file should have this printed by mohid, by default, to help with the development of more semantically intense post processing tools.

Automatic removing TAB from input

Would be nice to remove the TAB characters from input files automatically on loading the input files.
This can avoid a lot of trouble.

Idea: Remove "stop" from subroutines

The idea is to change the actual behavior of the model, that causes to the model to stop inside inner functions/subroutines, where there is no contextualization of the error, making very difficult to understand the problem.

A very easy example is the "GetData" routines in the ModuleEnterData.
If an error is found while inside them, the model stops, and it is not possible to know which module input file was being read or which keyword/block.

The correct behavior is to the routines to return with the "stat" variable with the error, and so on, up to a higher level, where the context can be show to the user, making easier to it to understand the problem.

Module Atmosphere is not predicting DT

When running MOHID Land, module Atmosphere should return to Basin the DT it wants for the next time step and also how much to the next event (rain/irrigation) to avoid one time step to cross over the boundary of two different events.

As of now, it is not returning this value anymore.

Idea: Add possibility to ignore the dates verification on input data files

For some process (like irrigation), can be useful to have the possibility to have an input data file that do not cover the entire period of the simulation.
In this case, there must be a way to "shut down" the dates checking that is done to verify that there is enough data on the file for the entire simulation.

Start using MOHID

Dear Dr. Paulo,

I am somewhat confused about the versions and environments in which MOHID can be implemented.
MOHID can be implemented either on windows or linux. What I am not clear is how to start using it, either on windows or linux.
The version available in the repository is the same for windows and linux?
Once I download the code from the repository, I don't know how to get here>> http://wiki.mohid.com/index.php?title=Mohid_GUI

I should probably say that I am a big fan of the whole MOHID team and I have been using the model in its commercial versions for years, although at the beginning I worked very briefly on its academic version. Maybe that's why I don't remember how to start with this version.
Any user guide you can share with me, I would be very grateful.

Regards,
Cesar.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.