私はFORTRANまたはMATLABのどちらかについてよく分かっていないようですが、どちらもよく分かりません。matlabの暗黙のインターフェイス
私はMATLABが行列を扱うのには優れていると感じましたが、Fortranプログラムの暗黙的なインタフェースが便利であることもわかりました(私は、主張された変数、特に大きな配列を暗黙の関数に渡すことができますまた、インタフェースで要求されている変数を呼び出し元のプログラムに簡単に渡すこともできます)。
暗黙のインターフェイスと同じようなメカニズムがMATLABに存在するかどうかだけで、私がFORTRANと同じように作業できるかどうかは不思議です。 (グローバル変数は、関数を頻繁に呼び出そうとすると、あまり面倒ではないかもしれません)
あなたの意見は?ありがとう。ここ
は一例であり:
PROGRAM test_function
IMPLICIT NONE
REAL :: A, B
REAL :: C,D,E
A = 1
B = 2
D = 3
E = xf(A)-A
WRITE (*,*), "A = ", A
WRITE (*,*), "B = ", B
WRITE (*,*), "C = ", C
WRITE (*,*), "D = ", D
WRITE (*,*), "E = ", E
CONTAINS
FUNCTION xf(x)
IMPLICIT NONE
REAL, INTENT(IN) :: x
REAL :: xf
C = x+B
D = x+D
xf = A+B+C
END FUNCTION xf
END PROGRAM test_function
Dは、仮引数として解釈されることなく、機能XF(・)に渡され、そしてDはまた、制限なくて通過することができます。プログラムの結果は次のとおりです。
A = 1.0000000
B = 2.0000000
C = 3.0000000
D = 4.0000000
E = 5.0000000
Fortranの暗黙のインターフェイスが何であるかはわかりません。あなたの質問のテキストから、変数(おそらく同じ名前)は引数として渡されることなく、サブルーチンの内部と外部に何らかの形で渡されることを意味しますか? – Pursuit
Fortranの暗黙的なインタフェースが何であるかは、私には非常にはっきりしています。しかし、この質問の中でこの用語を使用すると、私はOPが非(Fortran)標準的な方法でこの用語を使用することを疑う。 OPはもっと明白かもしれませんか? –
@Lagrange:コードスニペットを再編集してコメントから削除できますか?今あなたのプログラムが何であるか把握することは非常に難しいです。 –