BMmod is a modern Fortran 2008/2018 codebase for spatial Markov chain modeling and spectral methods. It provides numerical routines for balancing, Hessenberg reduction, QR eigenvalue analysis, and spectral decomposition, plus domain functions to derive transition rates, probabilities, and 3-D models.
- Markov Chain Modeling: Build 1-D and 3-D Markov chain models for spatial analysis
- Multiple Rate Matrix Options:
- Specified transition rates
- Transition probabilities at specified lag
- Embedded Markov chain transition probabilities
- Embedded Markov chain transition frequencies
- Independent/Maximum entropy transition frequencies
- Volumetric proportions
- Frequency of embedded occurrences
- Linear Algebra Utilities: Implements robust EISPACK-style algorithms
- Matrix balancing (
balanc) - Hessenberg reduction (
elmhes) - QR eigenvalue computation (
hqr) - Spectral decomposition (
spectral)
- Matrix balancing (
- 3-D Model Generation: Constructs 3-D transition probability models
- CPT Data Integration: Includes MATLAB scripts for CPT (Cone Penetration Test) data analysis
Msource_BM/
├── BMmod.f90 # Main Fortran source (entry: program BMmod)
├── exam_site/ # Example site data and outputs
│ ├── BMmod.par # Parameter file for example
│ ├── data.* # Various output files
│ └── exam_site.eas # Example output matrix
└── CPTsoft/ # MATLAB utilities for CPT analysis
├── sbt_classifier.py # Python classifier for CPT test points
├── SBT_cloud_fig.m # Soil behavior type classification
├── SCdata.csv # Soil classification data
├── exam_CPT.csv # Example CPT data
├── *.png # Generated plots
└── soil_classification_results.txt
- Fortran compiler (gfortran, Intel Fortran, or compatible with Fortran 2008/2018)
- MATLAB for CPT analysis utilities
- Python 3.8+ (optional, for CPT classification script)
- Prepare a parameter file (see
exam_site/BMmod.parfor example) - Run the program:
./BMmod.exe
- When prompted, enter the name of your parameter file
The parameter file should contain:
[# of categories]
[proportions for each category]
[background category index]
[name of debugging file]
[name of 3-D model output file]
[name of determinant file]
[determinant limits for 3-D model; x,y,z direction]
[dx,dy,dz for 3-D model]
[... direction-specific parameters ...]
See exam_site/BMmod.par for a complete example with 4 categories.
The CPTsoft directory contains MATLAB scripts for soil classification based on CPT data:
% In MATLAB, navigate to CPTsoft directory
cd CPTsoft
% Run the analysis script
SBT_cloud_figcd CPTsoft
python sbt_classifier.pyOptional arguments:
--stats: path to soil statistics CSV (default:SCdata.csv)--test: path to test CPT CSV (default:exam_CPT.csv)--out: output CSV file (default:soil_classification_results_py.csv)
SCdata.csv: Soil classification statistics (means, std devs, correlations)exam_CPT.csv: Test points for classification
SBT_probability_density.png: Probability density plots for each soil typeSBT_posterior_probability.png: Posterior probability mapstest_points_classification.png: Classification results for test pointssoil_classification_results.txt: Numerical classification resultssoil_classification_results_py.csv: Python classification results
- bmmod_types: Precision kinds and size constants
- bmmod_data: Global model parameters and shared state
- bmmod_linalg: Linear algebra utilities (balancing, Hessenberg, QR)
- bmmod_core: Domain logic for Markov chain operations
- Balancing: Reduces matrix norm for improved numerical stability
- Hessenberg Reduction: Converts matrix to upper Hessenberg form
- QR Algorithm: Computes eigenvalues using QR decomposition
- Spectral Decomposition: Constructs spectral components for transition matrices
.easfiles: Transition probability matrices at different lags.bgrfiles: 3-D model data (binary format).dbgfiles: Debugging information and diagnostics
This software is provided as-is for educational and research purposes. The code follows modern Fortran best practices and is fully documented.
This project is licensed under the MIT License - see the LICENSE file for details.
Bosszz — Created on 2025-12-02
If you use Msource_BM in research, please cite:
Bosszz (2025). BMmod: Markov Chain Spatial Modeling Software.
MIT Licensed. https://github.com/your-org/BMmod
This software is provided "as-is", without warranty of any kind. The author assumes no responsibility for errors or omissions in the software or documentation.