Skip to content

Sip phillips mode1 mode2 breakup - #25

Open
Paul J. Connolly (maul1609) wants to merge 3 commits into
MetOffice:mainfrom
UoM-maul1609:sip-phillips-mode1-mode2-breakup
Open

Paul J. Connolly (maul1609) wants to merge 3 commits into
MetOffice:mainfrom
UoM-maul1609:sip-phillips-mode1-mode2-breakup

Conversation

@maul1609

Copy link
Copy Markdown

PR Summary

Add Phillips et al. secondary ice production schemes (Mode 1, Mode 2, collisional breakup)

Sci/Tech Reviewer: paulfield2024
Code Reviewer:

Adds three SIP processes following Phillips et al. (2017, 2018), with collision integrals evaluated numerically over the gamma size distributions, as used in Sun et al. (2025, ACP, doi:10.5194/acp-25-18549-2025):

  • sip_phillips_mode1: freezing-drop fragmentation (Mode 1)
  • sip_phillips_mode2: rain–ice splashing (Mode 2)
  • sip_phillips_breakup: ice–ice collisional breakup

Switched on with l_sip_phillips_mode1, l_sip_phillips_mode2 and l_sip_phillips_breakup, all default .false., so existing configurations are unchanged. They are alternatives to l_sip_dropletshatter and l_sip_icebreakup; setting both of a pair stops with an error. Adds diagnostics nimo1, nimo2 and niicb. No new files: the quadrature is in ice_multiplication and the inverse incomplete gamma function in special.

Funded by Horizon Europe CERTAINTY (grant 101137680).

  • is related to #NN (CLA signed there)

Code Quality Checklist

  • I have performed a self-review of my own code
  • My code follows the project's style guidelines
  • Comments have been included that aid understanding and enhance the readability of the code
  • My changes generate no new warnings

Testing

  • If shared files have been modified, I have run the UM and LFRic Apps rose stem suites
  • If any tests fail (rose-stem or CI) the reason is understood and acceptable (eg. kgo changes)
  • I have added tests to cover new functionality as appropriate (eg. system tests, unit tests, etc.)

Compiles with gfortran 13; no new fortitude violations. With the new switches off, no existing process or list changes value, so results should be unchanged. Standalone kernel tests reproduce the rates of the code used in Sun et al. to within 1e-5 relative (the difference is from using double-precision 273.15 K). Rose stem not run.

Security Considerations

  • I have reviewed my changes for potential security issues

Performance Impact

  • Performance of the code has been considered and, if applicable, suitable performance measurements have been conducted

No cost when switched off. When on, the collision integrals add cost per grid box; timings to follow.

AI Assistance and Attribution

  • AI Not used.

Documentation

  • Where appropriate I have updated documentation related to this change and confirmed that it builds correctly

Sci/Tech Review

  • I understand this area of code and the changes being added
  • The proposed changes correspond to the pull request description
  • Documentation is sufficient (do documentation papers need updating)
  • Sufficient testing has been completed

Please alert the code reviewer via a tag when you have approved the SR

Code Review

  • All dependencies have been resolved
  • Related Issues have been properly linked and addressed
  • CLA compliance has been confirmed
  • Code quality standards have been met
  • Tests are adequate and have passed
  • Documentation is complete and accurate
  • Security considerations have been addressed
  • Performance impact is acceptable

Add three secondary ice production (SIP) processes following Phillips et
al. (2017, 2018), with the collision integrals evaluated numerically over
the gamma size distributions (Sun et al., 2025, ACP 25, 18549-18569):

  sip_phillips_mode1   fragmentation of freezing raindrops (Mode 1)
  sip_phillips_mode2   fragmentation in rain-ice collisions (Mode 2)
  sip_phillips_breakup ice-ice collisional breakup

Each is switched on with l_sip_phillips_mode1, l_sip_phillips_mode2 or
l_sip_phillips_breakup; all default to .false., so existing
configurations are unchanged.  They are alternatives to
l_sip_dropletshatter and l_sip_icebreakup, and setting both members of a
pair stops the model with an error.

New process rates pimo1, pimo2 and piicbi/s/g, and diagnostics nimo1,
nimo2 and niicb.  Breakup donor mass is limited by limit_cb_donor after
the standard positivity checks.

sip_numerics provides fixed-order Gauss-Legendre quadrature in one and two
dimensions and the inverse regularised incomplete gamma function used to
truncate the size distributions.

Developed at the University of Manchester under the Horizon Europe
project CERTAINTY (grant agreement 101137680).
Move gamma_p and inverse_gamma_p into special, alongside GammaFunc, and
the Gauss-Legendre quadrature into ice_multiplication, its only user.
Remove sip_numerics.F90 and restore the makefile.  No change to results.
@github-actions github-actions Bot added the cla-required The CLA has not yet been signed by the author of this PR - added by GA label Oct 9, 2026
@github-actions
github-actions Bot requested a review from paulfield2024 October 9, 2026 14:40
@github-actions github-actions Bot added cla-signed The CLA has been signed as part of this PR - added by GA and removed cla-required The CLA has not yet been signed by the author of this PR - added by GA labels Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The CLA has been signed as part of this PR - added by GA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants