Currently pointers are explicitly separate types which have a reference and/or dereference function to go up and down the explicit pointer types. This is not very flexible and it required all pointer types to be listed in the database explicitly.
The reason this was done is that the pointer attribute of a variable didn't straightforwardly allow pointer paritions with MPI_Init and MPI_Init_thread. This should be part of the type somehow, but not explicitly separate types, because it can be derived.
Pointers are derived types/kinds, similar to constant. This means that we can store these alongside the Type in the Variable class.
For example: const or pointer<1, BUFFER> or pointer<2, RANK>
Currently pointers are explicitly separate types which have a reference and/or dereference function to go up and down the explicit pointer types. This is not very flexible and it required all pointer types to be listed in the database explicitly.
The reason this was done is that the pointer attribute of a variable didn't straightforwardly allow pointer paritions with MPI_Init and MPI_Init_thread. This should be part of the type somehow, but not explicitly separate types, because it can be derived.