Allocatable Fortran wrappers, from 1D to N-D

Half the work in computational science is moving data between programs that disagree about how memory works. Allocatable arrays are where the disagreement starts. Background # About a year ago I covered opaque pointers as a way to wrap non- bind(c) Fortran derived types without requiring more work from the Fortran standard. That post ended with a note about allocatable components. Since then, I've…