Skip to content

Radaer api ukca side - part two initialisation - #45

Open
Alan J Hewitt (alanjhewitt) wants to merge 19 commits into
MetOffice:mainfrom
alanjhewitt:radaer_api_ukca_side_5
Open

Radaer api ukca side - part two initialisation#45
Alan J Hewitt (alanjhewitt) wants to merge 19 commits into
MetOffice:mainfrom
alanjhewitt:radaer_api_ukca_side_5

Conversation

@alanjhewitt

@alanjhewittAlan J Hewitt (alanjhewitt) commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

PR Summary

This change allows users to change the GLOMAP setting (i_mode_setup) that is passed to RADAER.

Sci/Tech Reviewer: Mohit Dalvi (@mcdalvi)
Code Reviewer: Pierre Siddall (@Pierre-siddall)

This development increases the flexibility of RADAER so that when called from LFRic_apps parent with setting GLOMAP_MODE_UKCA RADAER will run with the setting of i_mode_setup.

When called from LFRic_apps parent with setting GLOMAP_MODE_CLIMATOLOGY RADAER will run with the fixed setting of SUBCOCSSDU_7mode. This preserves the existing functionality but replaces hard coded settings in radaer_kernel_mod.

When called from LFRic_apps parent with setting GLOMAP_MODE_DUST_AND_CLIM UKCA will run with fixed setting DUonly_2modes and RADAER will run with the fixed setting of SUBCOCSSDU_7mode. This preserves the existing functionality but replaces hard coded settings in radaer_kernel_mod.

Lists used by radaer_kernel_mod are SAVED and stored in UKCA modules
n_ukca_mode and n_ukca_cpnt used by radaer_kernel_mod are SAVED and stored in UKCA modules.

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 UKCA box model test with suite u-dr481

trac.log

From vanilla UM branch with only change dependencies.yaml pointing at this UKCA branch
https://github.com/alanjhewitt/um/tree/radaer_api_um_side_5

Test Suite Results - um - radaer_api_um_side_5/run1

Suite Information

ItemValue
Suite Nameradaer_api_um_side_5/run1
Suite Useralan.j.hewitt
Workflow Start2026-09-01T11:22:13
Groups Rundeveloper', 'ukca
DependencyReferenceMain Like
casimMetOffice/casim@2026.07.1True
julesMetOffice/jules@2026.07.1True
mociMetOffice/moci@2026.07.1True
muleMetOffice/mule@2026.07.1True
shumlibMetOffice/shumlib@2026.07.1True
socratesMetOffice/socrates@2026.07.1True
SimSys_ScriptsMetOffice/SimSys_Scripts@2026.07.1True
ukcaalanjhewitt/ukca@radaer_api_ukca_side_5True
umalanjhewitt/um@radaer_api_um_side_5False
um_auxMetOffice/um_aux@2026.07.1True
um_metaMetOffice/um_meta@2026.07.1True

Approvals

Code Owners

SectionOwnerDeputyState
boundary_layeradrianlockpaulburnsPending
adminSSD Team--Pending
stashroddysharpericaneiningerPending
binSSD Team--Pending
rose_stemjamesbrutenroddysharpPending
top_leveljenniferhicksonsamclarkegreenPending
rose-meta.confowner_of_related_section--Pending
upgrade_macrosericaneiningerjamesbrutenPending
UnknownUnPending

Config Owners

No UM Config Owners Required

Task Information

✅ succeeded tasks - 1306

Test Suite Results - lfric_apps - BoB_radaer_api_la_side_5x/run1

Suite Information

ItemValue
Suite NameBoB_radaer_api_la_side_5x/run1
Suite Useralan.j.hewitt
Workflow Start2026-08-28T09:38:33
Groups Runall
DependencyReferenceMain Like
casimMetOffice/casim@2026.07.1True
julesMetOffice/jules@2026.07.1True
lfric_appsalanjhewitt/lfric_apps@BoB_radaer_api_la_side_5xFalse
lfric_coreMetOffice/lfric_core@60fc29aTrue
mociMetOffice/moci@2026.07.1True
SimSys_ScriptsMetOffice/SimSys_Scripts@77a5166True
socratesMetOffice/socrates@2026.07.1True
socrates-spectralMetOffice/socrates-spectral@2026.07.1True
ukcaalanjhewitt/ukca@radaer_api_ukca_side_5True

Task Information

✅ succeeded tasks - 1602

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 (UM as well as LFRIC)

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

@alanjhewittAlan J Hewitt (alanjhewitt) added the Linked Apps This PR is linked to a MetOffice/lfric_apps PR label Aug 11, 2026
@github-actionsgithub-actionsBot added the cla-modified The CLA has been modified as part of this PR - added by GA label Aug 24, 2026
@alanjhewitt
Alan J Hewitt (alanjhewitt) marked this pull request as ready for review August 25, 2026 17:16
@alanjhewitt

Copy link
Copy Markdown
ContributorAuthor

Hi Mohit,

this development is now ready for SciTech review.

Alan

! Purpose:
! To save structure ukca_radaer_lfric
!
! ---------------------------------------------------------------------

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Could ukca_radaer_lfric be declared in the 'struct_mod' itself, avoiding the need for this module? The ukca_radaer_lfric_struct_mod will need to be accessed by calling/ downstream routines in any case.

If module is to be retained: check copyright statement (should be LICENCE file) and add ownership details

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

I updated the copyright statement. It would probably be fine to move it into struct_mod but i was a bit wary of creating a circular calling tree, so i put this separately.

INTEGER(KIND=jpim), PARAMETER :: zhook_in = 0
INTEGER(KIND=jpim), PARAMETER :: zhook_out = 1
REAL(KIND=jprb) :: zhook_handle
CHARACTER(LEN=*), PARAMETER :: RoutineName='UKCA_RADAER_LFRIC_INIT'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Correct the RoutineName

! Code description:
! Language: FORTRAN 90
! This code is written to UMDP3 programming standards.
!

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Check copyright statement (should be LICENCE file).


IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_out,zhook_handle)
END SUBROUTINE allocate_radaer_lfric_struct

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Does the structure/ instance stay in memory throughout, or is there a need for a 'deallocate' routine?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

This is the initialisation step and these values are needed every run time step. I guess I could deallocate them at he end of the run, but we wouldnt need to free up the extra memory by then.

@github-actionsgithub-actionsBot removed the cla-modified The CLA has been modified as part of this PR - added by GA label Sep 1, 2026
@alanjhewitt

Copy link
Copy Markdown
ContributorAuthor

The UM dependencies.yaml file needs updating as a linked PR

https://github.com/MetOffice/um/pull/130

@mcdalviMohit Dalvi (mcdalvi) left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sci-tech Review passed

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi Alan J Hewitt (@alanjhewitt), once again this looks good just a couple of small changes regarding the names of two variable to make them slightly clearer to understand, then I'll be happy to approve and put this PR into testing along with it's linked PRs.

INTEGER :: i, j

! In-loop copy of mode names
CHARACTER(LEN=7) :: this_name

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Maybe this variable would be more informative if it was named like this ?

Suggested change
CHARACTER(LEN=7) ::this_name
CHARACTER(LEN=7) ::mode_name

CHARACTER(LEN=7) :: this_name

! In-loop mode type
INTEGER :: this_type

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Similarly to the previous comment renaming the variable here would be more informative.

Suggested change
INTEGER::this_type
INTEGER::mode_type

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

Labels

Linked AppsThis PR is linked to a MetOffice/lfric_apps PRLinked UMThis PR is linked to a MetOffice/um PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@alanjhewitt@Pierre-siddall@mcdalvi@mo-ssd-bot