私はいくつかのFortran90コードを翻訳しなければならず、興味深い言語機能を見つけました。
例として、次のタイプと動的配列変数を定義します。
TYPE WallInfo
CHARACTER(len=40) :: Name
REAL :: Azimuth
REAL :: Tilt
REAL :: Area
REAL :: Height
END TYPE WallInfo
TYPE(WallInfo), ALLOCATABLE, DIMENSION(:) :: Wall
コードの後半で、関数を呼び出します。
CALL HeatFlow(Wall%Area, Wall%Azimuth)
Wallはレコードの配列であるため、Delphiプログラマーとして、これは私を少し投げました!
ルーチンでの使用法から、Fortranがレコード配列のフィールドを独自の配列として射影できることは明らかです。
SUBROUTINE HeatFlow( Area, Azimuth )
REAL, INTENT(IN), DIMENSION(:) :: Area
REAL, INTENT(IN), DIMENSION(:) :: Azimuth
Delphiでこれを行う方法があるかどうか誰かが知っていますか(私はバージョン2010を使用しています)?
レコード値を配列として抽出する関数を作成することもできますが、すべてのフィールドに専用のルーチンを作成する必要があるため、これは少し面倒です(かなりの数があります)。
Delphi 2010には、見逃していた言語機能があることを期待しています。