Subversion Repositories slepc-dev

Rev

Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 dsic.upv.es!jroman 1
/*
2
   Private data structure used by the ARPACK interface
3
*/
4
 
5
#if !defined(__ARPACKP_H)
6
#define __ARPACKP_H
7
 
8
#include "src/eps/epsimpl.h"
9
 
10
typedef struct {
11
  PetscTruth  *select;
12
  PetscScalar *workev;
13
  PetscScalar *workd;
14
  PetscScalar *workl;
15
  int         lworkl;
16
#if defined(PETSC_USE_COMPLEX)
17
  PetscReal  *rwork;
18
#endif
19
} EPS_ARPACK;
20
 
21
 
22
/*
23
   Definition of routines from the ARPACK package
24
*/
25
#include "petsc.h"
26
 
27
/*
28
   This include file on the Cray T3D/T3E defines the interface between
29
  Fortran and C representations of character strings.
30
*/
31
#if defined(PETSC_USES_CPTOFCD)
32
#include <fortran.h>
33
#endif
34
 
35
#if !defined(_petsc_mpi_uni)
36
 
37
#if !defined(PETSC_USE_COMPLEX)
38
 
39
/*
40
    These are real case
41
*/
42
 
43
#if defined(PETSC_USES_FORTRAN_SINGLE)
44
/*
45
   For these machines we must call the single precision Fortran version
46
*/
47
#define PDNAUPD  PSNAUPD
48
#define PDNEUPD  PSNEUPD
49
#define PDSAUPD  PSSAUPD
50
#define PDSEUPD  PSSEUPD
51
#endif
52
 
53
#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
54
#define ARnaupd_ pdnaupd_
55
#define ARneupd_ pdneupd_
56
#define ARsaupd_ pdsaupd_
57
#define ARseupd_ pdseupd_
58
#elif defined(PETSC_HAVE_FORTRAN_CAPS)
59
#define ARnaupd_ PDNAUPD
60
#define ARneupd_ PDNEUPD
61
#define ARsaupd_ PDSAUPD
62
#define ARseupd_ PDSEUPD
63
#else
64
#define ARnaupd_ pdnaupd
65
#define ARneupd_ pdneupd
66
#define ARsaupd_ pdsaupd
67
#define ARseupd_ pdseupd
68
#endif
69
 
70
#else
71
/*
72
   Complex
73
*/
74
#if defined(PETSC_USES_FORTRAN_SINGLE)
75
#define PZNAUPD  PCNAUPD
76
#define PZNEUPD  PCNEUPD
77
#endif
78
 
79
#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
80
#define ARnaupd_ pznaupd_
81
#define ARneupd_ pzneupd_
82
#elif defined(PETSC_HAVE_FORTRAN_CAPS)
83
#define ARnaupd_ PZNAUPD
84
#define ARneupd_ PZNEUPD
85
#else
86
#define ARnaupd_ pznaupd
87
#define ARneupd_ pzneupd
88
#endif
89
 
90
#endif
91
 
92
#else
93
/* _petsc_mpi_uni */
94
 
95
#if !defined(PETSC_USE_COMPLEX)
96
 
97
/*
98
    These are real case
99
*/
100
 
101
#if defined(PETSC_USES_FORTRAN_SINGLE)
102
/*
103
   For these machines we must call the single precision Fortran version
104
*/
105
#define DNAUPD  SNAUPD
106
#define DNEUPD  SNEUPD
107
#define DSAUPD  SSAUPD
108
#define DSEUPD  SSEUPD
109
#endif
110
 
111
#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
112
#define ARnaupd__ dnaupd
113
#define ARneupd__ dneupd
114
#define ARsaupd__ dsaupd
115
#define ARseupd__ dseupd
116
#elif defined(PETSC_HAVE_FORTRAN_CAPS)
117
#define ARnaupd__ DNAUPD
118
#define ARneupd__ DNEUPD
119
#define ARsaupd__ DSAUPD
120
#define ARseupd__ DSEUPD
121
#else
122
#define ARnaupd__ dnaupd
123
#define ARneupd__ dneupd
124
#define ARsaupd__ dsaupd
125
#define ARseupd__ dseupd
126
#endif
127
 
128
#else
129
/*
130
   Complex
131
*/
132
#if defined(PETSC_USES_FORTRAN_SINGLE)
133
#define ZNAUPD  CNAUPD
134
#define ZNEUPD  CNEUPD
135
#endif
136
 
137
#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
138
#define ARnaupd__ znaupd
139
#define ARneupd__ zneupd
140
#elif defined(PETSC_HAVE_FORTRAN_CAPS)
141
#define ARnaupd__ ZNAUPD
142
#define ARneupd__ ZNEUPD
143
#else
144
#define ARnaupd__ pznaupd
145
#define ARneupd__ pzneupd
146
#endif
147
 
148
#endif
149
 
150
#endif
151
 
152
EXTERN_C_BEGIN
153
 
154
#if !defined(_petsc_mpi_uni)
155
 
156
extern void   ARsaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
157
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
158
extern void   ARseupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
159
                       int*,PetscReal*,
160
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
161
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
162
 
163
#if !defined(PETSC_USE_COMPLEX)
164
extern void   ARnaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
165
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
166
extern void   ARneupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
167
                       PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
168
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
169
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
170
#else
171
extern void   ARnaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
172
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
173
                       int,int);
174
extern void   ARneupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
175
                       int*,PetscScalar*,PetscScalar*,
176
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
177
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
178
                       int,int,int);
179
#endif
180
 
181
#else
182
/* _petsc_mpi_uni */
183
 
184
extern void   ARsaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
185
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
186
#define ARsaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) ARsaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)
187
extern void   ARseupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
188
                       int*,PetscReal*,
189
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
190
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
191
#define ARseupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) ARseupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)
192
 
193
#if !defined(PETSC_USE_COMPLEX)
194
extern void   ARnaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
195
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
196
#define ARnaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) ARnaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s)
197
extern void   ARneupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
198
                       PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
199
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
200
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
201
#define ARneupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2,a3) ARneupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2,a3)
202
#else
203
extern void   ARnaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
204
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
205
                       int,int);
206
#define ARnaupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) ARnaupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t)
207
extern void   ARneupd__(PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
208
                       int*,PetscScalar*,PetscScalar*,
209
                       char*,int*,char*,int*,PetscReal*,PetscScalar*,
210
                       int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
211
                       int,int,int);
212
#define ARneupd_(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2) ARneupd__(b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a1,a2)
213
#endif
214
 
215
#endif
216
 
217
EXTERN_C_END
218
 
219
#endif
220