@RonShepard : I was thinking to the same strategy, but with pointers, I am afraid about array copy when a pointer is passed as subroutine argument, see : Fortran Pointer as argument in a subroutine - Help - Fortran Discourse (fortran-lang.discourse.group)
Do you experience any drawbacks (performance …?) when using pointers ?