Blame view

fvn_fnlib/fvn_fnlib.f90 24.5 KB
38581db0c   daniau   git-svn-id: https...
1
  module fvn_fnlib
b93026039   daniau   git-svn-id: https...
2
  use fvn_common
38581db0c   daniau   git-svn-id: https...
3
4
5
6
7
8
9
10
11
12
13
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! This module is a generic interface for fn library
  ! http://www.netlib.org/fn
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Elementary Functions
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  ! Argument
  interface carg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
14
15
        real function carg(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
16
        end function carg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
17
18
        real(kind(1.d0)) function zarg(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
19
20
21
22
23
        end function zarg
  end interface carg
  
  ! Cubic root
  interface cbrt
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
24
25
        real function cbrt(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
26
        end function cbrt
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
27
28
        real(kind(1.d0)) function dcbrt(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
29
        end function dcbrt
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
30
31
        complex function ccbrt(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
32
        end function ccbrt
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
33
34
        complex(kind(1.d0)) function zcbrt(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
35
36
37
38
39
        end function zcbrt
  end interface cbrt
  
  ! (exp(x) -1)/x
  interface exprl
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
40
41
        real function exprel(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
42
        end function exprel
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
43
44
        real(kind(1.d0)) function dexprl(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
45
        end function dexprl
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
46
47
        complex function cexprl(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
48
        end function cexprl
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
49
50
        complex(kind(1.d0)) function zexprl(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
51
52
53
54
55
        end function zexprl
  end interface exprl
  
  ! log10 extension to complex arguments
  interface log10
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
56
57
        complex function clog10(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
58
        end function clog10
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
59
60
        complex(kind(1.d0)) function zlog10(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
61
62
63
64
65
        end function zlog10
  end interface log10 
  
  ! ln(x+1)
  interface alnrel
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
66
67
        real function alnrel(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
68
        end function alnrel
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
69
70
        real(kind(1.d0)) function dlnrel(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
71
        end function dlnrel
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
72
73
        complex function clnrel(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
74
        end function clnrel
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
75
76
        complex(kind(1.d0)) function zlnrel(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
77
78
79
80
81
82
83
84
85
86
87
88
89
90
        end function zlnrel
  end interface alnrel
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Elementary Functions
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Trigonometry
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  ! Extension de la tangente aux arguments complexes
  interface tan
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
91
92
        complex function ctan(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
93
        end function ctan
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
94
95
        complex(kind(1.d0)) function ztan(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
96
97
98
99
100
        end function ztan
  end interface tan
  
  ! Cotangente
  interface cot
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
101
102
        real function cot(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
103
        end function cot
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
104
105
        real(kind(1.d0)) function dcot(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
106
        end function dcot
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
107
108
        complex function ccot(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
109
        end function ccot
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
110
111
        complex(kind(1.d0)) function zcot(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
112
113
114
115
116
        end function zcot
  end interface cot
  
  ! Sinus in degree
  interface sindg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
117
118
        real function sindg(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
119
        end function sindg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
120
121
        real(kind(1.d0)) function dsindg(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
122
123
124
125
126
        end function dsindg
  end interface sindg
  
  ! Cosinus in degree
  interface cosdg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
127
128
        real function cosdg(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
129
        end function cosdg
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
130
131
        real(kind(1.d0)) function dcosdg(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
132
133
134
135
136
137
        end function dcosdg
  end interface cosdg
  
  
  ! Extension de l'arcsinus aux arguments complexes
  interface asin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
138
139
        complex function casin(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
140
        end function casin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
141
142
        complex(kind(1.d0)) function zasin(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
143
144
145
146
147
        end function zasin
  end interface asin
  
  ! Extension de l'arccosinus aux arguments complexes
  interface acos
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
148
149
        complex function cacos(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
150
        end function cacos
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
151
152
        complex(kind(1.d0)) function zacos(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
153
154
155
156
157
        end function zacos
  end interface acos
  
  ! Extension de l'arctangente aux arguments complexes
  interface atan
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
158
159
        complex function catan(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
160
        end function catan
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
161
162
        complex(kind(1.d0)) function zatan(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
163
164
165
166
167
        end function zatan
  end interface atan
  
  ! Extension de atan2 aux arguments complexes
  interface atan2
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
168
169
        complex function catan2(csn,ccs)
              complex :: csn,ccs
38581db0c   daniau   git-svn-id: https...
170
        end function catan2
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
171
172
        complex(kind(1.d0)) function zatan2(csn,ccs)
              complex(kind(1.d0)) :: csn,ccs
38581db0c   daniau   git-svn-id: https...
173
174
175
176
177
178
179
180
181
        end function zatan2
  end interface atan2
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Hyperbolic Trigonometry
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Extension du Sinus hyperbolique aux arguments complexes
  interface sinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
182
183
        complex function csinh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
184
        end function csinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
185
186
        complex(kind(1.d0)) function zsinh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
187
188
189
190
191
        end function zsinh
  end interface sinh
  
  ! Extension du Cosinus hyperbolique aux arguments complexes
  interface cosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
192
193
        complex function ccosh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
194
        end function ccosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
195
196
        complex(kind(1.d0)) function zcosh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
197
198
199
200
201
        end function zcosh
  end interface cosh
  
  ! Extension de la tangente hyperbolique aux arguments complexes
  interface tanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
202
203
        complex function ctanh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
204
        end function ctanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
205
206
        complex(kind(1.d0)) function ztanh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
207
208
209
210
211
        end function ztanh
  end interface tanh
  
  ! Arc sinus hyperbolique
  interface asinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
212
213
        real function asinh(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
214
        end function asinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
215
216
        real(kind(1.d0)) function dasinh(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
217
        end function dasinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
218
219
        complex function casinh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
220
        end function casinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
221
222
        complex(kind(1.d0)) function zasinh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
223
224
225
226
227
        end function zasinh
  end interface asinh
  
  ! Arc cosinus hyperbolique
  interface acosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
228
229
        real function acosh(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
230
        end function acosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
231
232
        real(kind(1.d0)) function dacosh(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
233
        end function dacosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
234
235
        complex function cacosh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
236
        end function cacosh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
237
238
        complex(kind(1.d0)) function zacosh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
239
240
241
242
243
        end function zacosh
  end interface acosh
  
  ! Arc tangente hyperbolique
  interface atanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
244
245
        real function atanh(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
246
        end function atanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
247
248
        real(kind(1.d0)) function datanh(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
249
        end function datanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
250
251
        complex function catanh(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
252
        end function catanh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
253
254
        complex(kind(1.d0)) function zatanh(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
255
256
257
258
259
260
261
262
263
264
265
266
267
268
        end function zatanh
  end interface atanh
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Trigonometry
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Exponential integral and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  ! Exponential integral ei(x)
  interface ei
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
269
270
        real function ei(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
271
        end function ei
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
272
273
        real(kind(1.d0)) function dei(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
274
275
276
277
278
        end function dei
  end interface ei
  
  ! Exponential integral e1(x)
  interface e1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
279
280
        real function e1(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
281
        end function e1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
282
283
        real(kind(1.d0)) function de1(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
284
        end function de1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
285
286
        complex(kind(1.d0)) function ze1(x)
              complex(kind(1.d0)) :: x
26c292bb6   wdaniau   Contribution de S...
287
        end function
38581db0c   daniau   git-svn-id: https...
288
289
290
291
292
293
294
295
  end interface e1
  
  !!!!!!!!!!!!!!!
  ! MISSING ENE
  !!!!!!!!!!!!!!!
  
  ! Logarithm integral
  interface ali
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
296
297
        real function ali(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
298
        end function ali
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
299
300
        real(kind(1.d0)) function dli(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
301
302
303
304
305
        end function dli
  end interface ali
  
  ! Sine integral
  interface si
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
306
307
        real function si(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
308
        end function si
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
309
310
        real(kind(1.d0)) function dsi(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
311
312
313
314
315
        end function dsi
  end interface si
  
  ! Cosine integral
  interface ci
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
316
317
        real function ci(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
318
        end function ci
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
319
320
        real(kind(1.d0)) function dci(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
321
322
323
324
325
        end function dci
  end interface ci
  
  ! Cosine integral alternate definition
  interface cin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
326
327
        real function cin(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
328
        end function cin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
329
330
        real(kind(1.d0)) function dcin(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
331
332
333
334
335
        end function dcin
  end interface cin
  
  ! Hyperbolic sine integral
  interface shi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
336
337
        real function shi(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
338
        end function shi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
339
340
        real(kind(1.d0)) function dshi(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
341
342
343
344
345
        end function dshi
  end interface shi
  
  ! Hyperbolic cosine integral
  interface chi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
346
347
        real function chi(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
348
        end function chi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
349
350
        real(kind(1.d0)) function dchi(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
351
352
353
354
355
        end function dchi
  end interface chi
  
  ! Hyperbolic cosine integral alternate definition
  interface cinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
356
357
        real function cinh(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
358
        end function cinh
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
359
360
        real(kind(1.d0)) function dcinh(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
361
362
363
364
365
366
367
368
369
370
371
372
        end function dcinh
  end interface cinh
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Exponential integral and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Gamma family
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
81b5d24e1   daniau   git-svn-id: https...
373
374
  ! No generic interface for fac and binom but we still
  ! define their prototypes
38581db0c   daniau   git-svn-id: https...
375
  ! Factorial
81b5d24e1   daniau   git-svn-id: https...
376
  interface
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
377
378
        real function fac(n)
              integer :: n
38581db0c   daniau   git-svn-id: https...
379
        end function fac
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
380
381
        real(kind(1.d0)) function dfac(n)
              integer :: n
38581db0c   daniau   git-svn-id: https...
382
        end function dfac
38581db0c   daniau   git-svn-id: https...
383
  ! Binomial coefficient
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
384
385
        real function binom(n,m)
              integer :: n,m
38581db0c   daniau   git-svn-id: https...
386
        end function binom
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
387
388
        real(kind(1.d0)) function dbinom(n,m)
              integer :: n,m
38581db0c   daniau   git-svn-id: https...
389
        end function dbinom
81b5d24e1   daniau   git-svn-id: https...
390
  end interface
38581db0c   daniau   git-svn-id: https...
391
392
393
  
  ! Gamma function
  interface gamma
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
394
395
        real function gamma(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
396
        end function gamma
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
397
398
        real(kind(1.d0)) function dgamma(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
399
        end function dgamma
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
400
401
        complex function cgamma(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
402
        end function cgamma
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
403
404
        complex(kind(1.d0)) function zgamma(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
405
406
407
408
409
        end function zgamma
  end interface gamma
  
  ! Reciprocal of gamma function
  interface gamr
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
410
411
        real function gamr(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
412
        end function gamr
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
413
414
        real(kind(1.d0)) function dgamr(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
415
        end function dgamr
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
416
417
        complex function cgamr(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
418
        end function cgamr
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
419
420
        complex(kind(1.d0)) function zgamr(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
421
422
423
424
425
        end function zgamr
  end interface gamr
  
  ! natural log of abs(gamma)
  interface alngam
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
426
427
        real function alngam(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
428
        end function alngam
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
429
430
        real(kind(1.d0)) function dlngam(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
431
        end function dlngam
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
432
433
        complex function clngam(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
434
        end function clngam
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
435
436
        complex(kind(1.d0)) function zlngam(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
437
438
439
440
441
442
        end function zlngam
  end interface alngam
  
  ! log abs gamma and sign
  interface algams
        subroutine algams(x,algam,sgngam)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
443
              real :: x
38581db0c   daniau   git-svn-id: https...
444
445
        end subroutine algams
        subroutine dlgams(x,algam,sgngam)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
446
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
447
448
449
450
451
        end subroutine dlgams
  end interface algams
  
  ! Incomplete gamma function
  interface gami
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
452
453
        real function gami(a,x)
              real :: a,x
38581db0c   daniau   git-svn-id: https...
454
        end function gami
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
455
456
        real(kind(1.d0)) function dgami(a,x)
              real(kind(1.d0)) :: a,x
38581db0c   daniau   git-svn-id: https...
457
458
459
460
461
        end function dgami
  end interface gami
  
  ! Complementary incomplete gamma function
  interface gamic
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
462
463
        real function gamic(a,x)
              real :: a,x
38581db0c   daniau   git-svn-id: https...
464
        end function gamic
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
465
466
        real(kind(1.d0)) function dgamic(a,x)
              real(kind(1.d0)) :: a,x
38581db0c   daniau   git-svn-id: https...
467
468
469
470
471
        end function dgamic
  end interface gamic
  
  ! Tricomi's incomplete gamma function
  interface gamit
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
472
473
        real function gamit(a,x)
              real :: a,x
38581db0c   daniau   git-svn-id: https...
474
        end function gamit
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
475
476
        real(kind(1.d0)) function dgamit(a,x)
              real(kind(1.d0)) :: a,x
38581db0c   daniau   git-svn-id: https...
477
478
479
480
481
        end function dgamit
  end interface gamit
  
  ! Psi function
  interface psi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
482
483
        real function psi(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
484
        end function psi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
485
486
        real(kind(1.d0)) function dpsi(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
487
        end function dpsi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
488
489
        complex function cpsi(z)
              complex :: z
38581db0c   daniau   git-svn-id: https...
490
        end function cpsi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
491
492
        complex(kind(1.d0)) function zpsi(z)
              complex(kind(1.d0)) :: z
38581db0c   daniau   git-svn-id: https...
493
494
495
496
497
        end function zpsi
  end interface psi
  
  ! Pochhammer
  interface poch
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
498
499
        real function poch(a,x)
              real :: a,x
38581db0c   daniau   git-svn-id: https...
500
        end function poch
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
501
502
        real(kind(1.d0)) function dpoch(a,x)
              real(kind(1.d0)) :: a,x
38581db0c   daniau   git-svn-id: https...
503
504
505
506
507
        end function dpoch
  end interface poch
  
  ! Pochhammer first order
  interface poch1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
508
509
        real function poch1(a,x)
              real :: a,x
38581db0c   daniau   git-svn-id: https...
510
        end function poch1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
511
512
        real(kind(1.d0)) function dpoch1(a,x)
              real(kind(1.d0)) :: a,x
38581db0c   daniau   git-svn-id: https...
513
514
515
516
517
        end function dpoch1
  end interface poch1
  
  ! Beta function
  interface beta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
518
519
        real function beta(a,b)
              real :: a,b
38581db0c   daniau   git-svn-id: https...
520
        end function beta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
521
522
        real(kind(1.d0)) function dbeta(a,b)
              real(kind(1.d0)) :: a,b
38581db0c   daniau   git-svn-id: https...
523
        end function dbeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
524
525
        complex function cbeta(a,b)
              complex :: a,b
38581db0c   daniau   git-svn-id: https...
526
        end function cbeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
527
528
        complex(kind(1.d0)) function zbeta(a,b)
              complex(kind(1.d0)) :: a,b
38581db0c   daniau   git-svn-id: https...
529
530
531
532
533
        end function zbeta
  end interface beta
  
  ! natural log of beta
  interface albeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
534
535
        real function albeta(a,b)
              real :: a,b
38581db0c   daniau   git-svn-id: https...
536
        end function albeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
537
538
        real(kind(1.d0)) function dlbeta(a,b)
              real(kind(1.d0)) :: a,b
38581db0c   daniau   git-svn-id: https...
539
        end function dlbeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
540
541
        complex function clbeta(a,b)
              complex :: a,b
38581db0c   daniau   git-svn-id: https...
542
        end function clbeta
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
543
544
        complex(kind(1.d0)) function zlbeta(a,b)
              complex(kind(1.d0)) :: a,b
38581db0c   daniau   git-svn-id: https...
545
546
547
548
549
        end function zlbeta
  end interface albeta
  
  ! Incomplete beta function
  interface betai
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
550
551
        real function betai(x,pin,qin)
              real :: x,pin,qin
38581db0c   daniau   git-svn-id: https...
552
        end function betai
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
553
554
        real(kind(1.d0)) function dbetai(x,pin,qin)
              real(kind(1.d0)) :: x,pin,qin
38581db0c   daniau   git-svn-id: https...
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
        end function dbetai
  end interface betai
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Gamma family
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Error function and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  ! Error function
  interface erf
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
570
571
        real function erf(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
572
        end function erf
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
573
574
        real(kind(1.d0)) function derf(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
575
576
577
578
579
        end function derf
  end interface erf
  
  ! Complementary error function
  interface erfc
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
580
581
        real function erfc(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
582
        end function erfc
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
583
584
        real(kind(1.d0)) function derfc(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
585
586
587
588
589
590
591
592
593
594
595
596
        end function derfc
  end interface erfc
  
  !!!!!!!!!!!
  ! MISSING ERFCE
  ! MISSING CERFI
  ! MISSING ERFI
  ! MISSING ERFCI
  !!!!!!!!!!!!!!
  
  ! Dawson's function
  interface daws
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
597
598
        real function daws(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
599
        end function daws
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
600
601
        real(kind(1.d0)) function ddaws(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
        end function ddaws
  end interface daws
  
  !!!!!!!!!!!!!!!!!
  ! MISSING FRESC
  ! MISSING FRESS
  !!!!!!!!!!!!!!!!!
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Error function and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Bessel functions and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  !J0(x)
  interface bsj0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
620
621
        real function besj0(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
622
        end function besj0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
623
624
        real(kind(1.d0)) function dbesj0(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
625
626
627
628
629
        end function dbesj0
  end interface bsj0
  
  !J1(x)
  interface bsj1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
630
631
        real function besj1(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
632
        end function besj1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
633
634
        real(kind(1.d0)) function dbesj1(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
635
636
637
638
639
        end function dbesj1
  end interface bsj1
  
  !Y0(x)
  interface bsy0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
640
641
        real function besy0(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
642
        end function besy0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
643
644
        real(kind(1.d0)) function dbesy0(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
645
646
647
648
649
        end function dbesy0
  end interface bsy0
  
  !Y1(x)
  interface bsy1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
650
651
        real function besy1(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
652
        end function besy1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
653
654
        real(kind(1.d0)) function dbesy1(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
655
656
657
658
659
        end function dbesy1
  end interface bsy1
  
  !I0(x)
  interface bsi0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
660
661
        real function besi0(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
662
        end function besi0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
663
664
        real(kind(1.d0)) function dbesi0(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
665
666
667
668
669
        end function dbesi0
  end interface bsi0
  
  !I1(x)
  interface bsi1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
670
671
        real function besi1(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
672
        end function besi1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
673
674
        real(kind(1.d0)) function dbesi1(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
675
676
677
678
679
        end function dbesi1
  end interface bsi1
  
  !K0(x)
  interface bsk0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
680
681
        real function besk0(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
682
        end function besk0
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
683
684
        real(kind(1.d0)) function dbesk0(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
685
686
687
688
689
        end function dbesk0
  end interface bsk0
  
  !K1(x)
  interface bsk1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
690
691
        real function besk1(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
692
        end function besk1
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
693
694
        real(kind(1.d0)) function dbesk1(x)
              real(kind(1.d0)) x
38581db0c   daniau   git-svn-id: https...
695
696
697
698
699
        end function dbesk1
  end interface bsk1
  
  ! Exponentially scaled I0
  interface bsi0e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
700
701
        real function besi0e(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
702
        end function besi0e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
703
704
        real(kind(1.d0)) function dbsi0e(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
705
706
707
708
709
        end function dbsi0e
  end interface bsi0e
  
  ! Exponentially scaled I1
  interface bsi1e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
710
711
        real function besi1e(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
712
        end function besi1e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
713
714
        real(kind(1.d0)) function dbsi1e(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
715
716
717
718
719
        end function dbsi1e
  end interface bsi1e
  
  ! Exponentially scaled K0
  interface bsk0e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
720
721
        real function besk0e(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
722
        end function besk0e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
723
724
        real(kind(1.d0)) function dbsk0e(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
725
726
727
728
729
        end function dbsk0e
  end interface bsk0e
  
  ! Exponentially scaled K1
  interface bsk1e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
730
731
        real function besk1e(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
732
        end function besk1e
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
733
734
        real(kind(1.d0)) function dbsk1e(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
735
736
        end function dbsk1e
  end interface bsk1e
e1aefab23   daniau   git-svn-id: https...
737
738
  ! nth order J
  interface bsjn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
739
740
741
742
743
        real function besjn(n,x,factor,big)
              integer :: n
              real :: x
              integer, optional :: factor
              real, optional :: big
e1aefab23   daniau   git-svn-id: https...
744
        end function besjn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
745
746
747
748
749
        real(kind(1.d0)) function dbesjn(n,x,factor,big)
              integer :: n
              real(kind(1.d0)) :: x
              integer, optional :: factor
              real(kind(1.d0)), optional :: big
e1aefab23   daniau   git-svn-id: https...
750
751
752
753
754
        end function dbesjn
  end interface bsjn
  
  ! nth order Y
  interface bsyn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
755
756
757
        real function besyn(n,x)
              integer :: n
              real :: x
e1aefab23   daniau   git-svn-id: https...
758
        end function besyn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
759
760
761
        real(kind(1.d0)) function dbesyn(n,x)
              integer :: n
              real(kind(1.d0)) :: x
e1aefab23   daniau   git-svn-id: https...
762
763
764
765
766
        end function dbesyn
  end interface bsyn
  
  ! nth order I
  interface bsin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
767
768
769
770
771
        real function besin(n,x,factor,big)
              integer :: n
              real :: x
              integer, optional :: factor
              real, optional :: big
e1aefab23   daniau   git-svn-id: https...
772
        end function besin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
773
774
775
776
777
        real(kind(1.d0)) function dbesin(n,x,factor,big)
              integer :: n
              real(kind(1.d0)) :: x
              integer, optional :: factor
              real(kind(1.d0)), optional :: big
e1aefab23   daniau   git-svn-id: https...
778
779
780
781
782
        end function dbesin
  end interface bsin
  
  ! nth order K
  interface bskn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
783
784
785
        real function beskn(n,x)
              integer :: n
              real :: x
e1aefab23   daniau   git-svn-id: https...
786
        end function beskn
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
787
788
789
        real(kind(1.d0)) function dbeskn(n,x)
              integer :: n
              real(kind(1.d0)) :: x
e1aefab23   daniau   git-svn-id: https...
790
791
        end function dbeskn
  end interface bskn
38581db0c   daniau   git-svn-id: https...
792
  !!!!!!!!!!!!!!!!!!!!!
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
793
794
  ! MISSING BSJNS, replaced by dbesrj (ChW 11/2009)
  ! MISSING BSINS, replaced by dbesri (ChW 11/2009)
38581db0c   daniau   git-svn-id: https...
795
796
797
798
799
  ! MISSING BSJS
  ! MISSING BSYS
  ! MISSING BSIS
  ! MISSING BSIES
  !!!!!!!!!!!!!!!!!!!!!
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
800
  ! vector b of Bessel J values of x from order 0 to order (n-1)
8d883e8a1   wdaniau   Integration of ki...
801
  interface besrj
d55dcfb5a   wdaniau   1) Added single p...
802
803
804
805
806
      subroutine besrj(x,n,b)
          real(kind(1.e0)), intent(in) :: x
          integer, intent(in) :: n
          real(kind(1.e0)), intent(out) :: b(n)
      end subroutine besrj
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
807
      subroutine dbesrj(x,n,b)
d55dcfb5a   wdaniau   1) Added single p...
808
809
810
          real(kind(1.d0)), intent(in) :: x
          integer, intent(in) :: n
          real(kind(1.d0)), intent(out) :: b(n)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
811
      end subroutine dbesrj
8d883e8a1   wdaniau   Integration of ki...
812
  end interface besrj
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
813
814
  
  ! vector b of Bessel I values of x from order 0 to order (n-1)
8d883e8a1   wdaniau   Integration of ki...
815
  interface besri
d55dcfb5a   wdaniau   1) Added single p...
816
817
818
819
820
      subroutine besri(x,n,b)
          real(kind(1.e0)), intent(in) :: x
          integer, intent(in) :: n
          real(kind(1.e0)), intent(out) :: b(n)
      end subroutine besri
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
821
      subroutine dbesri(x,n,b)
d55dcfb5a   wdaniau   1) Added single p...
822
823
824
          real(kind(1.d0)), intent(in) :: x
          integer, intent(in) :: n
          real(kind(1.d0)), intent(out) :: b(n)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
825
      end subroutine dbesri
8d883e8a1   wdaniau   Integration of ki...
826
  end interface besri
38581db0c   daniau   git-svn-id: https...
827
828
829
830
  
  ! K nu + k
  interface bsks
        subroutine besks(xnu,x,nin,bk)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
831
              real :: xnu,x
38581db0c   daniau   git-svn-id: https...
832
              integer :: nin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
833
              real, dimension(nin) :: bk
38581db0c   daniau   git-svn-id: https...
834
835
        end subroutine besks
        subroutine dbesks(xnu,x,nin,bk)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
836
              real(kind(1.d0)) :: xnu,x
38581db0c   daniau   git-svn-id: https...
837
              integer :: nin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
838
              real(kind(1.d0)), dimension(nin) :: bk
38581db0c   daniau   git-svn-id: https...
839
840
841
842
843
844
        end subroutine dbesks
  end interface bsks
  
  ! Exponentially scaled K nu + k
  interface bskes
        subroutine beskes(xnu,x,nin,bke)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
845
              real :: xnu,x
38581db0c   daniau   git-svn-id: https...
846
              integer :: nin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
847
              real,dimension(nin) :: bke
38581db0c   daniau   git-svn-id: https...
848
849
        end subroutine beskes
        subroutine dbskes(xnu,x,nin,bke)
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
850
              real(kind(1.d0)) :: xnu,x
38581db0c   daniau   git-svn-id: https...
851
              integer :: nin
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
852
              real(kind(1.d0)),dimension(nin) :: bke
38581db0c   daniau   git-svn-id: https...
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
        end subroutine dbskes
  end interface bskes
  
  !!!!!!!!!!!!!!!!!!
  ! MISSING CBJS
  ! MISSING CBYS
  ! MISSING CBIS
  !!!!!!!!!!!!!!!!!!
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Bessel functions and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Airy functions and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  !ai(x)
  interface ai
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
874
875
        real function ai(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
876
        end function ai
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
877
878
        real(kind(1.d0)) function dai(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
879
880
881
882
883
        end function dai
  end interface ai
  
  !bi(x)
  interface bi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
884
885
        real function bi(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
886
        end function bi
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
887
888
        real(kind(1.d0)) function dbi(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
889
890
891
892
893
        end function dbi
  end interface bi
  
  !ai'(x)
  interface aid
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
894
895
        real function aid(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
896
        end function aid
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
897
898
        real(kind(1.d0)) function daid(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
899
900
901
902
903
        end function daid
  end interface aid
  
  !bi'(x)
  interface bid
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
904
905
        real function bid(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
906
        end function bid
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
907
908
        real(kind(1.d0)) function dbid(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
909
910
911
912
913
        end function dbid
  end interface bid
  
  ! Exponentially scaled Ai
  interface aie
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
914
915
        real function aie(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
916
        end function aie
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
917
918
        real(kind(1.d0)) function daie(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
919
920
921
922
923
        end function daie
  end interface aie
  
  ! Exponentially scaled Bi
  interface bie
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
924
925
        real function bie(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
926
        end function bie
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
927
928
        real(kind(1.d0)) function dbie(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
929
930
931
932
933
        end function dbie
  end interface bie
  
  ! Exponentially scaled Ai'(x)
  interface aide
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
934
935
        real function aide(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
936
        end function aide
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
937
938
        real(kind(1.d0)) function daide(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
939
940
941
942
943
        end function daide
  end interface aide
  
  ! Exponentially scaled Bi'(x)
  interface bide
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
944
945
        real function bide(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
946
        end function bide
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
947
948
        real(kind(1.d0)) function dbide(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
        end function dbide
  end interface bide
  
  !!!!!!!!!!!!!!!!!!!!!!!
  ! MISSING CAI
  ! MISSING CBI
  ! MISSING CAID
  ! MISSING CBID
  !!!!!!!!!!!!!!!!!!!!!!!
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Airy functions and related
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! Miscellanous functions 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  ! Spence dilogarithm
  interface spenc
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
970
971
        real function spenc(x)
              real :: x
38581db0c   daniau   git-svn-id: https...
972
        end function spenc
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
973
974
        real(kind(1.d0)) function dspenc(x)
              real(kind(1.d0)) :: x
38581db0c   daniau   git-svn-id: https...
975
976
977
978
979
        end function dspenc
  end interface spenc
  
  ! Initialize a Chebyshev series
  interface inits
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
980
981
982
983
        integer function inits(os,nos,eta)
              real,dimension(nos) :: os
              integer :: nos
              real :: eta
38581db0c   daniau   git-svn-id: https...
984
        end function inits
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
985
986
987
988
        integer function initds(dos,nos,eta)
              real(kind(1.d0)),dimension(nos) :: dos
              integer :: nos
              real :: eta
38581db0c   daniau   git-svn-id: https...
989
990
991
992
993
        end function initds
  end interface inits
  
  ! Evaluate a Chebyshev series
  interface csevl
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
994
995
996
997
        real function csevl(x,cs,n)
              real :: x
              real,dimension(n) :: cs
              integer :: n
38581db0c   daniau   git-svn-id: https...
998
        end function csevl
f6bacaf83   cwaterkeyn   ChW 11/09: ANSI c...
999
1000
1001
1002
        real(kind(1.d0)) function dcsevl(x,a,n)
              real(kind(1.d0)) :: x
              real(kind(1.d0)), dimension(n) :: a
              integer :: n
38581db0c   daniau   git-svn-id: https...
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
        end function dcsevl
  end interface csevl
  
  
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  ! END Miscellanous functions 
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  
  
  
  
  
  end module fvn_fnlib