CRITERIA3D
Includes a numerical solution for three-dimensional water and heat flow in the soil, coupled surface and subsurface flow, meteorological data interpolation, radiation budget, crop development and crop water uptake.
https://github.com/arpa-simc/criteria3d
Category: Consumption
Sub Category: Agriculture and Nutrition
Keywords
3d-water-fluxes agro-meteorological boundary-conditions catchments crop environmental-modelling heat hydrological-modelling hydrology land-surface-modeling meteorological-data-interpolation richards-equation soil soil-water-modelling subsurface-flow surface-runoff water water-balance
Keywords from Contributors
climate-analysis criteria-3d spatial-analysis slope-stability weather-generator crop-development irrigation irrigation-forecast irrigation-water-needs soil-moisture
Last synced: about 6 hours ago
JSON representation
Repository metadata
CRITERIA-3D is a three-dimensional agro-hydrological model.
- Host: GitHub
- URL: https://github.com/arpa-simc/criteria3d
- Owner: ARPA-SIMC
- License: gpl-3.0
- Created: 2015-11-17T18:48:47.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2026-08-07T16:38:29.000Z (7 days ago)
- Last Synced: 2026-08-10T14:02:06.393Z (4 days ago)
- Topics: 3d-water-fluxes, agro-meteorological, boundary-conditions, catchments, crop, environmental-modelling, heat, hydrological-modelling, hydrology, land-surface-modeling, meteorological-data-interpolation, richards-equation, soil, soil-water-modelling, subsurface-flow, surface-runoff, water, water-balance
- Language: C++
- Homepage:
- Size: 145 MB
- Stars: 37
- Watchers: 4
- Forks: 11
- Open Issues: 0
- Releases: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Authors: AUTHORS
README.md
CRITERIA-3D
CRITERIA-3D is an open-source agro-hydrological model for simulating water flow, crop water use, and slope stability in small to medium-sized catchments.
Its fully three-dimensional numerical solver is parallelized for shared-memory multi-core CPUs (OpenMP) or NVIDIA GPUs (CUDA). The model also includes meteorological interpolation, radiation modelling, crop development, root water uptake, snow processes, and slope stability analysis.
The model requires hourly meteorological data as input, including:
- air temperature (°C)
- precipitation (mm)
- solar irradiance (W m-2)
- relative humidity (%)
- wind speed (m s-1)
See latest release to download precompiled binaries.

Case study of the Ravone creek catchment (Bologna, Italy)
Key Features
- Fully coupled 3D surface–subsurface water flow
- Parallel numerical solver for multi-core CPUs (OpenMP) and NVIDIA GPUs (CUDA)
- Transient crop canopy development and root water uptake
- Hourly meteorological data interpolation
- Surface radiation budget
- Snow accumulation and melt
- Slope stability analysis
- Empirical soil cracking model
- Biomass allocation in forestry (HYDRALL model, in development)
Note
Crop water uptake is simulated as part of the three-dimensional soil water balance. For dedicated irrigation scheduling and crop water requirement applications, see CRITERIA-1D.
Applications
- Watershed hydrology and water balance studies
- Flood simulation and flood risk assessment
- Landslide susceptibility and slope stability assessment
- Climate change impact studies
- Evaluation of nature-based solutions
- Research on coupled surface–subsurface hydrological processes

