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

@alanjhewitt Alan 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

Item Value
Suite Name radaer_api_um_side_5/run1
Suite User alan.j.hewitt
Workflow Start 2026-09-01T11:22:13
Groups Run developer', 'ukca
Dependency Reference Main Like
casim MetOffice/casim@2026.07.1 True
jules MetOffice/jules@2026.07.1 True
moci MetOffice/moci@2026.07.1 True
mule MetOffice/mule@2026.07.1 True
shumlib MetOffice/shumlib@2026.07.1 True
socrates MetOffice/socrates@2026.07.1 True
SimSys_Scripts MetOffice/SimSys_Scripts@2026.07.1 True
ukca alanjhewitt/ukca@radaer_api_ukca_side_5 True
um alanjhewitt/um@radaer_api_um_side_5 False
um_aux MetOffice/um_aux@2026.07.1 True
um_meta MetOffice/um_meta@2026.07.1 True

Approvals

Code Owners

Section Owner Deputy State
boundary_layer adrianlock paulburns Pending
admin SSD Team -- Pending
stash roddysharp ericaneininger Pending
bin SSD Team -- Pending
rose_stem jamesbruten roddysharp Pending
top_level jenniferhickson samclarkegreen Pending
rose-meta.conf owner_of_related_section -- Pending
upgrade_macros ericaneininger jamesbruten Pending
Unknown U n Pending

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

Item Value
Suite Name BoB_radaer_api_la_side_5x/run1
Suite User alan.j.hewitt
Workflow Start 2026-08-28T09:38:33
Groups Run all
Dependency Reference Main Like
casim MetOffice/casim@2026.07.1 True
jules MetOffice/jules@2026.07.1 True
lfric_apps alanjhewitt/lfric_apps@BoB_radaer_api_la_side_5x False
lfric_core MetOffice/lfric_core@60fc29a True
moci MetOffice/moci@2026.07.1 True
SimSys_Scripts MetOffice/SimSys_Scripts@77a5166 True
socrates MetOffice/socrates@2026.07.1 True
socrates-spectral MetOffice/socrates-spectral@2026.07.1 True
ukca alanjhewitt/ukca@radaer_api_ukca_side_5 True

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

@alanjhewitt Alan J Hewitt (alanjhewitt) added the Linked Apps This PR is linked to a MetOffice/lfric_apps PR label Aug 11, 2026
@github-actions github-actions Bot 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
Contributor Author

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
Contributor Author

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
Contributor Author

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-actions github-actions Bot 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
Contributor Author

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

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

@mcdalvi Mohit 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 free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Linked Apps This PR is linked to a MetOffice/lfric_apps PR Linked UM This PR is linked to a MetOffice/um PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants