Fortran: Lahey LF90: Difference between revisions

From BlueM
Jump to navigation Jump to search
(Die Seite wurde neu angelegt: == Fortran Compiler Lahey LF90 == === DLL erstellen === Automake-Datei: <fortran> QUITONERROR DEBUG FILES=*.for COMPILE=@lf90 -ap -chk -g -co -f90 -lst -pca -sav -st...)
 
(mehr beispiele)
Line 19: Line 19:


;TIP: Es können mit LF90 keine Proceduren eines Moduls exportiert werden ! Deshalb eigene Subroutine/Funktion mit Modulproceduraufruf implementieren.
;TIP: Es können mit LF90 keine Proceduren eines Moduls exportiert werden ! Deshalb eigene Subroutine/Funktion mit Modulproceduraufruf implementieren.
Gültige Schnittstellendefinitionen mit LF90
<fortran>
<fortran>
       subroutine TEST_MODULE()
       subroutine TEST_MODULE()
       USE MOD_BLABLA
       USE MOD_BLABLA
       DLL_EXPORT TEST_MODULE
       DLL_EXPORT TEST_MODULE
        call BLABLA_Procedure()
      end subroutine


        call BLABLA_Procedure()  
      subroutine TEST_dlL()
      DLL_EXPORT TEST_dll
       end subroutine
       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
</fortran>
</fortran>



Revision as of 06:40, 12 September 2007

Fortran Compiler Lahey LF90

DLL erstellen

Automake-Datei:

<fortran> 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 </fortran>



TIP
Es können mit LF90 keine Proceduren eines Moduls exportiert werden ! Deshalb eigene Subroutine/Funktion mit Modulproceduraufruf implementieren.

Gültige Schnittstellendefinitionen mit LF90 <fortran>

     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

</fortran>