Skip to content

Conversation

@yantosca
Copy link
Contributor

@yantosca yantosca commented Oct 9, 2025

This PR seeks to add the RODAS3.1 integration method as an option (Mike Long et al 2025, in prep) to the Rosenbrock integrators. Testing with GEOS-Chem has shown speedups of approximately 30% over the default RODAS3 method.

RODAS3 will still be the default Rosenbrock method, so there will be no differences when using the Rosenbrock integrators with "out-of-the-box" settings. RODAS3.1 must be invoked with ICNTRL(3) = 7.

I will leave this PR in draft mode for the time being while the paper is being prepared.

@yantosca yantosca self-assigned this Oct 9, 2025
@yantosca yantosca added this to the 3.4.0 milestone Oct 9, 2025
@yantosca yantosca added feature New feature or request integrators Related to numerical integrators labels Oct 9, 2025
yantosca and others added 8 commits October 27, 2025 14:44
int/rosenbrock.f90
int/rosenbrock_autoreduce.f90
- Added updated the Rosenbrock Rodas3 coefficients in routine
  Rodas3_1, which is called when ICNTRL(3)==0 or ICNTRL(3)==7.
- Trimmed trailing whitespace

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock.f90
int/rosenbrock_autoreduce.f90
- Added updated the Rosenbrock Rodas3 coefficients in routine
  Rodas3_1, which is called when ICNTRL(3)==7.
- Trimmed trailing whitespace

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock.F90
- Update Rodas 3.1 coefficients (@msl3v, 08 Apr 2025)
- Add comments to be consistent w/ rosenbrock_autoreduce.f90

int/rosenbrock_autoreduce.f90
- Update Rodas 3.1 coefficients (@msl3v, 08 Apr 2025)
- Fixed incorrect comment in ros_ErrorMsg, case -7
  (should be 0.1*H, not 10*H)

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock.c
int/rosenbrock.m
- Added Rodas3.1 routine with latest coeffs from Mike Long (22 May 2025)
- Trimmed trailing whitespace

int/rosenbrock.f90
int/rosenbrock_autoreduce.f90
- Updated Rodas3.1 routine with latest coeffs from Mike Long (22 May 2025)

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock_adj.c
int/rosenbrock_adj.f90
- Add Rodas3_1 routine with updated coefficients by Mike Long (22 May 2025)

int/rosenbrock.c
- Fixed the definition of ros_Name in the Rodas3_1 routine

CHANGELOG.md
- Updated accordingly

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock_adj.c
- Added function prototype for Rodas3_1
- Changed "*ros_S" to "ros_S" in Rodas3_1 routine
- Changed "*ros_ELO" to ros_ELO" in Rodas3_1 routine

Signed-off-by: Bob Yantosca <[email protected]>
int/rosenbrock.c
int/rosenbrock.f90
int/rosenbrock.m
int/rosenbrock_adj.f90
int/rosenbrock_autoreduce.f90
int/rosenbrock_h211b_qssa.f90
int/rosenbrock_tlm.f90
- Update the Rodas3.1 coefficients to the set provided
  by Mike Long on 17 July 2025
- Update comments accordingly

Signed-off-by: Bob Yantosca <[email protected]>
@yantosca
Copy link
Contributor Author

I have now rebased this PR atop PR #142.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request integrators Related to numerical integrators

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants