Ich versuche ein Unterprogramm zu schreiben, das als Eingabe ein eindimensionales Array ODER ein zweidimensionales Array verwenden kann. Wie kann ich erklären, dass die Eingabe des Unterprogramms entweder ein Vektor oder eine Matrix sein kann?Freidimensionales Array als Eingabe im Unterprogramm
Wenn ich dies tun:
SUBROUTINE TEST1(x)
REAL, INTENT(IN) :: x(:)
<do something>
END SUBROUTINE TEST1
ich eindeutig nicht um eine Matrix als eine Eingabe in das Unterprogramm übergeben kann. Eine nicht-elegante Lösung könnte sein, die Matrix in vektorisierter Form zu übergeben und sie dann in Matrixform innerhalb der Subroutine neu anzuordnen (ich würde natürlich ein paar zusätzliche Eingaben benötigen). Gibt es einen besseren Weg, dies zu tun?