JNA mit Fortran angenommene Größe Array

Ich habe eine Fortran-Subroutine, die ein Array mit angenommener Größe verwendet:

subroutine sub(arr)
  implicit none
  double precision arr(*)
end subroutine

Ich habe einen systemeigenen Aufruf von Java mit JNA durchgeführt. Die Fortran-Unterroutine ist als gemeinsam genutzte Bibliothek kompiliert.mylib.so:

import com.sun.jna.Library;
import com.sun.jna.Native;

public class Wrapper {
    public interface MyLib extends Library {
        public void sub_(double[] arr);
    }

    public static void main(String[] args) {
        System.setProperty("jna.library.path", ".");
        MyLib lib = (MyLib) Native.loadLibrary("mylib.so", MyLib.class);
        double[] myarr = new double[10];
        lib.sub_(myarr);
    }
}

Nun, gibt es eine Möglichkeit (in der Fortran-Subroutine) die Größe des Arrays zu ermitteln, das ich in diese Subroutine übergeben habe, ohne die tatsächliche Größe (in diesem Fall 10) als zusätzliches Argument zu übergeben?

Ich versuchte (Fortran)print*, size(arr), aber das gibt einen Compilerfehler:

   print*,size(arr)
              1
Error: The upper bound in the last dimension must appear in the reference to the assumed size array ‘arr’ at (1)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage