#474: LFRic-Nudging: Part-A: Introduce ability to read nudging datafiles : vn3.1.1 read nudging data#474
Conversation
… time-axis definitions
…r the new arguments
|
Is there any chance main could be merged into this branch? I'm currently unable to test the changes with JEDI due to the conflicts |
|
Apologies, I was not aware creating a PR triggers all this activity ! I have changed it to draft till all my testing is complete. |
…at are defined in source code; implement upgrade macro
…2bit as done for other azspice runs; remove unused additions to ancil reading code
Input test files for $BIGDATAThe input files for the lfric_atm_nwp_gal9_nudging_xx tests have been generated using ERA5 reanalysts data provided by by the Copernicus Climate Change Service distributed via the Copernicus Data Service. Dataset information, including usage terms can be found here: https://cds.climate.copernicus.eu/datasets/reanalysis-era5-complete?tab=documentation The files proposed to be added to $BIGDATA are: Both the files contain the following attributes: |
iboutle
left a comment
There was a problem hiding this comment.
Hi Mohit
I know this isn't fully ready yet, but I'm on leave next week so wanted to give some comments and code-owner approval so you can get this into code review by next Friday. Hopefully nothing too challenging, but a few requests and suggestions below.
Cheers
Ian
…definition and diagnostic list - this requires creating the fields in main%none
James Bruten (james-bruten-mo)
left a comment
There was a problem hiding this comment.
Thanks
DanStoneMO
left a comment
There was a problem hiding this comment.
Tested this and can confirm this works fine with JEDI, no linked JEDI PR will be needed
| <axis id="lw_bands_radiation_levels" name="lw_bands_radiation_levels" /> | ||
| <axis id="photolysis_pathways" name="photolysis_pathways" /> | ||
| <axis id="photol_species" name="photol_species" /> | ||
| <axis id="photol_species" name="photol_species" /> |
There was a problem hiding this comment.
Only thing to note from me is this rogue space here
There was a problem hiding this comment.
Thanks DanStoneMO . I have fixed that in my copy
Thomas Bendall (tommbendall)
left a comment
There was a problem hiding this comment.
Science Review
This PR adds the technical infrastructure for nudging to ERA or AIFS data, and will be followed by a PR to add the science to perform the nudging itself (including only nudging certain length scales).
Thanks so much for this Mohit -- it looks great. I have two more major thoughts, and then a handful of other suggestions that I've commented in the code.
- Do you think we should reorder the ERA ancil data vertically before we add it to BIG_DATA_DIR? (I'm assuming we haven't done this yet)... That would make the vertical interpolation more efficient when we get to that. If that's too much work before the deadline then we can potentially do it later when adding AIFS data?
- I have an annoying suggestion to change the settings of the
nudging-era-coarsetest, which is to set the aerosols to be on the dynamics mesh rather than keeping them on a coarse mesh. I just thought this would be a bit cleaner in the test-suite, so have added suggestions on how to do this
…e mesh only for nudging. Use ERA files inverted from original top-bottom order (level=1=top) to bottom-top order
|
Thomas Bendall (@tommbendall) I have reversed the ERA file data using 'ncpdq -a hybrid' and using the new files in the tests now. Tests underway. |



PR Summary
Sci/Tech Reviewer: Thomas Bendall (@tommbendall)
Code Reviewer: Matthew Hambley (@MatthewHambley)
This PR introduces the ability to read in datafiles that will be used for Nudging the Momentum models (Ref: Nudging NWP to AI/ML models - possibly targeting PS49).
The handling of Nudging data is modelled on existing lateral boundary condition handling in LFRic since they are both required to be interpolated from high time resolution file data on every model timestep.
Nudging changes summary:
Ability to read in nudging data for temperature, U-wind, V-wind and Log surface pressure (required for vertical remapping to model levels).
New [namelist:nudging], which will be active when theta or wind are 'forced by nudging' (in namelist:external_forcing). A corresponding upgrade_macro to add the namelist and I/O related items.
Introduce routine create_nudging_fields to create the nudging input fields as '2-D with user-specified (nudge_data) levels'. Corresponding grid_def_nudging.xml and grid_def_nudging_coarse.xml added to lfric_atm/metadata/.
Introduce ability to read in nudging data on native ('dynamics') or a coarser grid, with rationalising of routines that create the model fields ('make_spec', 'create_model_data') to accept both aerosol and nudging coarse mesh definitions.
Note that the above requires a LFRIC_CORE change to allow defining 3-D coarse grid fields as ''multigrid_ll'' x ndata.
Define a nudging_time_axis which will be populated based on the actual number of time records in the specified nudging file.
Introduce two new rose-stem tests lfric_atm_nwp_gal9_nudging-C48 that reads nudging files on the model grid and lfric_atm_nwp_gal9_nudging_coarse-C48 that reads in data at a lower resolution (C12) grid. This currently uses nudging data created from ERA5 source, but aim is to expand this to AIFS and other models.
At this stage the reference fields are only made available to LFRic and do not modify temperature/ winds.
linked #369: Allow coarse-grid fields with ndata levels: vn3.1 read coarse 2d lfric_core#369
Code Quality Checklist
Testing
Test Branch: test_vn31_nudging_data
trac.log
Test Suite Results - lfric_apps - test_vn31_nudging_data/run2
Suite Information
Task Information
✅ succeeded tasks - 1197
Security Considerations
Performance Impact
AI Assistance and Attribution
VsCode - code completion/ snippets.
Documentation
PSyclone Approval
Sci/Tech Review
(Please alert the code reviewer via a tag when you have approved the SR)
Code Review