-
Notifications
You must be signed in to change notification settings - Fork 1
/
fpspline.pyf
265 lines (226 loc) · 12.7 KB
/
fpspline.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
! -*- f90 -*-
! Note: the context of this file is case sensitive.
python module fpspline ! in
interface ! in :fpspline
subroutine genxpkg(nx,x,xpkg,iper,imsg,itol,ztol,ialg,ier) ! in :fpspline:src/genxpkg.f90
use iso_c_binding, only: fp=>c_double
integer, intent(hide) :: nx
real(kind=fp) dimension(nx), intent(in) :: x
real(kind=fp) dimension(nx*4), intent(out) :: xpkg
integer, intent(in) :: iper
integer, intent(in) :: imsg = 0
integer, intent(in) :: itol = 0
real(kind=fp), intent(in) :: ztol = 5.0e-7
integer, intent(in) :: ialg = -3
integer, intent(out) :: ier
end subroutine genxpkg
! -------------------------------------
subroutine mkspline(x,nx,fspl,ibcxmin,bcxmin,ibcxmax,bcxmax,ilinx,ier) ! in :fpspline:src/mkspline.f90
use iso_c_binding, only: fp=>c_double
integer, intent(hide), depend(x) :: nx = len(x)
real(kind=fp) dimension(nx), intent(in) :: x
real(kind=fp) dimension(2*nx),intent(c) :: fspl
integer, intent(in) :: ibcxmin
real(kind=fp), intent(in) :: bcxmin
integer, intent(in) :: ibcxmax
real(kind=fp), intent(in) :: bcxmax
integer, intent(out) :: ilinx
integer, intent(out) :: ier
end subroutine mkspline
subroutine evspline(xget,x,nx,ilinx,f,ict,fval,ier) ! in :fpspline:src/evspline.f90
use iso_c_binding, only: fp=>c_double
real(kind=fp), intent(in) :: xget
real(kind=fp) dimension(nx), intent(in) :: x
integer, intent(hide), depend(x) :: nx = len(x)
integer, intent(in) :: ilinx
real(kind=fp) dimension(2*nx), intent(c) :: f
integer dimension(3), intent(in) :: ict
real(kind=fp) intent(out) :: fval
integer, intent(out) :: ier
end subroutine evspline
subroutine vecspline(ict,ivec,xvec,ivd,fval,nx,xpkg,fspl,iwarn,ier) ! in :fpspline:src/vecspline.f90
use iso_c_binding, only: fp=>c_double
integer dimension(3), intent(in) :: ict
integer, intent(hide), depend(xvec) :: ivec = len(xvec)
real(kind=fp) dimension(ivec), intent(in) :: xvec
integer, intent(hide), depend(ivec) :: ivd = ivec
integer, intent(hide), depend(xpkg) :: nx = len(xpkg)/4
real(kind=fp) dimension(nx*4), intent(in) :: xpkg
real(kind=fp) dimension(2*nx), intent(c) :: fspl
real(kind=fp) dimension(ivec), intent(out) :: fval
integer, intent(out) :: ier
integer, intent(out) :: iwarn
end subroutine vecspline
! -------------------------------------
subroutine mkbicub(x,nx,y,ny,f,nf2,ibcxmin,bcxmin,ibcxmax,bcxmax,ibcymin,bcymin,ibcymax,bcymax,ilinx,iliny,ier) ! in :fpspline:src/mkbicub.f90
use iso_c_binding, only: fp=>c_double
integer, intent(hide), depend(x) :: nx = len(x)
integer, intent(hide), depend(y) :: ny = len(y)
integer, intent(hide), depend(nx) :: nf2 = nx
real(kind=fp) dimension(nx), intent(in) :: x
real(kind=fp) dimension(ny), intent(in) :: y
real(kind=fp) dimension(4*nx*ny), intent(c) :: f
integer, intent(in) :: ibcxmin
real(kind=fp) dimension(ny), intent(in) :: bcxmin
integer, intent(in) :: ibcxmax
real(kind=fp) dimension(ny), intent(in) :: bcxmax
integer, intent(in) :: ibcymin
real(kind=fp) dimension(nx), intent(in) :: bcymin
integer, intent(in) :: ibcymax
real(kind=fp) dimension(nx), intent(in) :: bcymax
integer, intent(out) :: ilinx
integer, intent(out) :: iliny
integer, intent(out) :: ier
end subroutine mkbicub
subroutine evbicub(xget,yget,x,nx,y,ny,ilinx,iliny,f,inf2,ict,fval,ier) ! in :fpspline:src/evbicub.f90
use iso_c_binding, only: fp=>c_double
real(kind=fp), intent(in) :: xget
real(kind=fp), intent(in) :: yget
real(kind=fp) dimension(nx), intent(in) :: x
integer, intent(hide), depend(x) :: nx = len(x)
real(kind=fp) dimension(ny), intent(in) :: y
integer, intent(hide), depend(y) :: ny = len(y)
integer, intent(in) :: ilinx
integer, intent(in) :: iliny
real(kind=fp) dimension(4*nx*ny), intent(c) :: f
integer, intent(hide), depend(nx) :: inf2 = nx
integer dimension(6), intent(in) :: ict
real(kind=fp) intent(out) :: fval
integer, intent(out) :: ier
end subroutine evbicub
subroutine vecbicub(ict,ivec,xvec,yvec,ivd,fval,nx,xpkg,ny,ypkg,fspl,inf2,iwarn,ier) ! in :fpspline:src/vecbicub.f90
use iso_c_binding, only: fp=>c_double
integer dimension(6), intent(in) :: ict
integer, intent(hide), depend(xvec) :: ivec = len(xvec)
real(kind=fp) dimension(ivec), intent(in) :: xvec
real(kind=fp) dimension(ivec), intent(in) :: yvec
integer, intent(hide), depend(ivec) :: ivd = ivec
integer, intent(hide), depend(xpkg) :: nx = len(xpkg)/4
real(kind=fp) dimension(nx*4), intent(in) :: xpkg
integer, intent(hide), depend(ypkg) :: ny = len(ypkg)/4
real(kind=fp) dimension(ny*4), intent(in) :: ypkg
real(kind=fp) dimension(4*nx*ny), intent(c) :: fspl
integer, intent(hide), depend(nx) :: inf2 = nx
real(kind=fp) dimension(ivd), intent(out) :: fval
integer, intent(out) :: ier
integer, intent(out) :: iwarn
end subroutine vecbicub
subroutine gridbicub(x_newgrid,nx_new,y_newgrid,ny_new,f_new,if1,nx,xpkg,ny,ypkg,fspl,inf3,iwarn,ier) ! in :fpspline:src/gridbicub.f90
use iso_c_binding, only: fp=>c_double
real(kind=fp) dimension(nx_new), intent(in) :: x_newgrid
integer, intent(hide), depend(x_newgrid) :: nx_new = len(x_newgrid)
real(kind=fp) dimension(ny_new), intent(in) :: y_newgrid
integer, intent(hide), depend(y_newgrid) :: ny_new = len(y_newgrid)
integer, intent(hide), depend(nx_new) :: if1 = nx_new
integer, intent(hide), depend(xpkg) :: nx = len(xpkg)/4
real(kind=fp) dimension(nx*4), intent(in) :: xpkg
integer, intent(hide), depend(ypkg) :: ny = len(ypkg)/4
real(kind=fp) dimension(ny*4), intent(in) :: ypkg
real(kind=fp) dimension(4*nx*ny), intent(c) :: fspl
integer, intent(hide), depend(nx) :: inf3 = nx
real(kind=fp) dimension(nx_new*ny_new), intent(out) :: f_new
integer, intent(out) :: ier
integer, intent(out) :: iwarn
end subroutine gridbicub
! -------------------------------------
subroutine mktricub(x,nx,y,ny,z,nz,f,nf2,nf3,ibcxmin,bcxmin,ibcxmax,bcxmax,inb1x,ibcymin,bcymin,ibcymax,bcymax,inb1y,ibczmin,bczmin,ibczmax,bczmax,inb1z,ilinx,iliny,ilinz,ier) ! in :fpspline:src/mktricub.f90
use iso_c_binding, only: fp=>c_double
integer, intent(hide), depend(x) :: nx = len(x)
integer, intent(hide), depend(y) :: ny = len(y)
integer, intent(hide), depend(z) :: nz = len(z)
integer, intent(hide), depend(ny) :: inb1x = ny
integer, intent(hide), depend(nx) :: inb1y = nx
integer, intent(hide), depend(nx) :: inb1z = nx
integer, intent(hide), depend(nx) :: nf2 = nx
integer, intent(hide), depend(ny) :: nf3 = ny
real(kind=fp) dimension(nx), intent(in) :: x
real(kind=fp) dimension(ny), intent(in) :: y
real(kind=fp) dimension(nz), intent(in) :: z
real(kind=fp) dimension(8*nx*ny*nz), intent(c) :: f
integer, intent(in) :: ibcxmin
real(kind=fp) dimension(ny*nz), intent(in) :: bcxmin
integer, intent(in) :: ibcxmax
real(kind=fp) dimension(ny*nz), intent(in) :: bcxmax
integer, intent(in) :: ibcymin
real(kind=fp) dimension(nx*nz), intent(in) :: bcymin
integer, intent(in) :: ibcymax
real(kind=fp) dimension(nx*nz), intent(in) :: bcymax
integer, intent(in) :: ibczmin
real(kind=fp) dimension(nx*ny), intent(in) :: bczmin
integer, intent(in) :: ibczmax
real(kind=fp) dimension(nx*ny), intent(in) :: bczmax
integer, intent(out) :: ilinx
integer, intent(out) :: iliny
integer, intent(out) :: ilinz
integer, intent(out) :: ier
end subroutine mktricub
subroutine evtricub(xget,yget,zget,x,nx,y,ny,z,nz,ilinx,iliny,ilinz,f,inf2,inf3,ict,fval,ier) ! in :fpspline:src/evtricub.f90
use iso_c_binding, only: fp=>c_double
real(kind=fp), intent(in) :: xget
real(kind=fp), intent(in) :: yget
real(kind=fp), intent(in) :: zget
real(kind=fp) dimension(nx), intent(in) :: x
integer, intent(hide), depend(x) :: nx = len(x)
real(kind=fp) dimension(ny), intent(in) :: y
integer, intent(hide), depend(y) :: ny = len(y)
real(kind=fp) dimension(nz), intent(in) :: z
integer, intent(hide), depend(z) :: nz = len(z)
integer, intent(in) :: ilinx
integer, intent(in) :: iliny
integer, intent(in) :: ilinz
real(kind=fp) dimension(8*nx*ny*nz), intent(c) :: f
integer, intent(hide), depend(nx) :: inf2 = nx
integer, intent(hide), depend(ny) :: inf3 = ny
integer dimension(10), intent(in) :: ict
real(kind=fp) intent(out) :: fval
integer, intent(out) :: ier
end subroutine evtricub
subroutine vectricub(ict,ivec,xvec,yvec,zvec,ivd,fval,nx,xpkg,ny,ypkg,nz,zpkg,fspl,inf4,inf5,iwarn,ier) ! in :fpspline:src/vectricub.f90
use iso_c_binding, only: fp=>c_double
integer dimension(10), intent(in) :: ict
integer, intent(hide), depend(xvec) :: ivec = len(xvec)
real(kind=fp) dimension(ivec), intent(in) :: xvec
real(kind=fp) dimension(ivec), intent(in) :: yvec
real(kind=fp) dimension(ivec), intent(in) :: zvec
integer, intent(hide), depend(ivec) :: ivd = ivec
integer, intent(hide), depend(xpkg) :: nx = len(xpkg)/4
real(kind=fp) dimension(nx*4) :: xpkg
integer, intent(hide), depend(ypkg) :: ny = len(ypkg)/4
real(kind=fp) dimension(ny*4) :: ypkg
integer, intent(hide), depend(zpkg) :: nz = len(zpkg)/4
real(kind=fp) dimension(nz*4) :: zpkg
real(kind=fp) dimension(8*nx*ny*nz), intent(c) :: fspl
integer, intent(hide), depend(nx) :: inf4 = nx
integer, intent(hide), depend(ny) :: inf5 = ny
real(kind=fp) dimension(ivec), intent(out) :: fval
integer, intent(out) :: ier
integer, intent(out) :: iwarn
end subroutine vectricub
subroutine gridtricub(x_newgrid,nx_new,y_newgrid,ny_new,z_newgrid,nz_new,f_new,if1,if2,nx,xpkg,ny,ypkg,nz,zpkg,fspl,inf4,inf5,iwarn,ier) ! in :fpspline:src/gridtricub.f90
use iso_c_binding, only: fp=>c_double
real(kind=fp) dimension(nx_new) :: x_newgrid
integer, intent(hide), depend(x_newgrid) :: nx_new = len(x_newgrid)
real(kind=fp) dimension(ny_new) :: y_newgrid
integer, intent(hide), depend(y_newgrid) :: ny_new = len(y_newgrid)
real(kind=fp) dimension(nz_new) :: z_newgrid
integer, intent(hide), depend(z_newgrid) :: nz_new = len(z_newgrid)
integer, intent(hide), depend(nx_new) :: if1 = nx_new
integer, intent(hide), depend(ny_new) :: if2 = ny_new
integer, intent(hide), depend(xpkg) :: nx = len(xpkg)/4
real(kind=fp) dimension(nx*4) :: xpkg
integer, intent(hide), depend(ypkg) :: ny = len(ypkg)/4
real(kind=fp) dimension(ny*4) :: ypkg
integer, intent(hide), depend(zpkg) :: nz = len(zpkg)/4
real(kind=fp) dimension(nz*4) :: zpkg
real(kind=fp) dimension(8*nx*ny*nz), intent(c) :: fspl
integer, intent(hide), depend(nx) :: inf4 = nx
integer, intent(hide), depend(ny) :: inf5 = ny
real(kind=fp) dimension(nx_new*ny_new*nz_new), intent(out) :: f_new
integer, intent(out) :: iwarn
integer, intent(out) :: ier
end subroutine gridtricub
end interface
end python module fpspline
! This file was auto-generated with f2py (version:1.23.0).
! See:
! https://web.archive.org/web/20140822061353/http://cens.ioc.ee/projects/f2py2e