Screenshot of the CRITERIA-3D interface
soilFluxes3D library
The agrolib/soilFluxes3D library (shared with the Criteria-1D model) implements a fully coupled numerical solution for three-dimensional water and heat transport in soil. Parallel implementations are available for both multi-core CPUs (OpenMP) and NVIDIA GPUs (CUDA).
Features include:
- 3D Richards equation for unsaturated flow
- 3D Darcy equation for saturated flow
- 2D Saint-Venant surface runoff
- Integrated finite difference discretization
- Coupled heat transport
- Multiple hydraulic boundary conditions
Surface water flow is described by the two-dimensional parabolic approximation of the St. Venant equation, using Manning’s equation of motion. Subsurface water flow is described by the three-dimensional Richards’ equation for the unsaturated zone and by three-dimensional Darcy’s law for the saturated zone, using an integrated finite difference formulation. The available boundary conditions are surface runoff, culvert runoff, free drainage (lateral or deep) and prescribed total potential. The water flow equations may be coupled with the heat transport equations, which include diffusive, latent and advective terms. Atmospheric variables (net irradiance, air temperature, relative humidity and wind speed) can be used as upper boundary conditions.
Documentation & References
-
Model description (PDF)
-
The user manual (draft) is available in the
DOCdirectory.
CRITERIA is operational at Arpae Emilia-Romagna. It has been used in several international projects (Vintage, Highlander, Arcadia) and it is reported in the International Soil Modeling Consortium.
How to cite
- Bittelli, M., Tomei, F., Pistocchi, A., Flury, M., Boll, J., Brooks, E. S., & Antolini, G. (2010). Development and testing of a physically based, three-dimensional model of surface and subsurface hydrology. Advances in Water Resources, 33(1), 106-122.
- Bittelli, M., Pistocchi, A., Tomei, F., Roggero, P. P., Orsini, R., Toderi, M., ... & Flury, M. (2011). CRITERIA-3D: a mechanistic model for surface and subsurface hydrology for small catchments. In Soil hydrology, land use and agriculture: measurement and modelling (pp. 253-265). Wallingford UK: CAB International.
- Sannino, G., Tomei, F., Bittelli, M., Meisina, C., Bordoni, M., & Valentino, R. (2025). A three-dimensional agro-hydrological model for predictive analysis of shallow landslides: CRITERIA-3D. Engineering Geology, 352, 108073.
Repository structure
CRITERIA3D/
├─ agrolib/ Core libraries (shared with Criteria-1D and PRAGA)
├─ src/ Criteria-3D specific libraries
├─ DATA/ Templates and sample projects
├─ DOC/ Documentation
├─ MapGraphics/ GUI library
├─ bin/ Applications
└─ ..
Requirements
| Component | Version |
|---|---|
| C++ | C++17 |
| Qt | 5.15 or later |
| Build system | qmake |
| Platforms | Windows, Linux, macOS |
Step-by-Step Compilation Guide
1️⃣ Install the Required Software
The project uses qmake and can be built with Qt Creator on Windows, Linux and macOS.
Make sure the following software is installed:
- A C++ compiler
- Qt 5.x or later
- Qt Charts module (included with Qt)
- Qt5 Compatibility module (required for Qt 6.x or later)
- Qt Creator (recommended IDE for building Qt projects)
- NVIDIA CUDA Toolkit (optional, required to build the GPU solver)
Note
By default, CRITERIA-3D is built with the multi-core CPU solver (OpenMP). GPU acceleration is optional and can be enabled by installing the NVIDIA CUDA Toolkit and activating the
CUDA_CONFIGbuild option.
2️⃣ Build the Projects in Qt Creator
-
Open the MapGraphics project:
MapGraphics/MapGraphics.pro -
Build the project using Build → Build Project.
-
Open the main project:
bin/Makeall_CRITERIA3D/Makeall_CRITERIA3D.pro -
Build it in the same way.
Important
- Always build MapGraphics before building the main project.
- For both projects, open Projects → Build Settings in Qt Creator and disable Shadow build. This prevents common compilation errors.
- To build the GPU solver, uncomment
CONFIG += CUDA_CONFIGinagrolib/parallel.pri. By default CRITERIA-3D is compiled with the OpenMP CPU solver.
3️⃣ Install and Run CRITERIA-3D
After successfully compiling the project:
-
Create a directory named
CRITERIA3Dcontaining the following subdirectories:CRITERIA3D/ ├── bin/ ├── DATA/ └── DOC/ -
Copy the compiled executable from the build directory to
CRITERIA3D/bin. -
Windows only: open the
bindirectory and run:windeployqt CRITERIA3D.exe -
Copy the
DATA/TEMPLATEandDATA/SETTINGSdirectories from the repository intoCRITERIA3D/DATA. -
Create the directory
CRITERIA3D/DATA/PROJECTand copy one of the sample projects (for example,DATA/PROJECT/Montue) from the repository. -
Copy the entire contents of the repository's
DOCdirectory intoCRITERIA3D/DOC. -
Linux / macOS only: define the environment variable
CRITERIA3D_HOMEand set it to the path ofCRITERIA3D/DATA. -
Run
CRITERIA3Dfrom thebindirectory.
Command-Line Compilation (Fedora)
Fedora packages can be built using the provided RPM specification: fedora/SPECS/CRITERIA3D.spec
Authors
- Fausto Tomei
- Gabriele Antolini
- Laura Costantini
- Antonio Volta
- Caterina Toscano
Contributors
- Alberto Pistocchi
- Marco Bittelli
- Giada Sannino
Contacts
- ftomei@arpae.it (CRITERIA3D)
- gantolini@arpae.it (VINE3D)
- avolta@arpae.it (grapevine model)
- ctoscano@arpae.it (hydrall model)
- gsannino@arpae.it (slope stability model)
License
CRITERIA-3D is developed by ARPAE Hydro-Meteo-Climate Service (Emilia-Romagna, Italy).
The applications (CRITERIA3D, VINE3D) are distributed under the GNU GPL license.
The agrolib libraries are distributed under the GNU LGPL license.
See the LICENSE and COPYING.LESSER files for the complete license terms.
Owner metadata
- Name: Arpae ER - Servizio Idro Meteo Clima
- Login: ARPA-SIMC
- Email:
- Kind: organization
- Description: Agenzia regionale per la prevenzione, l'ambiente e l'energia dell'Emilia-Romagna
- Website: https://www.arpae.it/it/temi-ambientali/meteo/cosa-fa-arpae-meteo
- Location: Bologna, Italy
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/13255471?v=4
- Repositories: 37
- Last ynced at: 2023-03-02T13:30:36.779Z
- Profile URL: https://github.com/ARPA-SIMC
GitHub Events
Total
- Release event: 3
- Pull request event: 1
- Fork event: 1
- Watch event: 6
- Push event: 487
- Create event: 5
Last Year
- Release event: 2
- Pull request event: 1
- Watch event: 1
- Push event: 141
- Create event: 1
Committers metadata
Last synced: 3 days ago
Total Commits: 5,468
Total Committers: 18
Avg Commits per committer: 303.778
Development Distribution Score (DDS): 0.497
Commits in past year: 688
Committers in past year: 7
Avg Commits per committer in past year: 98.286
Development Distribution Score (DDS) in past year: 0.233
| Name | Commits | |
|---|---|---|
| ftomei | f****i@a****t | 2749 |
| lauracosta | l****l@i****t | 1246 |
| Gabriele Antolini | g****i@a****t | 381 |
| Caterina Toscano | c****o@a****t | 321 |
| avolta | a****a@a****t | 195 |
| voltAntonio | a****a@a****t | 190 |
| IvanDB | i****9@g****m | 128 |
| Spengy | s****y@g****m | 106 |
| Antonio Volta | a****a@A****T | 67 |
| giadasan | g****o@a****t | 40 |
| Atena Niazi Nasihati | a****i@a****t | 13 |
| EfthyC | e****h@y****r | 8 |
| Emanuele Di Giacomo | e****o@a****t | 8 |
| Fausto Tomei | f****i@A****T | 7 |
| Laura Costantini | l****i@A****T | 4 |
| Jason | o****n@a****m | 2 |
| Jason | e****l@a****m | 2 |
| unknown | A****y@A****) | 1 |
Committer domains:
- arpae.it: 7
- arpa.emr.net: 3
- address-not-valid.com: 2
- amy-pc.(none): 1
- yahoo.gr: 1
- arpa.emr.it: 1
- iol.it: 1
Issue and Pull Request metadata
Last synced: 4 days ago
Total issues: 0
Total pull requests: 2
Average time to close issues: N/A
Average time to close pull requests: about 2 months
Total issue authors: 0
Total pull request authors: 2
Average comments per issue: 0
Average comments per pull request: 0.0
Merged pull request: 1
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
Top Pull Request Authors
- ftomei (1)
- mfortini (1)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 19
proxy.golang.org: github.com/arpa-simc/criteria3d
- Homepage:
- Documentation: https://pkg.go.dev/github.com/arpa-simc/criteria3d#section-documentation
- Licenses: gpl-3.0
- Latest release: v1.3.3 (published 2 months ago)
- Last Synced: 2026-08-13T17:06:42.145Z (1 day ago)
- Versions: 19
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
Score: -Infinity



