Extension of Fortran bindings for the unstructured backend.
The Fortran unstructured API here proposed is partly different from the structured one. The main guideline for this PR is to stick as much as possible to the native GHEX API, maintaining the same level of control on the user-side. The main differences with the structured API could be summarized as follows:
domain_descriptors do not own references / pointers to field_descriptors.
pattern objects are explicitly created and controlled by the user.
patterns and field_descriptors can be coupled in any way by the user, and then added to an exchange_args object. exchange_args is a wrapper over a container of buffer_info objects, and is passed as argument to the exchange function.
This, of course, does not exclude a future refactoring towards a unified Fortran API for the two backends.
The immediate goal of this PR is to provide the baseline for binding GHEX to the ICON application.
Extension of Fortran bindings for the unstructured backend.
The Fortran unstructured API here proposed is partly different from the structured one. The main guideline for this PR is to stick as much as possible to the native GHEX API, maintaining the same level of control on the user-side. The main differences with the structured API could be summarized as follows:
domain_descriptor
s do not own references / pointers tofield_descriptor
s.pattern
objects are explicitly created and controlled by the user.pattern
s andfield_descriptor
s can be coupled in any way by the user, and then added to anexchange_args
object.exchange_args
is a wrapper over a container ofbuffer_info
objects, and is passed as argument to theexchange
function.This, of course, does not exclude a future refactoring towards a unified Fortran API for the two backends.
The immediate goal of this PR is to provide the baseline for binding GHEX to the ICON application.