CppNoddy  0.92
Loading...
Searching...
No Matches
FortranLAPACK.h
Go to the documentation of this file.
1/// \file FortranLAPACK.h Some interface definitions for calling external fortran
2/// routines in LAPACK
3
4#ifndef FORTRANLAPACK_H
5#define FORTRANLAPACK_H
6
7#ifdef LAPACK
8
9#include <cfortran.h>
10
11/// The LAPACK LU solver for a DOUBLE DENSE matrix
12/// Fortran interface : SUBROUTINE DGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO )
13PROTOCCALLSFSUB8(DGESV, dgesv, INT, INT, DOUBLEV, INT, INTV, DOUBLEV, INT, PINT)
14#define LAPACK_DGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO) CCALLSFSUB8(DGESV,dgesv,INT,INT,DOUBLEV,INT,INTV,DOUBLEV,INT,PINT,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
15
16/// The LAPACK LU solver for a COMPLEX DENSE matrix
17/// Fortran interface : SUBROUTINE ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO )
18PROTOCCALLSFSUB8(ZGESV, zgesv, INT, INT, DOUBLEV, INT, INTV, DOUBLEV, INT, PINT)
19#define LAPACK_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO) CCALLSFSUB8(ZGESV,zgesv,INT,INT,DOUBLEV,INT,INTV,DOUBLEV,INT,PINT,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
20
21/// The LAPACK LU solver for a DOUBLE BANDED matrix
22/// Fortran interface : SUBROUTINE DGBSV(N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO)
23PROTOCCALLSFSUB10(DGBSV, dgbsv, INT, INT, INT, INT, DOUBLEV, INT, INTV, DOUBLEV, INT, PINT)
24#define LAPACK_DGBSV(N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO) CCALLSFSUB10(DGBSV,dgbsv,INT,INT,INT,INT,DOUBLEV,INT,INTV,DOUBLEV,INT,PINT,N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO)
25
26/// The LAPACK solve for an already LU decomposed DOUBLE BANDED matrix problem
27/// Fortran interface : SUBROUTINE DGBTRS(TRANS,N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO )
28PROTOCCALLSFSUB11(DGBTRS, dgbtrs, STRING, INT, INT, INT, INT, DOUBLEV, INT, INTV, DOUBLEV, INT, PINT)
29#define LAPACK_DGBTRS(TRANS,N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO) CCALLSFSUB11(DGBTRS,dgbtrs,STRING,INT,INT,INT,INT,DOUBLEV,INT,INTV,DOUBLEV,INT,PINT,TRANS,N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO)
30
31/// The LAPACK LU solver for a COMPLEX BANDED matrix
32/// Fortran interface : SUBROUTINE ZGBSV(N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO)
33PROTOCCALLSFSUB10(ZGBSV, zgbsv, INT, INT, INT, INT, DOUBLEV, INT, INTV, DOUBLEV, INT, PINT)
34#define LAPACK_ZGBSV(N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO) CCALLSFSUB10(ZGBSV,zgbsv,INT,INT,INT,INT,DOUBLEV,INT,INTV,DOUBLEV,INT,PINT,N,KL,KU,NRHS,AB,LDAB,IPIV,B,LDB,INFO)
35
36/// The LAPACK DOUBLE GENERALISED eigenvalue solver
37/// Fortran interface : SUBROUTINE DGGEV(JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHAR,ALPHAI,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,INFO)
38PROTOCCALLSFSUB17(DGGEV, dggev, STRING, STRING, INT, DOUBLEV, INT, DOUBLEV, INT, DOUBLEV, DOUBLEV, DOUBLEV, DOUBLEV, INT, DOUBLEV, INT, DOUBLEV, INT, PINT)
39#define LAPACK_DGGEV(JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHAR,ALPHAI,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,INFO) CCALLSFSUB17(DGGEV,dggev,STRING,STRING,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,PINT,JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHAR,ALPHAI,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,INFO)
40
41/// The LAPACK COMPLEX GENERALISED eigenvalue solver
42/// Fortran interface : SUBROUTINE ZGGEV(JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHA,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,RWORK,INFO)
43PROTOCCALLSFSUB17(ZGGEV, zggev, STRING, STRING, INT, DOUBLEV, INT, DOUBLEV, INT, DOUBLEV, DOUBLEV, DOUBLEV, INT, DOUBLEV, INT, DOUBLEV, INT, DOUBLEV, PINT)
44/// jobvl jobvr n a lda b ldb alpha beta vl ldvl vr ldvr work lwork rwork info
45#define LAPACK_ZGGEV(JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHA,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,RWORK,INFO) CCALLSFSUB17(ZGGEV,zggev,STRING,STRING,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,DOUBLEV,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,PINT,JOBVL,JOBVR,N,A,LDA,B,LDB,ALPHA,BETA,VL,LDVL,VR,LDVR,WORK,LWORK,RWORK,INFO)
46
47#endif //LAPACK
48
49#endif //FORTRANLAPACK_H
#define PROTOCCALLSFSUB11(UN, LN, T1, T2, T3, T4, T5, T6, T7, T8, T9, TA, TB)
Definition: cfortran.h:1069
#define PROTOCCALLSFSUB17(UN, LN, T1, T2, T3, T4, T5, T6, T7, T8, T9, TA, TB, TC, TD, TE, TF, TG, TH)
Definition: cfortran.h:1081
#define PROTOCCALLSFSUB10(UN, LN, T1, T2, T3, T4, T5, T6, T7, T8, T9, TA)
Definition: cfortran.h:1067
#define PROTOCCALLSFSUB8(UN, LN, T1, T2, T3, T4, T5, T6, T7, T8)
Definition: cfortran.h:1063

© 2012

R.E. Hewitt