Hi there,
I have an equation of state table that is a 4D table of the kind stateArray(x,rho,T,Ye),
where x is the state variable, e.g., entropy, potential,…, while (rho,T,Ye) are the grid variables on which the values are tabulated.
In order to use SIMD to interpolate all state variables at once given a particular (rho,T,Ye) value I have them as the fastest running index.
For convenience however I also want to have direct access to e.g. all entropy values as a function of (rho,T,Ye) so I also have a 3D-Array of Entropy(rho,T,Ye), etc…
Now in order to save space I use 3D pointers of constant stride into the 4D array, i.e.,
Entropy(1:nro,1:ntt,1:nye) => stateArray(1,1:nro,1:ntt,1:nye)
Pressure(1:nro,1:ntt,1:nye) => stateArray(2,1:nro,1:ntt,1:nye)
All state values should have a constant stride in the stateArray because each state value is just nStateVariable away from the previous one.
Intel Fortran is able to handle it no problem, however GFortran complains that:
“Error: Rank remapping target must be rank 1 or simply contiguous at (1)”
How can I rewrite this pointer so that it works in both compilers, or is this just a case of Intel Fortran being less strict about standards?