Powered by OpenAIRE graph
Found an issue? Give us feedback
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/ ZENODOarrow_drop_down
image/svg+xml art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos Open Access logo, converted into svg, designed by PLoS. This version with transparent background. http://commons.wikimedia.org/wiki/File:Open_Access_logo_PLoS_white.svg art designer at PLoS, modified by Wikipedia users Nina, Beao, JakobVoss, and AnonMoos http://www.plos.org/
ZENODO
Software . 2025
Data sources: ZENODO
ZENODO
Software . 2025
Data sources: Datacite
ZENODO
Software . 2025
Data sources: Datacite
versions View all 2 versions
addClaim

Fortran Tools For Soil Science Modeling

Authors: Si Mokrane SIAD;

Fortran Tools For Soil Science Modeling

Abstract

This Fortran repository contains a collection of scientific routines for soil science modeling. The modules focus on key processes such as soil moisture balance, infiltration, temperature dynamics, nutrient cycling, and soil respiration. All algorithms are implemented based on peer-reviewed literature and established guidelines to ensure scientific accuracy and reproducibility. The code is written in modern Fortran (Fortran 90+) and uses double precision for all floating-point calculations to ensure numerical stability. 🧩 Modules The library includes the following modules: SoilMoistureBalance_mod: Computes the daily soil water balance using the FAO-56 methodology. InfiltrationGreenAmpt_mod: Implements the Green-Ampt model for calculating infiltration capacity. SoilTemperatureProfile_mod: Simulates the soil temperature profile using the Fourier heat conduction equation. NitrogenMineralization_mod: Estimates net nitrogen mineralization rates based on the CENTURY model approach. SoilRespiration_mod: Calculates heterotrophic respiration rates using the Q10 temperature function. BulkDensityCalc_mod: Computes soil bulk density from particle density and porosity. SoilWaterRetention_mod: Implements the van Genuchten equation to estimate the soil water retention curve. EvapotranspirationPenmanMonteith_mod: Calculates reference evapotranspiration using the FAO-56 Penman-Monteith equation. SoilCarbonDecomposition_mod: Models soil organic carbon decomposition using first-order decay kinetics. SoilErosionEstimate_mod: Provides a simplified soil erosion estimate using the Universal Soil Loss Equation (USLE) factors. 👷‍♂️Installation and Building The project uses a Makefile for building the source code and running tests. The build process requires the Intel Fortran Compiler (ifx). To build the test executable, run the following command in the root directory of the project: make This will compile all the source files and create an executable named test_runner.exe. To run the test suite, execute: make run_tests To clean up all build artifacts, run: make clean ⚓ Usage The modules are designed to be easily integrated into other Fortran projects. To use a specific routine, you need to include the corresponding module with a use statement. For example, to use the BulkDensityCalc subroutine: program my_model use kind_mod, only: dp use BulkDensityCalc_mod, only: BulkDensityCalc implicit none real(kind=dp) :: particle_density, porosity, bulk_density particle_density = 2650.0_dp porosity = 0.4_dp call BulkDensityCalc(particle_density, porosity, bulk_density) print *, "Calculated Bulk Density:", bulk_density end program my_model 👨‍🔬 Scientific Background and Implementation Notes The routines in this library are based on established models from the soil science literature. Each module's source file contains a reference to the primary literature source for the implemented algorithm. 📝 A Note on Exponentiation To ensure cross-compiler consistency and avoid potential quirks in how different compilers handle floating-point exponentiation, non-integer power calculations (i.e., x**y) have been implemented using the exp(y * log(x)) formulation. This is a standard practice in scientific computing to improve reproducibility. 📜 License This project is licensed under a custom non-commercial license. ✅ Free for personal, academic, and research use. ❌ Commercial use is strictly prohibited without a separate license. For commercial licensing inquiries, please contact me at ** s i a d s i m @ g m a i l . c o m **.

Keywords

Reproducible Science, Soil Temperature, Soil Respiration, Nutrient Cycling, Fortran, Soil Water Dynamics, Infiltration, Soil Science, Scientific Computing, Environmental Modeling, Biogeochemistry, Soil Modeling

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average