Fortran: Lahey LF90: Difference between revisions
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 | |||
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 05: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>