-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathexpokit.pyf
92 lines (90 loc) · 4.17 KB
/
expokit.pyf
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
python module __user__routines_real
interface
subroutine matvec(n,x,y)
integer, intent(in) :: n
double precision dimension(n), intent(in) :: x
double precision dimension(n), intent(out) :: y
end subroutine
end iterface
end python module __user__routines_real
python module __user__routines_complex
interface
subroutine matvec(n,x,y)
integer, intent(in) :: n
complex*16 dimension(n), intent(in) :: x
complex*16 dimension(n), intent(out) :: y
end subroutine
end iterface
end python module __user__routines_complex
python module _expokit
interface
subroutine dsexpv(n,m,t,v,w,tol,anorm,wsp,lwsp,iwsp,liwsp,matvec,itrace,iflag)
use __user__routines_real
integer intent(hide), depend(v) :: n = len(v)
integer intent(in) :: m
double precision intent(in) :: t
double precision dimension(n), intent(in) :: v
double precision dimension(n), intent(out) :: w
double precision intent(in,out) :: tol
double precision intent(in) :: anorm
double precision dimension(*), intent(in), check(len(wsp)>=7+n*(m+2)+5*(m+2)*(m+2)) :: wsp
integer intent(hide), depend(wsp) :: lwsp = len(wsp)
integer dimension(*), intent(in), check(len(iwsp)>=m+2) :: iwsp
integer intent(hide), depend(iwsp) :: liwsp = len(iwsp)
external matvec
integer intent(in) :: itrace
integer intent(out) :: iflag
end subroutine
subroutine dgexpv(n,m,t,v,w,tol,anorm,wsp,lwsp,iwsp,liwsp,matvec,itrace,iflag)
use __user__routines_real
integer intent(hide), depend(v) :: n = len(v)
integer intent(in) :: m
double precision intent(in) :: t
double precision dimension(n), intent(in) :: v
double precision dimension(n), intent(out) :: w
double precision intent(in,out) :: tol
double precision intent(in) :: anorm
double precision dimension(*), intent(in), check(len(wsp)>=7+n*(m+2)+5*(m+2)*(m+2)) :: wsp
integer intent(hide), depend(wsp) :: lwsp = len(wsp)
integer dimension(*), intent(in), check(len(iwsp)>=m+2) :: iwsp
integer intent(hide), depend(iwsp) :: liwsp = len(iwsp)
external matvec
integer intent(in) :: itrace
integer intent(out) :: iflag
end subroutine
subroutine zhexpv(n,m,t,v,w,tol,anorm,wsp,lwsp,iwsp,liwsp,matvec,itrace,iflag)
use __user__routines_complex
integer intent(hide), depend(v) :: n = len(v)
integer intent(in) :: m
double precision intent(in) :: t
complex*16 dimension(n), intent(in) :: v
complex*16 dimension(n), intent(out) :: w
double precision intent(in,out) :: tol
double precision intent(in) :: anorm
complex*16 dimension(*), intent(in), check(len(wsp)>=7+n*(m+2)+5*(m+2)*(m+2)) :: wsp
integer intent(hide), depend(wsp) :: lwsp = len(wsp)
integer dimension(*), intent(in), check(len(iwsp)>=m+2) :: iwsp
integer intent(hide), depend(iwsp) :: liwsp = len(iwsp)
external matvec
integer intent(in) :: itrace
integer intent(out) :: iflag
end subroutine
subroutine zgexpv(n,m,t,v,w,tol,anorm,wsp,lwsp,iwsp,liwsp,matvec,itrace,iflag)
use __user__routines_complex
integer intent(hide), depend(v) :: n = len(v)
integer intent(in) :: m
double precision intent(in) :: t
complex*16 dimension(n), intent(in) :: v
complex*16 dimension(n), intent(out) :: w
double precision intent(in,out) :: tol
double precision intent(in) :: anorm
complex*16 dimension(*), intent(in), check(len(wsp)>=7+n*(m+2)+5*(m+2)*(m+2)) :: wsp
integer intent(hide), depend(wsp) :: lwsp = len(wsp)
integer dimension(*), intent(in), check(len(iwsp)>=m+2) :: iwsp
integer intent(hide), depend(iwsp) :: liwsp = len(iwsp)
external matvec
integer intent(in) :: itrace
integer intent(out) :: iflag
end subroutine
end interface
end python module _expokit