00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef QC_Fortran_H_
00021 #define QC_Fortran_H_
00022
00023
00024 #include "QCCommon.hpp"
00025
00026
00032 #ifdef F77_DUMMY_MAIN
00033 # ifdef __cplusplus
00034 extern "C"
00035 # endif
00036 int F77_DUMMY_MAIN() { return 1; }
00037 #endif
00038
00039
00043 #define QCFortran(name) F77_FUNC(name,name)
00044
00045
00046
00047 #ifdef f2c_i2
00048
00049 typedef short ftnlen;
00050 #else
00051 typedef long ftnlen;
00052 #endif
00053
00054
00055 BEGIN_C_DECLARATION
00056
00057
00058
00059
00060
00068 void QCFortran(overlp)
00069 (
00070
00071 const int& atomicNbZB,
00072 const int& nbOAOfB,
00073 const int& quantumNumberNB,
00074 const QCFloat& dzetaSB,
00075 const QCFloat& dzetaPB,
00076 const QCFloat& dzetaDB,
00077 const QCFloat& xCoordB,
00078 const QCFloat& yCoordB,
00079 const QCFloat& zCoordB,
00080 const QCFloat* ExpHalfVectorB,
00081
00082
00083 const int& atomicNbZA,
00084 const int& nbOAOfA,
00085 const int& quantumNumberNA,
00086 const QCFloat& dzetaSA,
00087 const QCFloat& dzetaPA,
00088 const QCFloat& dzetaDA,
00089 const QCFloat& xCoordA,
00090 const QCFloat& yCoordA,
00091 const QCFloat& zCoordA,
00092 const QCFloat* ExpHalfVectorA,
00093
00095 const QCFloat& rAB,
00096
00098 QCFloat* overlapSABElems
00099 );
00100
00105 void QCFortran(fillexhalf)
00106 (
00107 const int*,
00108 const QCFloat*,
00109 QCFloat*
00110 );
00111
00119 void QCFortran(repul)
00120 (
00122 const int& compressedFormatInt,
00123
00124
00125 const int& atomicNbZB,
00126 const int& nbCalculatedOAOfB,
00127 const QCFloat& ro0B,
00128 const QCFloat& ro1B,
00129 const QCFloat& ro2B,
00130 const QCFloat& D1B,
00131 const QCFloat& D2B,
00132 const QCFloat& xCoordB,
00133 const QCFloat& yCoordB,
00134 const QCFloat& zCoordB,
00135
00136
00137 const int& atomicNbZ,
00138 const int& nbCalculatedOAOfA,
00139 const QCFloat& ro0A,
00140 const QCFloat& ro1A,
00141 const QCFloat& ro2A,
00142 const QCFloat& D1A,
00143 const QCFloat& D2A,
00144 const QCFloat& xCoordA,
00145 const QCFloat& yCoordA,
00146 const QCFloat& zCoordA,
00147
00149 const QCFloat& rAB,
00150
00152 QCFloat* repElems
00153 );
00154
00155
00156
00157
00158
00159
00160
00166 void QCFortran(dspevd)
00167 (
00168
00169 const char *,
00170
00171
00172 const char *,
00173
00174
00175 const int *,
00176
00177
00178 const QCFloat*,
00179
00180
00181 QCFloat*,
00182
00183
00184 QCFloat*,
00185
00186
00187 const int*,
00188
00189
00190 QCFloat*,
00191
00192
00193 const int*,
00194
00195
00196 int*,
00197
00198
00199 const int*,
00200
00201
00202 int*
00203 );
00204
00208 int QCFortran(ilaenv)
00209 (
00210
00211 const int&,
00212
00213
00214 const char*,
00215
00216
00217 const char*,
00218
00219
00220 const int&,
00221 const int&,
00222 const int&,
00223 const int&,
00224 ftnlen,
00225 ftnlen);
00226
00230 void QCFortran(setulb)
00231 (
00232
00233 const int& n,
00234
00235
00236
00237 const int& m,
00238
00239
00240 QCFloat* x,
00241
00242
00243 const QCFloat* l,
00244
00245
00246 const QCFloat* u,
00247
00248
00249 const int* nbd,
00250
00251
00252 const QCFloat& f,
00253 const QCFloat* g,
00254
00255
00256 const QCFloat& factr,
00257 const QCFloat& pgtol,
00258
00259
00260 QCFloat* wa,
00261 int* iwa,
00262
00263
00264
00265 char* task,
00266
00267
00268 const int* iprint,
00269
00270
00271 char* csave,
00272 int* lsave,
00273 int* isave,
00274 QCFloat* dsave
00275 );
00276
00280 void QCFortran(dmng)
00281 (
00282
00283 const int& n,
00284
00285
00286 const QCFloat* scaleVector,
00287
00288
00289 QCFloat* x,
00290
00291
00292 const QCFloat& f,
00293 const QCFloat* g,
00294
00295
00296 int* workingArray1,
00297 const int& workingArray1Size,
00298 const int& workingArray2Sise,
00299 QCFloat* workingArray2,
00300 int* workingArray3,
00301
00302
00303
00304 char* task
00305 );
00306
00311 void QCFortran(cgfam)
00312 (
00313
00314 const int* n,
00315
00316
00317 QCFloat* x ,
00318
00319
00320 QCFloat *f,
00321 const QCFloat* g,
00322
00323 const QCFloat* d,
00324
00325 const QCFloat* gold,
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338 int * iprint,
00339
00340 const QCFloat *eps,
00341
00342 const QCFloat* w,
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352 int * iflag,
00353
00354 int * irest,
00355
00356
00357
00358 const int * method,
00359 bool * finish
00360 );
00361
00362
00363 END_C_DECLARATION
00364
00365
00366
00367 #endif // QC_Fortran_H_