Fortran: Lahey LF90

From BlueM
Jump to navigation Jump to search

Fortran Compiler Lahey LF90

DLL erstellen

Automake-Datei:

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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" !!!