19 #ifndef FORTRAN_ROUTINES
20 #define FORTRAN_ROUTINES
22 #include "Epetra_BLAS_wrappers.h"
23 #include "Epetra_LAPACK_wrappers.h"
37 void PREFIX F77_FUNC(dswap,DSWAP)(
int *n,
double x[],
int* incx,
double y[],
int* incy);
40 void PREFIX F77_FUNC(dgeqrf,DGEQRF)(
int *M,
int *N,
double *A,
int *lda,
double *tau,
41 double *work,
int *lwork,
int *info);
42 void PREFIX F77_FUNC(dormqr,DORMQR)(Epetra_fcd, Epetra_fcd,
int *M,
int *N,
int *K,
double *A,
43 int *lda,
double *tau,
double *C,
int *ldc,
double *work,
int *lwork,
45 void PREFIX F77_FUNC(dsteqr,DSTEQR)(Epetra_fcd,
int *N,
double *D,
double *E,
double *Z,
46 int *ldz,
double *work,
int *info);
48 #if defined (INTEL_CXML)
49 int PREFIX F77_FUNC(ilaenv,ILAENV)(
int *ispec,
char *NAME,
unsigned int len_name,
char *OPTS,
50 unsigned int len_opts,
int *N1,
int *N2,
int *N3,
int *N4);
52 int PREFIX F77_FUNC(ilaenv,ILAENV)(
int *ispec,
char *NAME,
char *OPTS,
int *N1,
int *N2,
53 int *N3,
int *N4,
int len_name,
int len_opts);
57 #if defined (INTEL_CXML)
58 void PREFIX F77_FUNC(mydsaupd,MYDSAUPD)(
int *,
char *,
unsigned int,
int *,
char *,
59 unsigned int,
int *,
double *,
double *,
int *,
double *,
int *,
int *,
60 int *,
double *,
double *,
int *,
int *,
int *);
61 void PREFIX F77_FUNC(dseupd,DSEUPD)(LOGICAL *rvec,
char *HOWMNY,
unsigned int len_howny,
62 LOGICAL *select,
double *D,
double *Z,
int *ldz,
double *sigma,
char *BMAT,
63 unsigned int len_bmat,
int *N,
char *which,
unsigned int len_which,
64 int *nev,
double *tol,
double *resid,
int *ncv,
double *V,
int *ldv,
65 int *iparam,
int *ipntr,
double *workd,
double *workl,
int *lworkl,
68 void PREFIX F77_FUNC(mydsaupd,MYDSAUPD)(
int *,
char *,
int *,
char *,
int *,
69 double *,
double *,
int *,
double *,
int *,
int *,
int *,
double *,
70 double *,
int *,
int *,
int *, int, int);
71 void PREFIX F77_FUNC(dseupd,DSEUPD)(LOGICAL *rvec,
char *HOWMNY, LOGICAL *select,
double *D,
72 double *Z,
int *ldz,
double *sigma,
char *BMAT,
int *N,
char *which,
73 int *nev,
double *tol,
double *resid,
int *ncv,
double *V,
int *ldv,
74 int *iparam,
int *ipntr,
double *workd,
double *workl,
int *lworkl,
75 int *info,
int len_howmny,
int len_bmat,
int len_which);
81 #if defined (INTEL_CXML)
82 void PREFIX F77_FUNC(mypdsaupd,MYPDSAUPD)(MPI_Comm *,
int *,
char *,
unsigned int,
int *,
83 char *,
unsigned int,
int *,
double *,
double *,
int *,
double *,
84 int *,
int *,
int *,
double *,
double *,
int *,
int *,
int *);
85 void PREFIX F77_FUNC(pdseupd,PDSEUPD)(MPI_Comm *MyComm, LOGICAL *rvec,
char *HOWMNY,
86 unsigned int len_howmny, LOGICAL *select,
double *D,
double *Z,
87 int *ldz,
double *sigma,
char *BMAT,
unsigned int len_bmat,
int *N,
88 char *which,
unsigned int len_which,
int *nev,
double *tol,
double *resid,
89 int *ncv,
double *V,
int *ldv,
int *iparam,
int *ipntr,
double *workd,
90 double *workl,
int *lworkl,
int *info);
92 void PREFIX F77_FUNC(mypdsaupd,MYPDSAUPD)(MPI_Comm *,
int *,
char *,
int *,
char *,
int *,
93 double *,
double *,
int *,
double *,
int *,
int *,
int *,
double *,
94 double *,
int *,
int *,
int *, int, int);
95 void PREFIX F77_FUNC(pdseupd,PDSEUPD)(MPI_Comm *MyComm, LOGICAL *rvec,
char *HOWMNY,
96 LOGICAL *select,
double *D,
double *Z,
int *ldz,
double *sigma,
97 char *BMAT,
int *N,
char *which,
int *nev,
double *tol,
double *resid,
98 int *ncv,
double *V,
int *ldv,
int *iparam,
int *ipntr,
double *workd,
99 double *workl,
int *lworkl,
int *info,
int len_howmny,
100 int len_bmat,
int len_which);
109 class FortranRoutines {
114 void SCAL_INCX(
int N,
double ALPHA,
double *X,
int incX)
const;
115 void SWAP(
int N,
double *X,
int incx,
double *Y,
int incy)
const;
118 void GEQRF(
int M,
int N,
double *A,
int lda,
double *tau,
double *work,
int lwork,
120 void ORMQR(
char SIDE,
char TRANS,
int M,
int N,
int K,
double *A,
int lda,
double *tau,
121 double *C,
int ldc,
double *work,
int lwork,
int *info)
const;
122 void SPEV(
char JOBZ,
char UPLO,
int N,
double *A,
double *W,
double *Z,
int ldz,
123 double *work,
int *info)
const;
124 void STEQR(
char COMPZ,
int N,
double *D,
double *E,
double *Z,
int ldz,
double *work,
126 void SYEV(
char JOBZ,
char UPLO,
int N,
double *A,
int lda,
double *W,
double *work,
127 int lwork,
int *info)
const;
128 void SYGV(
int itype,
char JOBZ,
char UPLO,
int N,
double *A,
int lda,
double *B,
int ldb,
129 double *W,
double *work,
int lwork,
int *info)
const;
131 int LAENV(
int ispec,
char *NAME,
char *OPTS,
int N1,
int N2,
int N3,
int N4,
132 int len_name,
int len_opts)
const;
135 void SAUPD(
int *ido,
char BMAT,
int N,
char *which,
int nev,
double tol,
double *resid,
136 int ncv,
double *V,
int ldv,
int *iparam,
int *ipntr,
double *workd,
double *workl,
137 int lworkl,
int *info,
int verbose)
const;
138 void SEUPD(LOGICAL rvec,
char HOWMNY, LOGICAL *select,
double *D,
double *Z,
int ldz,
139 double sigma,
char BMAT,
int N,
char *which,
int nev,
double tol,
double *resid,
140 int ncv,
double *V,
int ldv,
int *iparam,
int *ipntr,
double *workd,
141 double *workl,
int lworkl,
int *info)
const;
145 void PSAUPD(MPI_Comm MyComm,
int *ido,
char BMAT,
int N,
char *which,
int nev,
double tol,
146 double *resid,
int ncv,
double *V,
int ldv,
int *iparam,
int *ipntr,
double *workd,
147 double *workl,
int lworkl,
int *info,
int verbose)
const;
148 void PSEUPD(MPI_Comm MyComm, LOGICAL rvec,
char HOWMNY, LOGICAL *select,
double *D,
double *Z,
149 int ldz,
double sigma,
char BMAT,
int N,
char *which,
int nev,
double tol,
150 double *resid,
int ncv,
double *V,
int ldv,
int *iparam,
int *ipntr,
double *workd,
151 double *workl,
int lworkl,
int *info)
const;