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
|
c lapack_wrapper.f -- wrapper routines for LAPACK [sd]gecon()
c $Header$
c
c These subroutines are wrappers around the LAPACK [sd]gecon() subroutines.
c These subroutines take only integer/real/double precision arguments,
c avoiding problems with C/C++ --> Fortran passing of the character string
c arguments used by [sd]gecon().
c
c Arguments:
c norm_int = (in) 0 ==> infinity-norm
c 1 ==> 1-norm
c
c
c Note that the Compaq f90 compiler complains about empty (or all-comment)
c files, so we still have to define an empty subroutine even if it is never
c called. :( Oh well, memory is cheap...
c
#include "config.h"
subroutine sgecon_wrapper(norm_int,
$ N, A, LDA, anorm, rcond,
$ WORK, IWORK, info)
integer norm_int
integer N, LDA
real A(LDA,N)
real anorm, rcond
real WORK(*)
integer iwork(*)
integer info
#ifdef HAVE_DENSE_JACOBIAN__LAPACK
#ifdef FP_IS_FLOAT
if (norm_int .eq. 0) then
call sgecon('I', N,A,LDA, anorm,rcond, WORK,IWORK, info)
else if (norm_int .eq. 1) then
call sgecon('1', N,A,LDA, anorm,rcond, WORK,IWORK, info)
else
info = -1;
end if
#endif /* FP_IS_FLOAT */
#endif /* HAVE_DENSE_JACOBIAN__LAPACK */
return
end
subroutine dgecon_wrapper(norm_int,
$ N, A, LDA, anorm, rcond,
$ WORK, IWORK, info)
integer norm_int
integer N, LDA
double precision A(LDA,N)
double precision anorm, rcond
double precision WORK(*)
integer iwork(*)
integer info
#ifdef HAVE_DENSE_JACOBIAN__LAPACK
#ifdef FP_IS_DOUBLE
if (norm_int .eq. 0) then
call dgecon('I', N,A,LDA, anorm,rcond, WORK,IWORK, info)
else if (norm_int .eq. 1) then
call dgecon('1', N,A,LDA, anorm,rcond, WORK,IWORK, info)
else
info = -1;
end if
#endif /* FP_IS_DOUBLE */
#endif /* HAVE_DENSE_JACOBIAN__LAPACK */
return
end
|