1

Ich versuche zwei Fortran-90 Subroutinen in eine Hauptfunktion zu integrieren. Der Algorithmus, der in beiden Unterprogrammen verwendet wird, ist logisch ähnlich, unterscheidet sich jedoch in den Arraygrößen (z. B. unter Verwendung von 4 Parametern, um einen Wert anstelle von 3 usw. zu berechnen).Eine große Anzahl von Variablen an die Subroutine übergeben v/s Variablen innerhalb der Subroutine deklarieren

Ich kann entweder das Array zu deklarieren, Speicher in der Hauptfunktion und übergeben Sie es als Argument Subroutine oder lassen Sie die Unterroutine tun, wenn sie aufgerufen wird. In dem Fall werde ich am Ende viele Argumente weitergeben und im letzteren Fall werde ich am Ende viele Variablen zuweisen und loslassen, aber während des Unterprogrammaufrufs nur wenige Argumente übergeben.

Da der Code am Ende die Subroutinen mehrere tausend Mal aufrufen könnte, möchte ich sicherstellen, dass ich den mot effizienten Weg, um mein Ziel zu erreichen, wählen. Kann jemand Licht darauf werfen?

+0

Sie können sie explizieren oder verwenden Sie den allgemeinen Block (öffentlich). Das Übergeben von ihnen erlaubt es, es parallel zu nennen. Für konstante Parameter mache ich sie normalerweise öffentlich. Sie wollen wahrscheinlich beides machen und sehen, was der Zeitunterschied ist. – Holmz

+0

@Holmz, danke für die Antwort. Ich werde die Übung, die Sie vorgeschlagen haben, ausprobieren und sehen, wie es geht. – Mithil

Antwort

0

Wenn die Argumente konzeptionell verknüpft sind, können Sie ein Objekt (abgeleiteten Datentyp) erstellen, das die Parameter enthält, die Sie als Argumente verwenden möchten, und das Objekt an das Unterprogramm übergeben.

Verwandte Themen