MRKISS changelog
| Author: | Mitch Richling |
| Updated: | 2025-09-16 10:00:14 |
| Generated: | 2025-09-21 13:16:27 |
Copyright © 2025 Mitch Richling. All rights reserved.
Table of Contents
1. v2025-09-10: Refactor Release
This release is a major refactor:
- Renamed solvers:
- Single step: step_rk4, step_rkf45, step_dp54, step_all, step_one, step_richardson
- High level: fixed_t_steps, fixed_y_steps, sloppy_fixed_y_steps, adaptive_steps
- Meta: fixed_t_steps_between, interpolate_solution
- Any routine that worked with etabs, now works with an arbitrary number of embedded methods
- All solvers now take uniform tableau arguments
- All tableaux now have:
- A single b matrix instead of vectors for each method
- A p vector for the order of each method
- An se vector for the number of steps for each method
- m – the number of methods
- Tableau Data
- Machine readable tableaux for all methods
- Tab separated, dense matrices
- Support algebraic expressions for entries (rational numbers, roots, etc…)
- Example Maple worksheets to create these kinds of files
- Maple procedures to read tableaux, and
- Process them for inclusion into Fortran & C
- Produce stability region plots
- Produce stability star plots
- Produce numerator and denominator polynomials for stability functions
- Compute roots for stability function numerator and denominator
- Machine readable tableaux for all methods
- Documentation
- Doxygen comments now consistently use @ instead of \
- All tableau modules now have stability graphs
- Updated the tableau tables in index.org
- Examples
- Added step_too_small.f90
- Bugs
- adaptive_steps: Error computation bug (bounds incorrect)
- adaptive_steps: Solution bound overflow (didn't check iteration count)
- adaptive_steps: Added note about ifx compile options and updated make files.
- seqt: Undefined behaviour removed.
- Platforms Tested
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
- GNU Fortran (Rev6, Built by MSYS2 project) 15.1.0
- Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.1.0 Build 20240308
- flang version 20.1.7 x86_64-w64-windows-gnu posix
- Debian 13.0
- GNU Fortran (Debian 14.2.0-19) 14.2.0
- ifx (IFX) 2025.0.4 20241205 (lorenz_test fails, but it's OK.)
- Debian flang-new version 19.1.7 (3) x86_64-pc-linux-gnu posix (lorenz_test fails, but it's OK.)
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
2. v2025-08-15: Documentation & Cleanup Release
- New functionality
- seq has new argument: max_pts_o
- Documentation
- All routines have full Doxygen documentation
- Added inline source to small Butcher Tableaux
- Added details to some example top comments.
- Example org docs now pull summary from oxygen comments
- Miscellaneous
- one_step_stab() & one_step_etab() are slightly faster.
3. v2025-08-12: Feature & Bugfix Release
- Fixed Bugs
- analyze_solution(): Fixed bug with output files going to STDOUT.
- API breaking Changes
- analyze_solution(): removed arguments:
- y_dim_o
- sol_y_idx_o
- print_solution(): renamed arguments
- width_o => fmt_w_o
- digits_o => fmt_d_o
- Renumbered istats elements
- analyze_solution(): removed arguments:
- New functionality
- Reworked I/O significantly across mrkiss_utils functions.
- Finalized a stepsize control in steps_adapt_etab
- New constant in config: t_delta_min_ai
- Most solvers use this instead of t_delta_tiny for the default t_delta_min
- analyze_solution() new argumetns:
- fmt_w_o with default fmt_w_ai
- fmt_d_o with default fmt_d_ai
- fmt_e_o with default fmt_e_ai
- print_istats(): New arguments:
- fmt_w_o with default fmt_w_ai
- prt_zeros_o with default .false. Zero elements are not printed by default now.
- Added istats message table to mrkiss_config. print_istats now uses it.
- Added two elements to istats and renumbered items.
- isi_etab_norm
- isi_etab_y_err
- print_solution
- New argument: fmt_e_o with default fmt_d_ai
- Renamed width_o to fmt_w_o
- If -1 is used for fmt_w_o, then it is set to fmt_w_ai
- Renamed digits_o to fmt_d_o and gave it a new default: fmt_d_ai
- Added new output format constants to mrkiss_config
- fmt_d_ai
- fmt_w_ai
- fmt_e_ai
- Documentation
- Rewrote much of main index page.
- Cleaned up whitespace in several comments.
- Tests
- New
- utils.f90: Test utilities print functions.
- New
- Miscellaneous
- Collapsed declaration lines in all modules.
- Removed unnecessary imports of t_delta_tiny
- Platforms Tested
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
- GNU Fortran (Rev6, Built by MSYS2 project) 15.1.0
- Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.1.0 Build 20240308
- flang version 20.1.7 x86_64-w64-windows-gnu posix (lorenz_test fails, but it's OK.)
- Debian 13.0
- GNU Fortran (Debian 14.2.0-19) 14.2.0
- ifx (IFX) 2025.0.4 20241205 (lorenz_test fails, but it's OK.)
- Debian flang-new version 19.1.7 (3) x86_64-pc-linux-gnu posix (lorenz_test fails, but it's OK.)
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
4. v2025-08-10: Feature/Refactor
- Fixed Bugs
- Fixed integer type for out_io_stat & out_io_unit
- API breaking Changes
- interpolate_solution(): Add istats() argument.
- Removed logical kind from library.
- Removed integer kind from library.
- status_to_origin() return changed from len=64 to len=32
- Removed _wt & _nt suffixes on contents of mrkiss_solvers_wt & mrkiss_solvers_nt
- New functionality
- print_istats()
- istats constants:
- istats_max_idx
- isi_num_pts
- isi_step_norm
- isi_step_y_len
- isi_step_y_err
- isi_step_spp_td
- isi_step_sdf_bic
- isi_bic_fail_max
- isi_bic_fail_bnd
- All solvers now use isi_* constants to update istats
- status_to_origin() & status_to_message() have better messages now.
- Documentation
- Reworked istats() descriptions.
- Added references to print_istats() & status_to_message().
- Added refs to all called routines from callers
- Added returns from all called routines
- Examples
- Updated
- Langford
- Updated for OpenMP
- Added writeup
- three_body
- Now demos print_istats() & status_to_message()
- Langford
- Updated
- Platforms Tested
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
- GNU Fortran (Rev6, Built by MSYS2 project) 15.1.0
- Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.1.0 Build 20240308
- flang version 20.1.7 x86_64-w64-windows-gnu posix (lorenz_test fails, but it's OK.)
- Debian 13.0
- GNU Fortran (Debian 14.2.0-19) 14.2.0
- ifx (IFX) 2025.0.4 20241205 (lorenz_test fails, but it's OK.)
- Debian flang-new version 19.1.7 (3) x86_64-pc-linux-gnu posix (lorenz_test fails, but it's OK.)
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
5. v2025-08-09: Feature Release
- Fixed Bugs
- print_solution: Fixed bug with
- interpolate_solution: Fixed bug with optional argument
- steps_condy_stab_*t & steps_adapt_etab_*t: : Fixed bug with optional argument
- API breaking Changes
- Removed 'version' from mrkiss_config
- Removed all sol_no_dy_o, sol_no_t_o, sol_w_dy_o, sol_w_t_o, sol_y_idx_o arguments.
- no_bisect_error_o is not logical, and it's value matters.
- Richardson extrapolation used in steps_fixed_stab_wt() when when p_o>0 – not just present().
- no_titles_o => titles_o in print_solution. Value now used. Usage inverted.
- New functionality
- status_to_origin(): Returns source for status code
- status_to_message(): Returns message for status code
- istats_size: Constant for istats size
- steps_points_stab_wt(): Solutions at given t values.
- print_solution(): Added append_o option.
- Documentation
- Doxygen links in main README & mainpage.
- Better mainpage markup
- Consolidated list of status assignments
- Documented parameters in eerk & erk modules.
- Examples
- New
- step_order_vs_error.f90
- New
- Tests
- New
- tests/test_rk4_frog_vs_steps: Compare frog output to last line of steps
- lib/test_build: Test code generation & module build
- tests/test_statuscodes: Test status_to_origin() & status_to_message().
- New
- Miscellaneous
- Release automation complete
- Added makefile to scripts directory to update them from primary copies
- Added 'wt2nt:DELETE' tags to mrkiss_solvers_wt -> mrkiss_solvers_nt code
- Platforms Tested
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
- GNU Fortran (Rev6, Built by MSYS2 project) 15.1.0
- Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.1.0 Build 20240308
- flang version 20.1.7 x86_64-w64-windows-gnu posix (lorenz_test fails, but it's OK.)
- Debian 13.0
- GNU Fortran (Debian 14.2.0-19) 14.2.0
- nvfortran 24.11-0 64-bit target on x86-64 Linux -tp tigerlake (requires reformatting the code to line length limitations)
- ifx (IFX) 2025.0.4 20241205 (lorenz_test fails, but it's OK.)
- Debian flang-new version 19.1.7 (3) x86_64-pc-linux-gnu posix (lorenz_test fails, but it's OK.)
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
6. v2025-08-04: Initial Release
- Platforms Tested
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2
- GNU Fortran (Rev6, Built by MSYS2 project) 15.1.0
- Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2024.1.0 Build 20240308
- Microsoft Windows 11 Pro 10.0.26100 Build 26100 running MSYS2