Actual source code: arpackp.h
1: /*
2: Private data structure used by the ARPACK interface
3: */
8: #include src/eps/epsimpl.h
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;
22: /*
23: Definition of routines from the ARPACK package
24: */
26: /*
27: This include file on the Cray T3D/T3E defines the interface between
28: Fortran and C representations of character strings.
29: */
30: #if defined(PETSC_USES_CPTOFCD)
31: #include <fortran.h>
32: #endif
34: #if !defined(_petsc_mpi_uni)
36: #if !defined(PETSC_USE_COMPLEX)
38: /*
39: These are real case
40: */
42: #if defined(PETSC_USES_FORTRAN_SINGLE)
43: /*
44: For these machines we must call the single precision Fortran version
45: */
46: #define PDNAUPD PSNAUPD
47: #define PDNEUPD PSNEUPD
48: #define PDSAUPD PSSAUPD
49: #define PDSEUPD PSSEUPD
50: #endif
52: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
53: #define ARnaupd_ pdnaupd_
54: #define ARneupd_ pdneupd_
55: #define ARsaupd_ pdsaupd_
56: #define ARseupd_ pdseupd_
57: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
58: #define ARnaupd_ PDNAUPD
59: #define ARneupd_ PDNEUPD
60: #define ARsaupd_ PDSAUPD
61: #define ARseupd_ PDSEUPD
62: #else
63: #define ARnaupd_ pdnaupd
64: #define ARneupd_ pdneupd
65: #define ARsaupd_ pdsaupd
66: #define ARseupd_ pdseupd
67: #endif
69: #else
70: /*
71: Complex
72: */
73: #if defined(PETSC_USES_FORTRAN_SINGLE)
74: #define PZNAUPD PCNAUPD
75: #define PZNEUPD PCNEUPD
76: #endif
78: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C)
79: #define ARnaupd_ pznaupd_
80: #define ARneupd_ pzneupd_
81: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
82: #define ARnaupd_ PZNAUPD
83: #define ARneupd_ PZNEUPD
84: #else
85: #define ARnaupd_ pznaupd
86: #define ARneupd_ pzneupd
87: #endif
89: #endif
91: #else
92: /* _petsc_mpi_uni */
94: #if !defined(PETSC_USE_COMPLEX)
96: /*
97: These are real case
98: */
100: #if defined(PETSC_USES_FORTRAN_SINGLE)
101: /*
102: For these machines we must call the single precision Fortran version
103: */
104: #define DNAUPD SNAUPD
105: #define DNEUPD SNEUPD
106: #define DSAUPD SSAUPD
107: #define DSEUPD SSEUPD
108: #endif
110: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
111: #define ARnaupd__ dnaupd
112: #define ARneupd__ dneupd
113: #define ARsaupd__ dsaupd
114: #define ARseupd__ dseupd
115: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
116: #define ARnaupd__ DNAUPD
117: #define ARneupd__ DNEUPD
118: #define ARsaupd__ DSAUPD
119: #define ARseupd__ DSEUPD
120: #else
121: #define ARnaupd__ dnaupd
122: #define ARneupd__ dneupd
123: #define ARsaupd__ dsaupd
124: #define ARseupd__ dseupd
125: #endif
127: #else
128: /*
129: Complex
130: */
131: #if defined(PETSC_USES_FORTRAN_SINGLE)
132: #define ZNAUPD CNAUPD
133: #define ZNEUPD CNEUPD
134: #endif
136: #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
137: #define ARnaupd__ znaupd
138: #define ARneupd__ zneupd
139: #elif defined(PETSC_HAVE_FORTRAN_CAPS)
140: #define ARnaupd__ ZNAUPD
141: #define ARneupd__ ZNEUPD
142: #else
143: #define ARnaupd__ znaupd
144: #define ARneupd__ zneupd
145: #endif
147: #endif
149: #endif
151: EXTERN_C_BEGIN
153: #if !defined(_petsc_mpi_uni)
155: extern void ARsaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
156: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
157: extern void ARseupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
158: int*,PetscReal*,
159: char*,int*,char*,int*,PetscReal*,PetscScalar*,
160: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
162: #if !defined(PETSC_USE_COMPLEX)
163: extern void ARnaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
164: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
165: extern void ARneupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
166: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
167: char*,int*,char*,int*,PetscReal*,PetscScalar*,
168: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
169: #else
170: extern void ARnaupd_(MPI_Comm*,int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
171: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
172: int,int);
173: extern void ARneupd_(MPI_Comm*,PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
174: int*,PetscScalar*,PetscScalar*,
175: char*,int*,char*,int*,PetscReal*,PetscScalar*,
176: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
177: int,int,int);
178: #endif
180: #else
181: /* _petsc_mpi_uni */
183: extern void ARsaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
184: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
185: #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)
186: extern void ARseupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
187: int*,PetscReal*,
188: char*,int*,char*,int*,PetscReal*,PetscScalar*,
189: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
190: #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: #if !defined(PETSC_USE_COMPLEX)
193: extern void ARnaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
194: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int);
195: #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)
196: extern void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscReal*,PetscReal*,
197: PetscReal*,int*,PetscReal*,PetscReal*,PetscReal*,
198: char*,int*,char*,int*,PetscReal*,PetscScalar*,
199: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,int*,int,int,int);
200: #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)
201: #else
202: extern void ARnaupd__(int*,char*,int*,char*,int*,PetscReal*,PetscScalar*,
203: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
204: int,int);
205: #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)
206: extern void ARneupd__(PetscTruth*,char*,PetscTruth*,PetscScalar*,PetscScalar*,
207: int*,PetscScalar*,PetscScalar*,
208: char*,int*,char*,int*,PetscReal*,PetscScalar*,
209: int*,PetscScalar*,int*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscReal*,int*,
210: int,int,int);
211: #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)
212: #endif
214: #endif
216: EXTERN_C_END
218: #endif