Skip to content

Hygroscopicity MS11 ratio option#31

Open
Joe Carton-Kelly (JoeCartonKelly-MO) wants to merge 7 commits intoMetOffice:mainfrom
JoeCartonKelly-MO:hygro_ratios_option
Open

Hygroscopicity MS11 ratio option#31
Joe Carton-Kelly (JoeCartonKelly-MO) wants to merge 7 commits intoMetOffice:mainfrom
JoeCartonKelly-MO:hygro_ratios_option

Conversation

@JoeCartonKelly-MO
Copy link
Copy Markdown

@JoeCartonKelly-MO Joe Carton-Kelly (JoeCartonKelly-MO) commented Apr 15, 2026

PR Summary

Sci/Tech Reviewer: mo-dangrosvenor
Code Reviewer: Pierre Siddall (@Pierre-siddall)

This change impacts Glomap mode setup 11 (SOL/INSOL). In this PR we make it so that users can, via a rose namelist (there is an attached UM PR below), redistribute the sulphate aerosol into its 4 actual species (sulphate, sea salt, black carbon and organic carbon) within the hygroscopicity calculations. We found that when treating everything as sulphate, in environments when sulphate is not the dominant aerosol, we saw too much hygroscopic growth from our aerosols and by having this option we allow users to get a better reflection of the growth of the area they are modelling. I am going to attach some figures showing the impact that this change can have on aerosol optical depth further down - linked MetOffice/um#70 and MetOffice/um_doc#16 - closes #29

Code Quality Checklist

(Some checks are automatically carried out via the CI pipeline)

  • 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

  • I have tested this change locally, using the UKCA rose-stem suite
  • 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.)
I have run Mohit's um14.1 rigorous test (a copy of suite dx-502) with the trac.log printed below. I have run umdp3_checker on UKCA and ran the fixer to make it all okay. I will show a full UM solinsol rose-stem-test where I have changed the value to show that kgo fails in this case and one where I haven't to show that it doesn't when given default values.

trac.log

|| Suite Name: || '''u-dy599/run4''' ||
|| Suite Owner: || joseph.cartonkelly ||
|| Report Generated: || 2026/04/15 11:06:23 ||
|| Cylc-Review: || https://cylchub/services/cylc-review/taskjobs/joseph.cartonkelly/?suite=u-dy599/run4 ||
|| ''ROSE_ORIG_HOST:'' || cazldf0000F3.spice.sc.metoffice.gov.uk ||

|| '''Task''' || '''State''' ||
|| atmos_cristrat_16x8 || succeeded ||
|| atmos_cristrat_16x8_2omp || succeeded ||
|| atmos_cristrat_col_16x8 || succeeded ||
|| atmos_cristrat_col_8x12 || succeeded ||
|| atmos_cristrat_crun || succeeded ||
|| atmos_cristrat_nrun || succeeded ||
|| atmos_cristrat_rigorous_16x8 || succeeded ||
|| atmos_offl_16x8 || succeeded ||
|| atmos_offl_8x12 || succeeded ||
|| atmos_strat_16x8 || succeeded ||
|| atmos_strat_16x8_2omp || succeeded ||
|| atmos_strat_col_16x8 || succeeded ||
|| atmos_strat_col_8x12 || succeeded ||
|| atmos_strat_crun || succeeded ||
|| atmos_strat_nrun || succeeded ||
|| atmos_strat_rigorous_16x8 || succeeded ||
|| extract || succeeded ||
|| fcm_make || succeeded ||
|| fcm_make_rigorous || succeeded ||
|| housekeep_cririgor || succeeded ||
|| housekeep_cristrat || succeeded ||
|| housekeep_offl || succeeded ||
|| housekeep_rigor || succeeded ||
|| housekeep_strat || succeeded ||
|| recon_cristrat || succeeded ||
|| recon_cristrat_rigorous || succeeded ||
|| recon_offl || succeeded ||
|| recon_strat || succeeded ||
|| recon_strat_rigorous || succeeded ||
|| rose_ana_cristrat_atmos_kgo || succeeded ||
|| rose_ana_cristrat_atmos_nruncrun || succeeded ||
|| rose_ana_cristrat_atmos_omp || succeeded ||
|| rose_ana_cristrat_col_atmos_proc || succeeded ||
|| rose_ana_offl_atmos_kgo || succeeded ||
|| rose_ana_offl_atmos_proc || succeeded ||
|| rose_ana_strat_atmos_kgo || succeeded ||
|| rose_ana_strat_atmos_nruncrun || succeeded ||
|| rose_ana_strat_atmos_omp || succeeded ||
|| rose_ana_strat_atmos_rigorous || succeeded ||
|| rose_ana_strat_col_atmos_kgo || succeeded ||
|| rose_ana_strat_col_atmos_proc || succeeded ||

Security Considerations

  • I have reviewed my changes for potential security issues
  • Sensitive data is properly handled (if applicable)
  • Authentication and authorisation are properly implemented (if applicable)

Performance Impact

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

AI Assistance and Attribution

  • Some of the content of this change has been produced with the assistance
    of Generative AI tool name (e.g., Met Office Github Copilot Enterprise,
    Github Copilot Personal, ChatGPT GPT-4, etc) and I have followed the
    Simulation Systems AI policy
    (including attribution labels)

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

@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 Apr 15, 2026
@JoeCartonKelly-MO
Copy link
Copy Markdown
Author

For evidence of the science changes, I ran one version with the ratio as (1.0,0.0,0.0,0.0) which is the default and automatically passes kgo for any solinsol tests. I also ran a version with values set to (0.075,0.492,0.050,0.383). The images on the left are the default values and on the right are new values
Aitken soluble AOD 550nm:
image
Accumulation soluble AOD 550nm:
image
Coarse soluble AOD 550nm:
image
Accumulation insoluble AOD 550nm:
image
Coarse insoluble AOD 550nm:
image

You can see a large reduction in AOD for the soluble species when we don't treat everything as Sulphate (a more physically realistic set up) so this change allows us better control over hygroscopic growth in mode setup 11 (SOL/INSOL)

@JoeCartonKelly-MO Joe Carton-Kelly (JoeCartonKelly-MO) marked this pull request as ready for review April 16, 2026 12:59
mdcopy(:,imode,cp_su) = glomap_config%solinsol_hygro_ratio(1)* &
(mdcopy(:,imode,cp_su))
mdcopy(:,imode,cp_cl) = glomap_config%solinsol_hygro_ratio(2)* &
(mdcopy(:,imode,cp_su))
Copy link
Copy Markdown

@mo-dangrosvenor mo-dangrosvenor Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? Since mdcopy(:,imode,cp_su) will have been changed by the line above? Shouldn't you use the original md(:,imode,cp_su) arrays to calculate mdcopy, instead of using mdcopy itself?

cl(:,3)=md(:,imode,cp_cl)/avogadro ! [Na] in moles per cc (air)
cl(:,-4)=md(:,imode,cp_cl)/avogadro ! [Cl] in moles per cc (air)
cl(:,3)=mdcopy(:,imode,cp_cl)/avogadro ! [Na] in moles per cc (air)
cl(:,-4)=mdcopy(:,imode,cp_cl)/avogadro ! [Cl] in moles per cc (air)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there is no equivalent to this for cp_bc? If not, then there doesn't seem much point in adding in cp_bc since it is never used? Also, why do you only use the new md values for the concentration (cl) calculations and not in the rest of the routine that also uses md?

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.

SOL/INSOL fixes: Improved hygroscopicity

3 participants