Fortran: Lahey LF90: Difference between revisions
Jump to navigation
Jump to search
(mehr beispiele) |
m (fix syntax highlighting) |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
Automake-Datei: | Automake-Datei: | ||
< | <source lang="make"> | ||
QUITONERROR | QUITONERROR | ||
DEBUG | DEBUG | ||
| Line 13: | Line 13: | ||
LINK=@lf90 @%rf -dll -out %ex -ml winapi -fullwarn -g | LINK=@lf90 @%rf -dll -out %ex -ml winapi -fullwarn -g | ||
TARGET=Target.dll | TARGET=Target.dll | ||
</ | </source> | ||
;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 | Gültige Schnittstellendefinitionen mit LF90 | ||
<fortran> | <source lang="fortran"> | ||
subroutine TEST_MODULE() | subroutine TEST_MODULE() | ||
USE MOD_BLABLA | USE MOD_BLABLA | ||
| Line 65: | Line 62: | ||
TEST_UEBERGABE_C2 = .true. | TEST_UEBERGABE_C2 = .true. | ||
end function | end function | ||
</ | </source> | ||
;TIP: Aufpassen manchmal sind die exportierten Methdoden "case sensitive" !!! | |||
| Line 73: | Line 70: | ||
[[Kategorie:Hilfe]] | [[Kategorie:Hilfe]] | ||
[[Kategorie:DLL]] | [[Kategorie:DLL]] | ||
[[Kategorie:SMUSI]] | |||
[[Kategorie:Fortran]] | |||
Latest revision as of 08:47, 27 January 2018
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" !!!