Open
Conversation
wertysas
approved these changes
Feb 10, 2026
Contributor
wertysas
left a comment
There was a problem hiding this comment.
This looks good to me! I only have two small questions, but no other comments. It will be useful to get the updated driver layer and the FIELD API usage into the standalone.
| !$OMP& PRIVATE(KIDIA,KFDIA,IBL,& | ||
| !$OMP& ${chunked_join([f'F_{v_name}' for v_name in variable_names], ', &\n!$OMP& ')}$ & | ||
| !$OMP& ) & | ||
| !$OMP& PRIVATE(& |
Contributor
There was a problem hiding this comment.
Is there a reason why these are split it into two private clauses instead of one in this case?
| endif() | ||
| set( CONFIG_NAM "${CMAKE_CURRENT_BINARY_DIR}/config_${_PAR_NAME}.nam" ) | ||
| list( APPEND _PAR_NAMELIST_OPTIONS "directory_name=\\\"data\\\"" ) | ||
| list( APPEND _PAR_NAMELIST_OPTIONS "nblocksize=15" ) |
Contributor
There was a problem hiding this comment.
Just curious, is there a reason for choosing 15 as the blocksize here?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In CY50R3, a new driver layer around
radiation_schemewas added to IFS that allows to dispatch to different variants of the radiation scheme, calledradiation_scheme_layer. This is paired with a new way of encapsulating the interpolated input and output fields in a common data structure managed by field_api.This encapsulation allows to defer the mechanics for required data transfers for GPU execution of the radiation scheme to field_api.
To replicate and test this behaviour in the offline version of ecrad, this PR contributes
radintg_zrgp_mod, the packaging functionality for inputs to radiation_scheme and optional encapsulation with field_api;radiation_scheme_layer_mod, the dispatch layer that takes care of unpacking from field_api and callingradiation_schemefrom an OpenMP-parallel block loop;ecrad_ifs_field_apithat invokesradiation_schemevia this avenue;The existing blocking driver is updated to share the same indexing infrastructure as the field_api variant.
In IFS, the implementation of
radintg_zrgp_modandradiation_scheme_layer_modis templated using FYPP. This mechanic has been replicated here but is entirely optional and by default switched off. By default, committed versions of the fypp-generated F90 files are used.The field-api driver depends on field_api, which is kept as an optional dependency. If not available, the field_api variant is not built.