Fortran: Lahey LF90

From BlueM
Revision as of 08:47, 27 January 2018 by Froehlich (talk | contribs) (fix syntax highlighting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Fortran Compiler Lahey LF90

DLL erstellen

Automake-Datei:

QUITONERROR
DEBUG
FILES=*.for
COMPILE=@lf90 -ap -chk -g -co -f90 -lst -pca -sav -stchk -trace -w -wo -xref -c %fi -DLL -WIN -ML WINAPI

LINK=@lf90 @%rf -dll -out %ex -ml winapi -fullwarn -g
TARGET=Target.dll
TIP
Es können mit LF90 keine Proceduren eines Moduls exportiert werden ! Deshalb eigene Subroutine/Funktion mit Modulproceduraufruf implementieren.

Gültige Schnittstellendefinitionen mit LF90

      subroutine TEST_MODULE()
      USE MOD_BLABLA
      DLL_EXPORT TEST_MODULE
        call BLABLA_Procedure() 
      end subroutine


      subroutine TEST_dlL()
      DLL_EXPORT TEST_dll
      end subroutine


      function TEST_FUNCT()
      LOGICAL :: TEST_FUNCT
      DLL_EXPORT TEST_FUNCT
      end function


      LOGICAL function TEST_FUNCT2()
      DLL_EXPORT TEST_FUNCT2
        TEST_FUNCT2 = .true.
      end function


      LOGICAL function TEST_UEBERGABE_Z(Zahl)
      USE MOD_SCHNITTSTELLE
      DLL_EXPORT TEST_UEBERGABE_Z
      INTEGER Zahl
        TEST_UEBERGABE_Z = .true.
      end function

      LOGICAL function TEST_UEBERGABE_C(str)
      USE MOD_SCHNITTSTELLE
      DLL_EXPORT TEST_UEBERGABE_C
      CHARACTER(1024) str
        TEST_UEBERGABE_C = .true.
      end function

      LOGICAL function TEST_UEBERGABE_C2(str)
      USE MOD_SCHNITTSTELLE
      DLL_EXPORT TEST_UEBERGABE_C2
      CHARACTER(*) str
        TEST_UEBERGABE_C2 = .true.
      end function
TIP
Aufpassen manchmal sind die exportierten Methdoden "case sensitive" !!!