|
CP2K 2.4 (Revision 12889)
|
00001 ! ***************************************************************************** 00002 MODULE f77_blas_netlib 00003 ! 00004 ! Provides interfaces for BLAS as distributed 00005 ! (http://www.netlib.org/blas/) Jan 2006. 00006 ! 00007 ! follows the same naming convention as the quick ref 00008 ! http://www.netlib.org/lapack/lug/node145.html 00009 ! for the arguments, and similar to the f77_blas_generic module 00010 ! 00011 ! Note: All procedures have intents specified for their arguments. 00012 ! These are the de facto intents of these arguments, as found 00013 ! in the netlib source/comments. Nevertheless, since the netlib 00014 ! blas implementation is in Fortran77, INTENTs are 00015 ! not specified. Some compilers might produce an error/warning (if strict 00016 ! standard conformance checking is enabled). In that case, one option 00017 ! is to edit the files and remove all INTENT declarations. E.g. : 00018 ! sed 's/\(, INTENT(INOUT)\)\|\(, INTENT(OUT)\)\|\(, INTENT(IN)\)//' f77_blas_netlib.f90 > new.f90 00019 ! 00020 ! this file is the public domain. Joost VandeVondele. 00021 ! 00022 00023 PRIVATE 00024 00025 PUBLIC :: SROTG, DROTG, CROTG, ZROTG, SROTMG, DROTMG, SROT, DROT, CSROT, ZDROT, SROTM, DROTM, & 00026 SSWAP, DSWAP, CSWAP, ZSWAP, SSCAL, DSCAL, CSCAL, ZSCAL, CSSCAL, ZDSCAL, & 00027 SCOPY, DCOPY, CCOPY, ZCOPY, SAXPY, DAXPY, CAXPY, ZAXPY, SDOT, DDOT, & 00028 CDOTU, ZDOTU, CDOTC, ZDOTC, SNRM2, DNRM2, SCNRM2, DZNRM2, & 00029 SASUM, SCASUM, DASUM, DZASUM, ISAMAX, IDAMAX, ICAMAX, IZAMAX 00030 00031 PUBLIC :: SGEMV, DGEMV, CGEMV, ZGEMV, SGBMV, DGBMV, CGBMV, ZGBMV, & 00032 CHEMV, ZHEMV, CHBMV, ZHBMV, CHPMV, ZHPMV, SSYMV, DSYMV, & 00033 SSBMV, DSBMV, SSPMV, DSPMV, STRMV, DTRMV, CTRMV, ZTRMV, & 00034 STBMV, DTBMV, CTBMV, ZTBMV, STPMV, DTPMV, CTPMV, ZTPMV, & 00035 STRSV, DTRSV, CTRSV, ZTRSV, STBSV, DTBSV, CTBSV, ZTBSV, & 00036 STPSV, DTPSV, CTPSV, ZTPSV, SGER, DGER, CGERU, ZGERU, & 00037 CGERC, ZGERC, CHER, ZHER, CHPR, ZHPR, CHER2, ZHER2, & 00038 CHPR2, ZHPR2, SSYR, DSYR, SSPR, DSPR, SSYR2, DSYR2, & 00039 SSPR2, DSPR2 00040 00041 PUBLIC :: SGEMM, DGEMM, CGEMM, ZGEMM, SSYMM, DSYMM, CSYMM, ZSYMM, CHEMM, ZHEMM, & 00042 SSYRK, DSYRK, CSYRK, ZSYRK, CHERK, ZHERK, SSYR2K, DSYR2K, CSYR2K, ZSYR2K, CHER2K, ZHER2K, & 00043 STRMM, DTRMM, CTRMM, ZTRMM, STRSM, DTRSM, CTRSM, ZTRSM 00044 00045 PUBLIC :: SDSDOT, DSDOT, DCABS1 00046 00047 ! 00048 ! Level 1 BLAS 00049 ! 00050 INTERFACE 00051 ! ***************************************************************************** 00052 SUBROUTINE SROTG(A,B,C,S) 00053 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00054 SP = KIND(0.0) 00055 REAL(SP), INTENT(OUT) :: S, C 00056 REAL(SP), INTENT(INOUT) :: B, A 00057 00058 END SUBROUTINE SROTG 00059 END INTERFACE 00060 INTERFACE 00061 ! ***************************************************************************** 00062 SUBROUTINE DROTG(A,B,C,S) 00063 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00064 SP = KIND(0.0) 00065 REAL(DP), INTENT(OUT) :: S, C 00066 REAL(DP), INTENT(INOUT) :: B, A 00067 00068 END SUBROUTINE DROTG 00069 END INTERFACE 00070 INTERFACE 00071 ! ***************************************************************************** 00072 SUBROUTINE CROTG(A,B,C,S) 00073 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00074 SP = KIND(0.0) 00075 COMPLEX(SP), INTENT(OUT) :: S 00076 REAL(SP), INTENT(OUT) :: C 00077 COMPLEX(SP), INTENT(INOUT) :: B, A 00078 00079 END SUBROUTINE CROTG 00080 END INTERFACE 00081 INTERFACE 00082 ! ***************************************************************************** 00083 SUBROUTINE ZROTG(A,B,C,S) 00084 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00085 SP = KIND(0.0) 00086 COMPLEX(DP), INTENT(OUT) :: S 00087 REAL(DP), INTENT(OUT) :: C 00088 COMPLEX(DP), INTENT(INOUT) :: B, A 00089 00090 END SUBROUTINE ZROTG 00091 END INTERFACE 00092 INTERFACE 00093 ! ***************************************************************************** 00094 SUBROUTINE SROTMG(D1,D2,A,B,PARAM) 00095 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00096 SP = KIND(0.0) 00097 REAL(SP), INTENT(OUT) :: PARAM(5) 00098 REAL(SP), INTENT(IN) :: B 00099 REAL(SP), INTENT(INOUT) :: A, D2, D1 00100 00101 END SUBROUTINE SROTMG 00102 END INTERFACE 00103 INTERFACE 00104 ! ***************************************************************************** 00105 SUBROUTINE DROTMG(D1,D2,A,B,PARAM) 00106 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00107 SP = KIND(0.0) 00108 REAL(DP), INTENT(OUT) :: PARAM(5) 00109 REAL(DP), INTENT(IN) :: B 00110 REAL(DP), INTENT(INOUT) :: A, D2, D1 00111 00112 END SUBROUTINE DROTMG 00113 END INTERFACE 00114 INTERFACE 00115 ! ***************************************************************************** 00116 SUBROUTINE SROT(N,X,INCX,Y,INCY,C,S) 00117 INTEGER, INTENT(IN) :: N 00118 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00119 SP = KIND(0.0) 00120 REAL(SP), INTENT(IN) :: S, C 00121 INTEGER, INTENT(IN) :: INCY 00122 REAL(SP), INTENT(INOUT) :: Y(*) 00123 INTEGER, INTENT(IN) :: INCX 00124 REAL(SP), INTENT(INOUT) :: X(*) 00125 00126 END SUBROUTINE SROT 00127 END INTERFACE 00128 INTERFACE 00129 ! ***************************************************************************** 00130 SUBROUTINE DROT(N,X,INCX,Y,INCY,C,S) 00131 INTEGER, INTENT(IN) :: N 00132 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00133 SP = KIND(0.0) 00134 REAL(DP), INTENT(IN) :: S, C 00135 INTEGER, INTENT(IN) :: INCY 00136 REAL(DP), INTENT(INOUT) :: Y(*) 00137 INTEGER, INTENT(IN) :: INCX 00138 REAL(DP), INTENT(INOUT) :: X(*) 00139 00140 END SUBROUTINE DROT 00141 END INTERFACE 00142 INTERFACE 00143 ! ***************************************************************************** 00144 SUBROUTINE CSROT(N,X,INCX,Y,INCY,C,S) 00145 INTEGER, INTENT(IN) :: N 00146 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00147 SP = KIND(0.0) 00148 REAL(SP), INTENT(IN) :: S, C 00149 INTEGER, INTENT(IN) :: INCY 00150 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00151 INTEGER, INTENT(IN) :: INCX 00152 COMPLEX(SP), INTENT(INOUT) :: X(*) 00153 00154 END SUBROUTINE CSROT 00155 END INTERFACE 00156 INTERFACE 00157 ! ***************************************************************************** 00158 SUBROUTINE ZDROT(N,X,INCX,Y,INCY,C,S) 00159 INTEGER, INTENT(IN) :: N 00160 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00161 SP = KIND(0.0) 00162 REAL(DP), INTENT(IN) :: S, C 00163 INTEGER, INTENT(IN) :: INCY 00164 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00165 INTEGER, INTENT(IN) :: INCX 00166 COMPLEX(DP), INTENT(INOUT) :: X(*) 00167 00168 END SUBROUTINE ZDROT 00169 END INTERFACE 00170 INTERFACE 00171 ! ***************************************************************************** 00172 SUBROUTINE SROTM(N,X,INCX,Y,INCY,PARAM) 00173 INTEGER, INTENT(IN) :: N 00174 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00175 SP = KIND(0.0) 00176 REAL(SP), INTENT(IN) :: PARAM(5) 00177 INTEGER, INTENT(IN) :: INCY 00178 REAL(SP), INTENT(INOUT) :: Y(*) 00179 INTEGER, INTENT(IN) :: INCX 00180 REAL(SP), INTENT(INOUT) :: X(*) 00181 00182 END SUBROUTINE SROTM 00183 END INTERFACE 00184 INTERFACE 00185 ! ***************************************************************************** 00186 SUBROUTINE DROTM(N,X,INCX,Y,INCY,PARAM) 00187 INTEGER, INTENT(IN) :: N 00188 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00189 SP = KIND(0.0) 00190 REAL(DP), INTENT(IN) :: PARAM(5) 00191 INTEGER, INTENT(IN) :: INCY 00192 REAL(DP), INTENT(INOUT) :: Y(*) 00193 INTEGER, INTENT(IN) :: INCX 00194 REAL(DP), INTENT(INOUT) :: X(*) 00195 00196 END SUBROUTINE DROTM 00197 END INTERFACE 00198 INTERFACE 00199 ! ***************************************************************************** 00200 SUBROUTINE SSWAP(N,X,INCX,Y,INCY) 00201 INTEGER, INTENT(IN) :: N 00202 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00203 SP = KIND(0.0) 00204 INTEGER, INTENT(IN) :: INCY 00205 REAL(SP), INTENT(INOUT) :: Y(*) 00206 INTEGER, INTENT(IN) :: INCX 00207 REAL(SP), INTENT(INOUT) :: X(*) 00208 00209 END SUBROUTINE SSWAP 00210 END INTERFACE 00211 INTERFACE 00212 ! ***************************************************************************** 00213 SUBROUTINE DSWAP(N,X,INCX,Y,INCY) 00214 INTEGER, INTENT(IN) :: N 00215 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00216 SP = KIND(0.0) 00217 INTEGER, INTENT(IN) :: INCY 00218 REAL(DP), INTENT(INOUT) :: Y(*) 00219 INTEGER, INTENT(IN) :: INCX 00220 REAL(DP), INTENT(INOUT) :: X(*) 00221 00222 END SUBROUTINE DSWAP 00223 END INTERFACE 00224 INTERFACE 00225 ! ***************************************************************************** 00226 SUBROUTINE CSWAP(N,X,INCX,Y,INCY) 00227 INTEGER, INTENT(IN) :: N 00228 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00229 SP = KIND(0.0) 00230 INTEGER, INTENT(IN) :: INCY 00231 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00232 INTEGER, INTENT(IN) :: INCX 00233 COMPLEX(SP), INTENT(INOUT) :: X(*) 00234 00235 END SUBROUTINE CSWAP 00236 END INTERFACE 00237 INTERFACE 00238 ! ***************************************************************************** 00239 SUBROUTINE ZSWAP(N,X,INCX,Y,INCY) 00240 INTEGER, INTENT(IN) :: N 00241 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00242 SP = KIND(0.0) 00243 INTEGER, INTENT(IN) :: INCY 00244 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00245 INTEGER, INTENT(IN) :: INCX 00246 COMPLEX(DP), INTENT(INOUT) :: X(*) 00247 00248 END SUBROUTINE ZSWAP 00249 END INTERFACE 00250 INTERFACE 00251 ! ***************************************************************************** 00252 SUBROUTINE SSCAL(N,ALPHA,X,INCX) 00253 INTEGER, INTENT(IN) :: N 00254 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00255 SP = KIND(0.0) 00256 INTEGER, INTENT(IN) :: INCX 00257 REAL(SP), INTENT(INOUT) :: X(*) 00258 REAL(SP), INTENT(IN) :: ALPHA 00259 00260 END SUBROUTINE SSCAL 00261 END INTERFACE 00262 INTERFACE 00263 ! ***************************************************************************** 00264 SUBROUTINE DSCAL(N,ALPHA,X,INCX) 00265 INTEGER, INTENT(IN) :: N 00266 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00267 SP = KIND(0.0) 00268 INTEGER, INTENT(IN) :: INCX 00269 REAL(DP), INTENT(INOUT) :: X(*) 00270 REAL(DP), INTENT(IN) :: ALPHA 00271 00272 END SUBROUTINE DSCAL 00273 END INTERFACE 00274 INTERFACE 00275 ! ***************************************************************************** 00276 SUBROUTINE CSCAL(N,ALPHA,X,INCX) 00277 INTEGER, INTENT(IN) :: N 00278 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00279 SP = KIND(0.0) 00280 INTEGER, INTENT(IN) :: INCX 00281 COMPLEX(SP), INTENT(INOUT) :: X(*) 00282 COMPLEX(SP), INTENT(IN) :: ALPHA 00283 00284 END SUBROUTINE CSCAL 00285 END INTERFACE 00286 INTERFACE 00287 ! ***************************************************************************** 00288 SUBROUTINE ZSCAL(N,ALPHA,X,INCX) 00289 INTEGER, INTENT(IN) :: N 00290 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00291 SP = KIND(0.0) 00292 INTEGER, INTENT(IN) :: INCX 00293 COMPLEX(DP), INTENT(INOUT) :: X(*) 00294 COMPLEX(DP), INTENT(IN) :: ALPHA 00295 00296 END SUBROUTINE ZSCAL 00297 END INTERFACE 00298 INTERFACE 00299 ! ***************************************************************************** 00300 SUBROUTINE CSSCAL(N,ALPHA,X,INCX) 00301 INTEGER, INTENT(IN) :: N 00302 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00303 SP = KIND(0.0) 00304 INTEGER, INTENT(IN) :: INCX 00305 COMPLEX(SP), INTENT(INOUT) :: X(*) 00306 REAL(SP), INTENT(IN) :: ALPHA 00307 00308 END SUBROUTINE CSSCAL 00309 END INTERFACE 00310 INTERFACE 00311 ! ***************************************************************************** 00312 SUBROUTINE ZDSCAL(N,ALPHA,X,INCX) 00313 INTEGER, INTENT(IN) :: N 00314 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00315 SP = KIND(0.0) 00316 INTEGER, INTENT(IN) :: INCX 00317 COMPLEX(DP), INTENT(INOUT) :: X(*) 00318 REAL(DP), INTENT(IN) :: ALPHA 00319 00320 END SUBROUTINE ZDSCAL 00321 END INTERFACE 00322 INTERFACE 00323 ! ***************************************************************************** 00324 SUBROUTINE SCOPY(N,X,INCX,Y,INCY) 00325 INTEGER, INTENT(IN) :: N 00326 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00327 SP = KIND(0.0) 00328 INTEGER, INTENT(IN) :: INCY 00329 REAL(SP), INTENT(INOUT) :: Y(*) 00330 INTEGER, INTENT(IN) :: INCX 00331 REAL(SP), INTENT(IN) :: X(*) 00332 00333 END SUBROUTINE SCOPY 00334 END INTERFACE 00335 INTERFACE 00336 ! ***************************************************************************** 00337 SUBROUTINE DCOPY(N,X,INCX,Y,INCY) 00338 INTEGER, INTENT(IN) :: N 00339 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00340 SP = KIND(0.0) 00341 INTEGER, INTENT(IN) :: INCY 00342 REAL(DP), INTENT(INOUT) :: Y(*) 00343 INTEGER, INTENT(IN) :: INCX 00344 REAL(DP), INTENT(IN) :: X(*) 00345 00346 END SUBROUTINE DCOPY 00347 END INTERFACE 00348 INTERFACE 00349 ! ***************************************************************************** 00350 SUBROUTINE CCOPY(N,X,INCX,Y,INCY) 00351 INTEGER, INTENT(IN) :: N 00352 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00353 SP = KIND(0.0) 00354 INTEGER, INTENT(IN) :: INCY 00355 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00356 INTEGER, INTENT(IN) :: INCX 00357 COMPLEX(SP), INTENT(IN) :: X(*) 00358 00359 END SUBROUTINE CCOPY 00360 END INTERFACE 00361 INTERFACE 00362 ! ***************************************************************************** 00363 SUBROUTINE ZCOPY(N,X,INCX,Y,INCY) 00364 INTEGER, INTENT(IN) :: N 00365 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00366 SP = KIND(0.0) 00367 INTEGER, INTENT(IN) :: INCY 00368 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00369 INTEGER, INTENT(IN) :: INCX 00370 COMPLEX(DP), INTENT(IN) :: X(*) 00371 00372 END SUBROUTINE ZCOPY 00373 END INTERFACE 00374 INTERFACE 00375 ! ***************************************************************************** 00376 SUBROUTINE SAXPY(N,ALPHA,X,INCX,Y,INCY) 00377 INTEGER, INTENT(IN) :: N 00378 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00379 SP = KIND(0.0) 00380 INTEGER, INTENT(IN) :: INCY 00381 REAL(SP), INTENT(INOUT) :: Y(*) 00382 INTEGER, INTENT(IN) :: INCX 00383 REAL(SP), INTENT(IN) :: X(*), ALPHA 00384 00385 END SUBROUTINE SAXPY 00386 END INTERFACE 00387 INTERFACE 00388 ! ***************************************************************************** 00389 SUBROUTINE DAXPY(N,ALPHA,X,INCX,Y,INCY) 00390 INTEGER, INTENT(IN) :: N 00391 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00392 SP = KIND(0.0) 00393 INTEGER, INTENT(IN) :: INCY 00394 REAL(DP), INTENT(INOUT) :: Y(*) 00395 INTEGER, INTENT(IN) :: INCX 00396 REAL(DP), INTENT(IN) :: X(*), ALPHA 00397 00398 END SUBROUTINE DAXPY 00399 END INTERFACE 00400 INTERFACE 00401 ! ***************************************************************************** 00402 SUBROUTINE CAXPY(N,ALPHA,X,INCX,Y,INCY) 00403 INTEGER, INTENT(IN) :: N 00404 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00405 SP = KIND(0.0) 00406 INTEGER, INTENT(IN) :: INCY 00407 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00408 INTEGER, INTENT(IN) :: INCX 00409 COMPLEX(SP), INTENT(IN) :: X(*), ALPHA 00410 00411 END SUBROUTINE CAXPY 00412 END INTERFACE 00413 INTERFACE 00414 ! ***************************************************************************** 00415 SUBROUTINE ZAXPY(N,ALPHA,X,INCX,Y,INCY) 00416 INTEGER, INTENT(IN) :: N 00417 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00418 SP = KIND(0.0) 00419 INTEGER, INTENT(IN) :: INCY 00420 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00421 INTEGER, INTENT(IN) :: INCX 00422 COMPLEX(DP), INTENT(IN) :: X(*), ALPHA 00423 00424 END SUBROUTINE ZAXPY 00425 END INTERFACE 00426 INTERFACE 00427 ! ***************************************************************************** 00428 FUNCTION SDOT(N,X,INCX,Y,INCY) 00429 INTEGER, INTENT(IN) :: N 00430 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00431 SP = KIND(0.0) 00432 REAL(SP) :: SDOT 00433 INTEGER, INTENT(IN) :: INCY 00434 REAL(SP), INTENT(IN) :: Y(*) 00435 INTEGER, INTENT(IN) :: INCX 00436 REAL(SP), INTENT(IN) :: X(*) 00437 00438 END FUNCTION SDOT 00439 END INTERFACE 00440 INTERFACE 00441 ! ***************************************************************************** 00442 FUNCTION DDOT(N,X,INCX,Y,INCY) 00443 INTEGER, INTENT(IN) :: N 00444 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00445 SP = KIND(0.0) 00446 REAL(DP) :: DDOT 00447 INTEGER, INTENT(IN) :: INCY 00448 REAL(DP), INTENT(IN) :: Y(*) 00449 INTEGER, INTENT(IN) :: INCX 00450 REAL(DP), INTENT(IN) :: X(*) 00451 00452 END FUNCTION DDOT 00453 END INTERFACE 00454 INTERFACE 00455 ! ***************************************************************************** 00456 FUNCTION CDOTU(N,X,INCX,Y,INCY) 00457 INTEGER, INTENT(IN) :: N 00458 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00459 SP = KIND(0.0) 00460 COMPLEX(SP) :: CDOTU 00461 INTEGER, INTENT(IN) :: INCY 00462 COMPLEX(SP), INTENT(IN) :: Y(*) 00463 INTEGER, INTENT(IN) :: INCX 00464 COMPLEX(SP), INTENT(IN) :: X(*) 00465 00466 END FUNCTION CDOTU 00467 END INTERFACE 00468 INTERFACE 00469 ! ***************************************************************************** 00470 FUNCTION ZDOTU(N,X,INCX,Y,INCY) 00471 INTEGER, INTENT(IN) :: N 00472 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00473 SP = KIND(0.0) 00474 COMPLEX(DP) :: ZDOTU 00475 INTEGER, INTENT(IN) :: INCY 00476 COMPLEX(DP), INTENT(IN) :: Y(*) 00477 INTEGER, INTENT(IN) :: INCX 00478 COMPLEX(DP), INTENT(IN) :: X(*) 00479 00480 END FUNCTION ZDOTU 00481 END INTERFACE 00482 INTERFACE 00483 ! ***************************************************************************** 00484 FUNCTION CDOTC(N,X,INCX,Y,INCY) 00485 INTEGER, INTENT(IN) :: N 00486 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00487 SP = KIND(0.0) 00488 COMPLEX(SP) :: CDOTC 00489 INTEGER, INTENT(IN) :: INCY 00490 COMPLEX(SP), INTENT(IN) :: Y(*) 00491 INTEGER, INTENT(IN) :: INCX 00492 COMPLEX(SP), INTENT(IN) :: X(*) 00493 00494 END FUNCTION CDOTC 00495 END INTERFACE 00496 INTERFACE 00497 ! ***************************************************************************** 00498 FUNCTION ZDOTC(N,X,INCX,Y,INCY) 00499 INTEGER, INTENT(IN) :: N 00500 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00501 SP = KIND(0.0) 00502 COMPLEX(DP) :: ZDOTC 00503 INTEGER, INTENT(IN) :: INCY 00504 COMPLEX(DP), INTENT(IN) :: Y(*) 00505 INTEGER, INTENT(IN) :: INCX 00506 COMPLEX(DP), INTENT(IN) :: X(*) 00507 00508 END FUNCTION ZDOTC 00509 END INTERFACE 00510 INTERFACE 00511 ! ***************************************************************************** 00512 FUNCTION SNRM2(N,X,INCX) 00513 INTEGER, INTENT(IN) :: N 00514 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00515 SP = KIND(0.0) 00516 REAL(SP) :: SNRM2 00517 INTEGER, INTENT(IN) :: INCX 00518 REAL(SP), INTENT(IN) :: X(*) 00519 00520 END FUNCTION SNRM2 00521 END INTERFACE 00522 INTERFACE 00523 ! ***************************************************************************** 00524 FUNCTION DNRM2(N,X,INCX) 00525 INTEGER, INTENT(IN) :: N 00526 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00527 SP = KIND(0.0) 00528 REAL(DP) :: DNRM2 00529 INTEGER, INTENT(IN) :: INCX 00530 REAL(DP), INTENT(IN) :: X(*) 00531 00532 END FUNCTION DNRM2 00533 END INTERFACE 00534 INTERFACE 00535 ! ***************************************************************************** 00536 FUNCTION SCNRM2(N,X,INCX) 00537 INTEGER, INTENT(IN) :: N 00538 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00539 SP = KIND(0.0) 00540 REAL(SP) :: SCNRM2 00541 INTEGER, INTENT(IN) :: INCX 00542 COMPLEX(SP), INTENT(IN) :: X(*) 00543 00544 END FUNCTION SCNRM2 00545 END INTERFACE 00546 INTERFACE 00547 ! ***************************************************************************** 00548 FUNCTION DZNRM2(N,X,INCX) 00549 INTEGER, INTENT(IN) :: N 00550 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00551 SP = KIND(0.0) 00552 REAL(DP) :: DZNRM2 00553 INTEGER, INTENT(IN) :: INCX 00554 COMPLEX(DP), INTENT(IN) :: X(*) 00555 00556 END FUNCTION DZNRM2 00557 END INTERFACE 00558 INTERFACE 00559 ! ***************************************************************************** 00560 FUNCTION SASUM(N,X,INCX) 00561 INTEGER, INTENT(IN) :: N 00562 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00563 SP = KIND(0.0) 00564 REAL(SP) :: SASUM 00565 INTEGER, INTENT(IN) :: INCX 00566 REAL(SP), INTENT(IN) :: X(*) 00567 00568 END FUNCTION SASUM 00569 END INTERFACE 00570 INTERFACE 00571 ! ***************************************************************************** 00572 FUNCTION SCASUM(N,X,INCX) 00573 INTEGER, INTENT(IN) :: N 00574 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00575 SP = KIND(0.0) 00576 REAL(SP) :: SCASUM 00577 INTEGER, INTENT(IN) :: INCX 00578 COMPLEX(SP), INTENT(IN) :: X(*) 00579 00580 END FUNCTION SCASUM 00581 END INTERFACE 00582 INTERFACE 00583 ! ***************************************************************************** 00584 FUNCTION DASUM(N,X,INCX) 00585 INTEGER, INTENT(IN) :: N 00586 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00587 SP = KIND(0.0) 00588 REAL(DP) :: DASUM 00589 INTEGER, INTENT(IN) :: INCX 00590 REAL(DP), INTENT(IN) :: X(*) 00591 00592 END FUNCTION DASUM 00593 END INTERFACE 00594 INTERFACE 00595 ! ***************************************************************************** 00596 FUNCTION DZASUM(N,X,INCX) 00597 INTEGER, INTENT(IN) :: N 00598 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00599 SP = KIND(0.0) 00600 REAL(DP) :: DZASUM 00601 INTEGER, INTENT(IN) :: INCX 00602 COMPLEX(DP), INTENT(IN) :: X(*) 00603 00604 END FUNCTION DZASUM 00605 END INTERFACE 00606 INTERFACE 00607 ! ***************************************************************************** 00608 FUNCTION ISAMAX(N,X,INCX) 00609 INTEGER, INTENT(IN) :: N 00610 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00611 SP = KIND(0.0) 00612 INTEGER :: ISAMAX 00613 INTEGER, INTENT(IN) :: INCX 00614 REAL(SP), INTENT(IN) :: X(*) 00615 00616 END FUNCTION ISAMAX 00617 END INTERFACE 00618 INTERFACE 00619 ! ***************************************************************************** 00620 FUNCTION IDAMAX(N,X,INCX) 00621 INTEGER, INTENT(IN) :: N 00622 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00623 SP = KIND(0.0) 00624 INTEGER :: IDAMAX 00625 INTEGER, INTENT(IN) :: INCX 00626 REAL(DP), INTENT(IN) :: X(*) 00627 00628 END FUNCTION IDAMAX 00629 END INTERFACE 00630 INTERFACE 00631 ! ***************************************************************************** 00632 FUNCTION ICAMAX(N,X,INCX) 00633 INTEGER, INTENT(IN) :: N 00634 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00635 SP = KIND(0.0) 00636 INTEGER :: ICAMAX 00637 INTEGER, INTENT(IN) :: INCX 00638 COMPLEX(SP), INTENT(IN) :: X(*) 00639 00640 END FUNCTION ICAMAX 00641 END INTERFACE 00642 INTERFACE 00643 ! ***************************************************************************** 00644 FUNCTION IZAMAX(N,X,INCX) 00645 INTEGER, INTENT(IN) :: N 00646 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00647 SP = KIND(0.0) 00648 INTEGER :: IZAMAX 00649 INTEGER, INTENT(IN) :: INCX 00650 COMPLEX(DP), INTENT(IN) :: X(*) 00651 00652 END FUNCTION IZAMAX 00653 END INTERFACE 00654 ! 00655 ! Level 1 BLAS 00656 ! 00657 INTERFACE 00658 ! ***************************************************************************** 00659 SUBROUTINE SGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00660 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00661 INTEGER, INTENT(IN) :: M, N 00662 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00663 SP = KIND(0.0) 00664 INTEGER, INTENT(IN) :: INCY 00665 REAL(SP), INTENT(INOUT) :: Y(*) 00666 REAL(SP), INTENT(IN) :: BETA 00667 INTEGER, INTENT(IN) :: INCX 00668 REAL(SP), INTENT(IN) :: X(*) 00669 INTEGER, INTENT(IN) :: LDA 00670 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 00671 00672 END SUBROUTINE SGEMV 00673 END INTERFACE 00674 INTERFACE 00675 ! ***************************************************************************** 00676 SUBROUTINE DGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00677 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00678 INTEGER, INTENT(IN) :: M, N 00679 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00680 SP = KIND(0.0) 00681 INTEGER, INTENT(IN) :: INCY 00682 REAL(DP), INTENT(INOUT) :: Y(*) 00683 REAL(DP), INTENT(IN) :: BETA 00684 INTEGER, INTENT(IN) :: INCX 00685 REAL(DP), INTENT(IN) :: X(*) 00686 INTEGER, INTENT(IN) :: LDA 00687 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 00688 00689 END SUBROUTINE DGEMV 00690 END INTERFACE 00691 INTERFACE 00692 ! ***************************************************************************** 00693 SUBROUTINE CGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00694 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00695 INTEGER, INTENT(IN) :: M, N 00696 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00697 SP = KIND(0.0) 00698 INTEGER, INTENT(IN) :: INCY 00699 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00700 COMPLEX(SP), INTENT(IN) :: BETA 00701 INTEGER, INTENT(IN) :: INCX 00702 COMPLEX(SP), INTENT(IN) :: X(*) 00703 INTEGER, INTENT(IN) :: LDA 00704 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 00705 00706 END SUBROUTINE CGEMV 00707 END INTERFACE 00708 INTERFACE 00709 ! ***************************************************************************** 00710 SUBROUTINE ZGEMV(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00711 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00712 INTEGER, INTENT(IN) :: M, N 00713 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00714 SP = KIND(0.0) 00715 INTEGER, INTENT(IN) :: INCY 00716 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00717 COMPLEX(DP), INTENT(IN) :: BETA 00718 INTEGER, INTENT(IN) :: INCX 00719 COMPLEX(DP), INTENT(IN) :: X(*) 00720 INTEGER, INTENT(IN) :: LDA 00721 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 00722 00723 END SUBROUTINE ZGEMV 00724 END INTERFACE 00725 INTERFACE 00726 ! ***************************************************************************** 00727 SUBROUTINE SGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00728 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00729 INTEGER, INTENT(IN) :: M, N, KL, KU 00730 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00731 SP = KIND(0.0) 00732 INTEGER, INTENT(IN) :: INCY 00733 REAL(SP), INTENT(INOUT) :: Y(*) 00734 REAL(SP), INTENT(IN) :: BETA 00735 INTEGER, INTENT(IN) :: INCX 00736 REAL(SP), INTENT(IN) :: X(*) 00737 INTEGER, INTENT(IN) :: LDA 00738 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 00739 00740 END SUBROUTINE SGBMV 00741 END INTERFACE 00742 INTERFACE 00743 ! ***************************************************************************** 00744 SUBROUTINE DGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00745 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00746 INTEGER, INTENT(IN) :: M, N, KL, KU 00747 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00748 SP = KIND(0.0) 00749 INTEGER, INTENT(IN) :: INCY 00750 REAL(DP), INTENT(INOUT) :: Y(*) 00751 REAL(DP), INTENT(IN) :: BETA 00752 INTEGER, INTENT(IN) :: INCX 00753 REAL(DP), INTENT(IN) :: X(*) 00754 INTEGER, INTENT(IN) :: LDA 00755 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 00756 00757 END SUBROUTINE DGBMV 00758 END INTERFACE 00759 INTERFACE 00760 ! ***************************************************************************** 00761 SUBROUTINE CGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00762 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00763 INTEGER, INTENT(IN) :: M, N, KL, KU 00764 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00765 SP = KIND(0.0) 00766 INTEGER, INTENT(IN) :: INCY 00767 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00768 COMPLEX(SP), INTENT(IN) :: BETA 00769 INTEGER, INTENT(IN) :: INCX 00770 COMPLEX(SP), INTENT(IN) :: X(*) 00771 INTEGER, INTENT(IN) :: LDA 00772 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 00773 00774 END SUBROUTINE CGBMV 00775 END INTERFACE 00776 INTERFACE 00777 ! ***************************************************************************** 00778 SUBROUTINE ZGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00779 CHARACTER(LEN=1), INTENT(IN) :: TRANS 00780 INTEGER, INTENT(IN) :: M, N, KL, KU 00781 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00782 SP = KIND(0.0) 00783 INTEGER, INTENT(IN) :: INCY 00784 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00785 COMPLEX(DP), INTENT(IN) :: BETA 00786 INTEGER, INTENT(IN) :: INCX 00787 COMPLEX(DP), INTENT(IN) :: X(*) 00788 INTEGER, INTENT(IN) :: LDA 00789 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 00790 00791 END SUBROUTINE ZGBMV 00792 END INTERFACE 00793 INTERFACE 00794 ! ***************************************************************************** 00795 SUBROUTINE CHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00796 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00797 INTEGER, INTENT(IN) :: N 00798 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00799 SP = KIND(0.0) 00800 INTEGER, INTENT(IN) :: INCY 00801 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00802 COMPLEX(SP), INTENT(IN) :: BETA 00803 INTEGER, INTENT(IN) :: INCX 00804 COMPLEX(SP), INTENT(IN) :: X(*) 00805 INTEGER, INTENT(IN) :: LDA 00806 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 00807 00808 END SUBROUTINE CHEMV 00809 END INTERFACE 00810 INTERFACE 00811 ! ***************************************************************************** 00812 SUBROUTINE ZHEMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00813 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00814 INTEGER, INTENT(IN) :: N 00815 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00816 SP = KIND(0.0) 00817 INTEGER, INTENT(IN) :: INCY 00818 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00819 COMPLEX(DP), INTENT(IN) :: BETA 00820 INTEGER, INTENT(IN) :: INCX 00821 COMPLEX(DP), INTENT(IN) :: X(*) 00822 INTEGER, INTENT(IN) :: LDA 00823 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 00824 00825 END SUBROUTINE ZHEMV 00826 END INTERFACE 00827 INTERFACE 00828 ! ***************************************************************************** 00829 SUBROUTINE CHBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00830 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00831 INTEGER, INTENT(IN) :: N, K 00832 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00833 SP = KIND(0.0) 00834 INTEGER, INTENT(IN) :: INCY 00835 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00836 COMPLEX(SP), INTENT(IN) :: BETA 00837 INTEGER, INTENT(IN) :: INCX 00838 COMPLEX(SP), INTENT(IN) :: X(*) 00839 INTEGER, INTENT(IN) :: LDA 00840 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 00841 00842 END SUBROUTINE CHBMV 00843 END INTERFACE 00844 INTERFACE 00845 ! ***************************************************************************** 00846 SUBROUTINE ZHBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00847 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00848 INTEGER, INTENT(IN) :: N, K 00849 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00850 SP = KIND(0.0) 00851 INTEGER, INTENT(IN) :: INCY 00852 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00853 COMPLEX(DP), INTENT(IN) :: BETA 00854 INTEGER, INTENT(IN) :: INCX 00855 COMPLEX(DP), INTENT(IN) :: X(*) 00856 INTEGER, INTENT(IN) :: LDA 00857 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 00858 00859 END SUBROUTINE ZHBMV 00860 END INTERFACE 00861 INTERFACE 00862 ! ***************************************************************************** 00863 SUBROUTINE CHPMV(UPLO,N,ALPHA,A,X,INCX,BETA,Y,INCY) 00864 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00865 INTEGER, INTENT(IN) :: N 00866 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00867 SP = KIND(0.0) 00868 INTEGER, INTENT(IN) :: INCY 00869 COMPLEX(SP), INTENT(INOUT) :: Y(*) 00870 COMPLEX(SP), INTENT(IN) :: BETA 00871 INTEGER, INTENT(IN) :: INCX 00872 COMPLEX(SP), INTENT(IN) :: X(*), A(*), ALPHA 00873 00874 END SUBROUTINE CHPMV 00875 END INTERFACE 00876 INTERFACE 00877 ! ***************************************************************************** 00878 SUBROUTINE ZHPMV(UPLO,N,ALPHA,A,X,INCX,BETA,Y,INCY) 00879 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00880 INTEGER, INTENT(IN) :: N 00881 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00882 SP = KIND(0.0) 00883 INTEGER, INTENT(IN) :: INCY 00884 COMPLEX(DP), INTENT(INOUT) :: Y(*) 00885 COMPLEX(DP), INTENT(IN) :: BETA 00886 INTEGER, INTENT(IN) :: INCX 00887 COMPLEX(DP), INTENT(IN) :: X(*), A(*), ALPHA 00888 00889 END SUBROUTINE ZHPMV 00890 END INTERFACE 00891 INTERFACE 00892 ! ***************************************************************************** 00893 SUBROUTINE SSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00894 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00895 INTEGER, INTENT(IN) :: N 00896 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00897 SP = KIND(0.0) 00898 INTEGER, INTENT(IN) :: INCY 00899 REAL(SP), INTENT(INOUT) :: Y(*) 00900 REAL(SP), INTENT(IN) :: BETA 00901 INTEGER, INTENT(IN) :: INCX 00902 REAL(SP), INTENT(IN) :: X(*) 00903 INTEGER, INTENT(IN) :: LDA 00904 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 00905 00906 END SUBROUTINE SSYMV 00907 END INTERFACE 00908 INTERFACE 00909 ! ***************************************************************************** 00910 SUBROUTINE DSYMV(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00911 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00912 INTEGER, INTENT(IN) :: N 00913 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00914 SP = KIND(0.0) 00915 INTEGER, INTENT(IN) :: INCY 00916 REAL(DP), INTENT(INOUT) :: Y(*) 00917 REAL(DP), INTENT(IN) :: BETA 00918 INTEGER, INTENT(IN) :: INCX 00919 REAL(DP), INTENT(IN) :: X(*) 00920 INTEGER, INTENT(IN) :: LDA 00921 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 00922 00923 END SUBROUTINE DSYMV 00924 END INTERFACE 00925 INTERFACE 00926 ! ***************************************************************************** 00927 SUBROUTINE SSBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00928 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00929 INTEGER, INTENT(IN) :: N, K 00930 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00931 SP = KIND(0.0) 00932 INTEGER, INTENT(IN) :: INCY 00933 REAL(SP), INTENT(INOUT) :: Y(*) 00934 REAL(SP), INTENT(IN) :: BETA 00935 INTEGER, INTENT(IN) :: INCX 00936 REAL(SP), INTENT(IN) :: X(*) 00937 INTEGER, INTENT(IN) :: LDA 00938 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 00939 00940 END SUBROUTINE SSBMV 00941 END INTERFACE 00942 INTERFACE 00943 ! ***************************************************************************** 00944 SUBROUTINE DSBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY) 00945 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00946 INTEGER, INTENT(IN) :: N, K 00947 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00948 SP = KIND(0.0) 00949 INTEGER, INTENT(IN) :: INCY 00950 REAL(DP), INTENT(INOUT) :: Y(*) 00951 REAL(DP), INTENT(IN) :: BETA 00952 INTEGER, INTENT(IN) :: INCX 00953 REAL(DP), INTENT(IN) :: X(*) 00954 INTEGER, INTENT(IN) :: LDA 00955 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 00956 00957 END SUBROUTINE DSBMV 00958 END INTERFACE 00959 INTERFACE 00960 ! ***************************************************************************** 00961 SUBROUTINE SSPMV(UPLO,N,ALPHA,A,X,INCX,BETA,Y,INCY) 00962 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00963 INTEGER, INTENT(IN) :: N 00964 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00965 SP = KIND(0.0) 00966 INTEGER, INTENT(IN) :: INCY 00967 REAL(SP), INTENT(INOUT) :: Y(*) 00968 REAL(SP), INTENT(IN) :: BETA 00969 INTEGER, INTENT(IN) :: INCX 00970 REAL(SP), INTENT(IN) :: X(*), A(*), ALPHA 00971 00972 END SUBROUTINE SSPMV 00973 END INTERFACE 00974 INTERFACE 00975 ! ***************************************************************************** 00976 SUBROUTINE DSPMV(UPLO,N,ALPHA,A,X,INCX,BETA,Y,INCY) 00977 CHARACTER(LEN=1), INTENT(IN) :: UPLO 00978 INTEGER, INTENT(IN) :: N 00979 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00980 SP = KIND(0.0) 00981 INTEGER, INTENT(IN) :: INCY 00982 REAL(DP), INTENT(INOUT) :: Y(*) 00983 REAL(DP), INTENT(IN) :: BETA 00984 INTEGER, INTENT(IN) :: INCX 00985 REAL(DP), INTENT(IN) :: X(*), A(*), ALPHA 00986 00987 END SUBROUTINE DSPMV 00988 END INTERFACE 00989 INTERFACE 00990 ! ***************************************************************************** 00991 SUBROUTINE STRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 00992 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 00993 INTEGER, INTENT(IN) :: N 00994 INTEGER, PARAMETER :: DP = KIND(0.0D0), 00995 SP = KIND(0.0) 00996 INTEGER, INTENT(IN) :: INCX 00997 REAL(SP), INTENT(INOUT) :: X(*) 00998 INTEGER, INTENT(IN) :: LDA 00999 REAL(SP), INTENT(IN) :: A(LDA,*) 01000 01001 END SUBROUTINE STRMV 01002 END INTERFACE 01003 INTERFACE 01004 ! ***************************************************************************** 01005 SUBROUTINE DTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01006 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01007 INTEGER, INTENT(IN) :: N 01008 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01009 SP = KIND(0.0) 01010 INTEGER, INTENT(IN) :: INCX 01011 REAL(DP), INTENT(INOUT) :: X(*) 01012 INTEGER, INTENT(IN) :: LDA 01013 REAL(DP), INTENT(IN) :: A(LDA,*) 01014 01015 END SUBROUTINE DTRMV 01016 END INTERFACE 01017 INTERFACE 01018 ! ***************************************************************************** 01019 SUBROUTINE CTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01020 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01021 INTEGER, INTENT(IN) :: N 01022 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01023 SP = KIND(0.0) 01024 INTEGER, INTENT(IN) :: INCX 01025 COMPLEX(SP), INTENT(INOUT) :: X(*) 01026 INTEGER, INTENT(IN) :: LDA 01027 COMPLEX(SP), INTENT(IN) :: A(LDA,*) 01028 01029 END SUBROUTINE CTRMV 01030 END INTERFACE 01031 INTERFACE 01032 ! ***************************************************************************** 01033 SUBROUTINE ZTRMV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01034 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01035 INTEGER, INTENT(IN) :: N 01036 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01037 SP = KIND(0.0) 01038 INTEGER, INTENT(IN) :: INCX 01039 COMPLEX(DP), INTENT(INOUT) :: X(*) 01040 INTEGER, INTENT(IN) :: LDA 01041 COMPLEX(DP), INTENT(IN) :: A(LDA,*) 01042 01043 END SUBROUTINE ZTRMV 01044 END INTERFACE 01045 INTERFACE 01046 ! ***************************************************************************** 01047 SUBROUTINE STBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01048 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01049 INTEGER, INTENT(IN) :: N, K 01050 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01051 SP = KIND(0.0) 01052 INTEGER, INTENT(IN) :: INCX 01053 REAL(SP), INTENT(INOUT) :: X(*) 01054 INTEGER, INTENT(IN) :: LDA 01055 REAL(SP), INTENT(IN) :: A(LDA,*) 01056 01057 END SUBROUTINE STBMV 01058 END INTERFACE 01059 INTERFACE 01060 ! ***************************************************************************** 01061 SUBROUTINE DTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01062 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01063 INTEGER, INTENT(IN) :: N, K 01064 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01065 SP = KIND(0.0) 01066 INTEGER, INTENT(IN) :: INCX 01067 REAL(DP), INTENT(INOUT) :: X(*) 01068 INTEGER, INTENT(IN) :: LDA 01069 REAL(DP), INTENT(IN) :: A(LDA,*) 01070 01071 END SUBROUTINE DTBMV 01072 END INTERFACE 01073 INTERFACE 01074 ! ***************************************************************************** 01075 SUBROUTINE CTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01076 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01077 INTEGER, INTENT(IN) :: N, K 01078 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01079 SP = KIND(0.0) 01080 INTEGER, INTENT(IN) :: INCX 01081 COMPLEX(SP), INTENT(INOUT) :: X(*) 01082 INTEGER, INTENT(IN) :: LDA 01083 COMPLEX(SP), INTENT(IN) :: A(LDA,*) 01084 01085 END SUBROUTINE CTBMV 01086 END INTERFACE 01087 INTERFACE 01088 ! ***************************************************************************** 01089 SUBROUTINE ZTBMV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01090 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01091 INTEGER, INTENT(IN) :: N, K 01092 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01093 SP = KIND(0.0) 01094 INTEGER, INTENT(IN) :: INCX 01095 COMPLEX(DP), INTENT(INOUT) :: X(*) 01096 INTEGER, INTENT(IN) :: LDA 01097 COMPLEX(DP), INTENT(IN) :: A(LDA,*) 01098 01099 END SUBROUTINE ZTBMV 01100 END INTERFACE 01101 INTERFACE 01102 ! ***************************************************************************** 01103 SUBROUTINE STPMV(UPLO,TRANS,DIAG,N,A,X,INCX) 01104 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01105 INTEGER, INTENT(IN) :: N 01106 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01107 SP = KIND(0.0) 01108 INTEGER, INTENT(IN) :: INCX 01109 REAL(SP), INTENT(INOUT) :: X(*) 01110 REAL(SP), INTENT(IN) :: A(*) 01111 01112 END SUBROUTINE STPMV 01113 END INTERFACE 01114 INTERFACE 01115 ! ***************************************************************************** 01116 SUBROUTINE DTPMV(UPLO,TRANS,DIAG,N,A,X,INCX) 01117 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01118 INTEGER, INTENT(IN) :: N 01119 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01120 SP = KIND(0.0) 01121 INTEGER, INTENT(IN) :: INCX 01122 REAL(DP), INTENT(INOUT) :: X(*) 01123 REAL(DP), INTENT(IN) :: A(*) 01124 01125 END SUBROUTINE DTPMV 01126 END INTERFACE 01127 INTERFACE 01128 ! ***************************************************************************** 01129 SUBROUTINE CTPMV(UPLO,TRANS,DIAG,N,A,X,INCX) 01130 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01131 INTEGER, INTENT(IN) :: N 01132 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01133 SP = KIND(0.0) 01134 INTEGER, INTENT(IN) :: INCX 01135 COMPLEX(SP), INTENT(INOUT) :: X(*) 01136 COMPLEX(SP), INTENT(IN) :: A(*) 01137 01138 END SUBROUTINE CTPMV 01139 END INTERFACE 01140 INTERFACE 01141 ! ***************************************************************************** 01142 SUBROUTINE ZTPMV(UPLO,TRANS,DIAG,N,A,X,INCX) 01143 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01144 INTEGER, INTENT(IN) :: N 01145 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01146 SP = KIND(0.0) 01147 INTEGER, INTENT(IN) :: INCX 01148 COMPLEX(DP), INTENT(INOUT) :: X(*) 01149 COMPLEX(DP), INTENT(IN) :: A(*) 01150 01151 END SUBROUTINE ZTPMV 01152 END INTERFACE 01153 INTERFACE 01154 ! ***************************************************************************** 01155 SUBROUTINE STRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01156 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01157 INTEGER, INTENT(IN) :: N 01158 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01159 SP = KIND(0.0) 01160 INTEGER, INTENT(IN) :: INCX 01161 REAL(SP), INTENT(INOUT) :: X(*) 01162 INTEGER, INTENT(IN) :: LDA 01163 REAL(SP), INTENT(IN) :: A(LDA,*) 01164 01165 END SUBROUTINE STRSV 01166 END INTERFACE 01167 INTERFACE 01168 ! ***************************************************************************** 01169 SUBROUTINE DTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01170 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01171 INTEGER, INTENT(IN) :: N 01172 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01173 SP = KIND(0.0) 01174 INTEGER, INTENT(IN) :: INCX 01175 REAL(DP), INTENT(INOUT) :: X(*) 01176 INTEGER, INTENT(IN) :: LDA 01177 REAL(DP), INTENT(IN) :: A(LDA,*) 01178 01179 END SUBROUTINE DTRSV 01180 END INTERFACE 01181 INTERFACE 01182 ! ***************************************************************************** 01183 SUBROUTINE CTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01184 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01185 INTEGER, INTENT(IN) :: N 01186 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01187 SP = KIND(0.0) 01188 INTEGER, INTENT(IN) :: INCX 01189 COMPLEX(SP), INTENT(INOUT) :: X(*) 01190 INTEGER, INTENT(IN) :: LDA 01191 COMPLEX(SP), INTENT(IN) :: A(LDA,*) 01192 01193 END SUBROUTINE CTRSV 01194 END INTERFACE 01195 INTERFACE 01196 ! ***************************************************************************** 01197 SUBROUTINE ZTRSV(UPLO,TRANS,DIAG,N,A,LDA,X,INCX) 01198 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01199 INTEGER, INTENT(IN) :: N 01200 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01201 SP = KIND(0.0) 01202 INTEGER, INTENT(IN) :: INCX 01203 COMPLEX(DP), INTENT(INOUT) :: X(*) 01204 INTEGER, INTENT(IN) :: LDA 01205 COMPLEX(DP), INTENT(IN) :: A(LDA,*) 01206 01207 END SUBROUTINE ZTRSV 01208 END INTERFACE 01209 INTERFACE 01210 ! ***************************************************************************** 01211 SUBROUTINE STBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01212 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01213 INTEGER, INTENT(IN) :: N, K 01214 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01215 SP = KIND(0.0) 01216 INTEGER, INTENT(IN) :: INCX 01217 REAL(SP), INTENT(INOUT) :: X(*) 01218 INTEGER, INTENT(IN) :: LDA 01219 REAL(SP), INTENT(IN) :: A(LDA,*) 01220 01221 END SUBROUTINE STBSV 01222 END INTERFACE 01223 INTERFACE 01224 ! ***************************************************************************** 01225 SUBROUTINE DTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01226 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01227 INTEGER, INTENT(IN) :: N, K 01228 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01229 SP = KIND(0.0) 01230 INTEGER, INTENT(IN) :: INCX 01231 REAL(DP), INTENT(INOUT) :: X(*) 01232 INTEGER, INTENT(IN) :: LDA 01233 REAL(DP), INTENT(IN) :: A(LDA,*) 01234 01235 END SUBROUTINE DTBSV 01236 END INTERFACE 01237 INTERFACE 01238 ! ***************************************************************************** 01239 SUBROUTINE CTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01240 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01241 INTEGER, INTENT(IN) :: N, K 01242 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01243 SP = KIND(0.0) 01244 INTEGER, INTENT(IN) :: INCX 01245 COMPLEX(SP), INTENT(INOUT) :: X(*) 01246 INTEGER, INTENT(IN) :: LDA 01247 COMPLEX(SP), INTENT(IN) :: A(LDA,*) 01248 01249 END SUBROUTINE CTBSV 01250 END INTERFACE 01251 INTERFACE 01252 ! ***************************************************************************** 01253 SUBROUTINE ZTBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX) 01254 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01255 INTEGER, INTENT(IN) :: N, K 01256 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01257 SP = KIND(0.0) 01258 INTEGER, INTENT(IN) :: INCX 01259 COMPLEX(DP), INTENT(INOUT) :: X(*) 01260 INTEGER, INTENT(IN) :: LDA 01261 COMPLEX(DP), INTENT(IN) :: A(LDA,*) 01262 01263 END SUBROUTINE ZTBSV 01264 END INTERFACE 01265 INTERFACE 01266 ! ***************************************************************************** 01267 SUBROUTINE STPSV(UPLO,TRANS,DIAG,N,A,X,INCX) 01268 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01269 INTEGER, INTENT(IN) :: N 01270 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01271 SP = KIND(0.0) 01272 INTEGER, INTENT(IN) :: INCX 01273 REAL(SP), INTENT(INOUT) :: X(*) 01274 REAL(SP), INTENT(IN) :: A(*) 01275 01276 END SUBROUTINE STPSV 01277 END INTERFACE 01278 INTERFACE 01279 ! ***************************************************************************** 01280 SUBROUTINE DTPSV(UPLO,TRANS,DIAG,N,A,X,INCX) 01281 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01282 INTEGER, INTENT(IN) :: N 01283 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01284 SP = KIND(0.0) 01285 INTEGER, INTENT(IN) :: INCX 01286 REAL(DP), INTENT(INOUT) :: X(*) 01287 REAL(DP), INTENT(IN) :: A(*) 01288 01289 END SUBROUTINE DTPSV 01290 END INTERFACE 01291 INTERFACE 01292 ! ***************************************************************************** 01293 SUBROUTINE CTPSV(UPLO,TRANS,DIAG,N,A,X,INCX) 01294 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01295 INTEGER, INTENT(IN) :: N 01296 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01297 SP = KIND(0.0) 01298 INTEGER, INTENT(IN) :: INCX 01299 COMPLEX(SP), INTENT(INOUT) :: X(*) 01300 COMPLEX(SP), INTENT(IN) :: A(*) 01301 01302 END SUBROUTINE CTPSV 01303 END INTERFACE 01304 INTERFACE 01305 ! ***************************************************************************** 01306 SUBROUTINE ZTPSV(UPLO,TRANS,DIAG,N,A,X,INCX) 01307 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG 01308 INTEGER, INTENT(IN) :: N 01309 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01310 SP = KIND(0.0) 01311 INTEGER, INTENT(IN) :: INCX 01312 COMPLEX(DP), INTENT(INOUT) :: X(*) 01313 COMPLEX(DP), INTENT(IN) :: A(*) 01314 01315 END SUBROUTINE ZTPSV 01316 END INTERFACE 01317 INTERFACE 01318 ! ***************************************************************************** 01319 SUBROUTINE SGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01320 INTEGER, INTENT(IN) :: M, N 01321 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01322 SP = KIND(0.0) 01323 INTEGER, INTENT(IN) :: LDA 01324 REAL(SP), INTENT(INOUT) :: A(LDA,*) 01325 INTEGER, INTENT(IN) :: INCY 01326 REAL(SP), INTENT(IN) :: Y(*) 01327 INTEGER, INTENT(IN) :: INCX 01328 REAL(SP), INTENT(IN) :: X(*), ALPHA 01329 01330 END SUBROUTINE SGER 01331 END INTERFACE 01332 INTERFACE 01333 ! ***************************************************************************** 01334 SUBROUTINE DGER(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01335 INTEGER, INTENT(IN) :: M, N 01336 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01337 SP = KIND(0.0) 01338 INTEGER, INTENT(IN) :: LDA 01339 REAL(DP), INTENT(INOUT) :: A(LDA,*) 01340 INTEGER, INTENT(IN) :: INCY 01341 REAL(DP), INTENT(IN) :: Y(*) 01342 INTEGER, INTENT(IN) :: INCX 01343 REAL(DP), INTENT(IN) :: X(*), ALPHA 01344 01345 END SUBROUTINE DGER 01346 END INTERFACE 01347 INTERFACE 01348 ! ***************************************************************************** 01349 SUBROUTINE CGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01350 INTEGER, INTENT(IN) :: M, N 01351 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01352 SP = KIND(0.0) 01353 INTEGER, INTENT(IN) :: LDA 01354 COMPLEX(SP), INTENT(INOUT) :: A(LDA,*) 01355 INTEGER, INTENT(IN) :: INCY 01356 COMPLEX(SP), INTENT(IN) :: Y(*) 01357 INTEGER, INTENT(IN) :: INCX 01358 COMPLEX(SP), INTENT(IN) :: X(*), ALPHA 01359 01360 END SUBROUTINE CGERU 01361 END INTERFACE 01362 INTERFACE 01363 ! ***************************************************************************** 01364 SUBROUTINE ZGERU(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01365 INTEGER, INTENT(IN) :: M, N 01366 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01367 SP = KIND(0.0) 01368 INTEGER, INTENT(IN) :: LDA 01369 COMPLEX(DP), INTENT(INOUT) :: A(LDA,*) 01370 INTEGER, INTENT(IN) :: INCY 01371 COMPLEX(DP), INTENT(IN) :: Y(*) 01372 INTEGER, INTENT(IN) :: INCX 01373 COMPLEX(DP), INTENT(IN) :: X(*), ALPHA 01374 01375 END SUBROUTINE ZGERU 01376 END INTERFACE 01377 INTERFACE 01378 ! ***************************************************************************** 01379 SUBROUTINE CGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01380 INTEGER, INTENT(IN) :: M, N 01381 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01382 SP = KIND(0.0) 01383 INTEGER, INTENT(IN) :: LDA 01384 COMPLEX(SP), INTENT(INOUT) :: A(LDA,*) 01385 INTEGER, INTENT(IN) :: INCY 01386 COMPLEX(SP), INTENT(IN) :: Y(*) 01387 INTEGER, INTENT(IN) :: INCX 01388 COMPLEX(SP), INTENT(IN) :: X(*), ALPHA 01389 01390 END SUBROUTINE CGERC 01391 END INTERFACE 01392 INTERFACE 01393 ! ***************************************************************************** 01394 SUBROUTINE ZGERC(M,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01395 INTEGER, INTENT(IN) :: M, N 01396 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01397 SP = KIND(0.0) 01398 INTEGER, INTENT(IN) :: LDA 01399 COMPLEX(DP), INTENT(INOUT) :: A(LDA,*) 01400 INTEGER, INTENT(IN) :: INCY 01401 COMPLEX(DP), INTENT(IN) :: Y(*) 01402 INTEGER, INTENT(IN) :: INCX 01403 COMPLEX(DP), INTENT(IN) :: X(*), ALPHA 01404 01405 END SUBROUTINE ZGERC 01406 END INTERFACE 01407 INTERFACE 01408 ! ***************************************************************************** 01409 SUBROUTINE CHER(UPLO,N,ALPHA,X,INCX,A,LDA) 01410 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01411 INTEGER, INTENT(IN) :: N 01412 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01413 SP = KIND(0.0) 01414 INTEGER, INTENT(IN) :: LDA 01415 COMPLEX(SP), INTENT(INOUT) :: A(LDA,*) 01416 INTEGER, INTENT(IN) :: INCX 01417 COMPLEX(SP), INTENT(IN) :: X(*) 01418 REAL(SP), INTENT(IN) :: ALPHA 01419 01420 END SUBROUTINE CHER 01421 END INTERFACE 01422 INTERFACE 01423 ! ***************************************************************************** 01424 SUBROUTINE ZHER(UPLO,N,ALPHA,X,INCX,A,LDA) 01425 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01426 INTEGER, INTENT(IN) :: N 01427 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01428 SP = KIND(0.0) 01429 INTEGER, INTENT(IN) :: LDA 01430 COMPLEX(DP), INTENT(INOUT) :: A(LDA,*) 01431 INTEGER, INTENT(IN) :: INCX 01432 COMPLEX(DP), INTENT(IN) :: X(*) 01433 REAL(DP), INTENT(IN) :: ALPHA 01434 01435 END SUBROUTINE ZHER 01436 END INTERFACE 01437 INTERFACE 01438 ! ***************************************************************************** 01439 SUBROUTINE CHPR(UPLO,N,ALPHA,X,INCX,AP) 01440 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01441 INTEGER, INTENT(IN) :: N 01442 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01443 SP = KIND(0.0) 01444 COMPLEX(SP), INTENT(INOUT) :: AP(*) 01445 INTEGER, INTENT(IN) :: INCX 01446 COMPLEX(SP), INTENT(IN) :: X(*) 01447 REAL(SP), INTENT(IN) :: ALPHA 01448 01449 END SUBROUTINE CHPR 01450 END INTERFACE 01451 INTERFACE 01452 ! ***************************************************************************** 01453 SUBROUTINE ZHPR(UPLO,N,ALPHA,X,INCX,AP) 01454 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01455 INTEGER, INTENT(IN) :: N 01456 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01457 SP = KIND(0.0) 01458 COMPLEX(DP), INTENT(INOUT) :: AP(*) 01459 INTEGER, INTENT(IN) :: INCX 01460 COMPLEX(DP), INTENT(IN) :: X(*) 01461 REAL(DP), INTENT(IN) :: ALPHA 01462 01463 END SUBROUTINE ZHPR 01464 END INTERFACE 01465 INTERFACE 01466 ! ***************************************************************************** 01467 SUBROUTINE CHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01468 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01469 INTEGER, INTENT(IN) :: N 01470 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01471 SP = KIND(0.0) 01472 INTEGER, INTENT(IN) :: LDA 01473 COMPLEX(SP), INTENT(INOUT) :: A(LDA,*) 01474 INTEGER, INTENT(IN) :: INCY 01475 COMPLEX(SP), INTENT(IN) :: Y(*) 01476 INTEGER, INTENT(IN) :: INCX 01477 COMPLEX(SP), INTENT(IN) :: X(*), ALPHA 01478 01479 END SUBROUTINE CHER2 01480 END INTERFACE 01481 INTERFACE 01482 ! ***************************************************************************** 01483 SUBROUTINE ZHER2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01484 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01485 INTEGER, INTENT(IN) :: N 01486 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01487 SP = KIND(0.0) 01488 INTEGER, INTENT(IN) :: LDA 01489 COMPLEX(DP), INTENT(INOUT) :: A(LDA,*) 01490 INTEGER, INTENT(IN) :: INCY 01491 COMPLEX(DP), INTENT(IN) :: Y(*) 01492 INTEGER, INTENT(IN) :: INCX 01493 COMPLEX(DP), INTENT(IN) :: X(*), ALPHA 01494 01495 END SUBROUTINE ZHER2 01496 END INTERFACE 01497 INTERFACE 01498 ! ***************************************************************************** 01499 SUBROUTINE CHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) 01500 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01501 INTEGER, INTENT(IN) :: N 01502 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01503 SP = KIND(0.0) 01504 COMPLEX(SP), INTENT(INOUT) :: AP(*) 01505 INTEGER, INTENT(IN) :: INCY 01506 COMPLEX(SP), INTENT(IN) :: Y(*) 01507 INTEGER, INTENT(IN) :: INCX 01508 COMPLEX(SP), INTENT(IN) :: X(*), ALPHA 01509 01510 END SUBROUTINE CHPR2 01511 END INTERFACE 01512 INTERFACE 01513 ! ***************************************************************************** 01514 SUBROUTINE ZHPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) 01515 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01516 INTEGER, INTENT(IN) :: N 01517 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01518 SP = KIND(0.0) 01519 COMPLEX(DP), INTENT(INOUT) :: AP(*) 01520 INTEGER, INTENT(IN) :: INCY 01521 COMPLEX(DP), INTENT(IN) :: Y(*) 01522 INTEGER, INTENT(IN) :: INCX 01523 COMPLEX(DP), INTENT(IN) :: X(*), ALPHA 01524 01525 END SUBROUTINE ZHPR2 01526 END INTERFACE 01527 INTERFACE 01528 ! ***************************************************************************** 01529 SUBROUTINE SSYR(UPLO,N,ALPHA,X,INCX,A,LDA) 01530 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01531 INTEGER, INTENT(IN) :: N 01532 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01533 SP = KIND(0.0) 01534 INTEGER, INTENT(IN) :: LDA 01535 REAL(SP), INTENT(INOUT) :: A(LDA,*) 01536 INTEGER, INTENT(IN) :: INCX 01537 REAL(SP), INTENT(IN) :: X(*), ALPHA 01538 01539 END SUBROUTINE SSYR 01540 END INTERFACE 01541 INTERFACE 01542 ! ***************************************************************************** 01543 SUBROUTINE DSYR(UPLO,N,ALPHA,X,INCX,A,LDA) 01544 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01545 INTEGER, INTENT(IN) :: N 01546 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01547 SP = KIND(0.0) 01548 INTEGER, INTENT(IN) :: LDA 01549 REAL(DP), INTENT(INOUT) :: A(LDA,*) 01550 INTEGER, INTENT(IN) :: INCX 01551 REAL(DP), INTENT(IN) :: X(*), ALPHA 01552 01553 END SUBROUTINE DSYR 01554 END INTERFACE 01555 INTERFACE 01556 ! ***************************************************************************** 01557 SUBROUTINE SSPR(UPLO,N,ALPHA,X,INCX,AP) 01558 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01559 INTEGER, INTENT(IN) :: N 01560 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01561 SP = KIND(0.0) 01562 REAL(SP), INTENT(INOUT) :: AP(*) 01563 INTEGER, INTENT(IN) :: INCX 01564 REAL(SP), INTENT(IN) :: X(*), ALPHA 01565 01566 END SUBROUTINE SSPR 01567 END INTERFACE 01568 INTERFACE 01569 ! ***************************************************************************** 01570 SUBROUTINE DSPR(UPLO,N,ALPHA,X,INCX,AP) 01571 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01572 INTEGER, INTENT(IN) :: N 01573 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01574 SP = KIND(0.0) 01575 REAL(DP), INTENT(INOUT) :: AP(*) 01576 INTEGER, INTENT(IN) :: INCX 01577 REAL(DP), INTENT(IN) :: X(*), ALPHA 01578 01579 END SUBROUTINE DSPR 01580 END INTERFACE 01581 INTERFACE 01582 ! ***************************************************************************** 01583 SUBROUTINE SSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01584 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01585 INTEGER, INTENT(IN) :: N 01586 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01587 SP = KIND(0.0) 01588 INTEGER, INTENT(IN) :: LDA 01589 REAL(SP), INTENT(INOUT) :: A(LDA,*) 01590 INTEGER, INTENT(IN) :: INCY 01591 REAL(SP), INTENT(IN) :: Y(*) 01592 INTEGER, INTENT(IN) :: INCX 01593 REAL(SP), INTENT(IN) :: X(*), ALPHA 01594 01595 END SUBROUTINE SSYR2 01596 END INTERFACE 01597 INTERFACE 01598 ! ***************************************************************************** 01599 SUBROUTINE DSYR2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA) 01600 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01601 INTEGER, INTENT(IN) :: N 01602 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01603 SP = KIND(0.0) 01604 INTEGER, INTENT(IN) :: LDA 01605 REAL(DP), INTENT(INOUT) :: A(LDA,*) 01606 INTEGER, INTENT(IN) :: INCY 01607 REAL(DP), INTENT(IN) :: Y(*) 01608 INTEGER, INTENT(IN) :: INCX 01609 REAL(DP), INTENT(IN) :: X(*), ALPHA 01610 01611 END SUBROUTINE DSYR2 01612 END INTERFACE 01613 INTERFACE 01614 ! ***************************************************************************** 01615 SUBROUTINE SSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) 01616 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01617 INTEGER, INTENT(IN) :: N 01618 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01619 SP = KIND(0.0) 01620 REAL(SP), INTENT(INOUT) :: AP(*) 01621 INTEGER, INTENT(IN) :: INCY 01622 REAL(SP), INTENT(IN) :: Y(*) 01623 INTEGER, INTENT(IN) :: INCX 01624 REAL(SP), INTENT(IN) :: X(*), ALPHA 01625 01626 END SUBROUTINE SSPR2 01627 END INTERFACE 01628 INTERFACE 01629 ! ***************************************************************************** 01630 SUBROUTINE DSPR2(UPLO,N,ALPHA,X,INCX,Y,INCY,AP) 01631 CHARACTER(LEN=1), INTENT(IN) :: UPLO 01632 INTEGER, INTENT(IN) :: N 01633 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01634 SP = KIND(0.0) 01635 REAL(DP), INTENT(INOUT) :: AP(*) 01636 INTEGER, INTENT(IN) :: INCY 01637 REAL(DP), INTENT(IN) :: Y(*) 01638 INTEGER, INTENT(IN) :: INCX 01639 REAL(DP), INTENT(IN) :: X(*), ALPHA 01640 01641 END SUBROUTINE DSPR2 01642 END INTERFACE 01643 ! 01644 ! Level 3 BLAS 01645 ! 01646 INTERFACE 01647 ! ***************************************************************************** 01648 SUBROUTINE SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01649 CHARACTER(LEN=1), INTENT(IN) :: TRANSA, TRANSB 01650 INTEGER, INTENT(IN) :: M, N, K 01651 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01652 SP = KIND(0.0) 01653 INTEGER, INTENT(IN) :: LDC 01654 REAL(SP), INTENT(INOUT) :: C(LDC,*) 01655 REAL(SP), INTENT(IN) :: BETA 01656 INTEGER, INTENT(IN) :: LDB 01657 REAL(SP), INTENT(IN) :: B(LDB,*) 01658 INTEGER, INTENT(IN) :: LDA 01659 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 01660 01661 END SUBROUTINE SGEMM 01662 END INTERFACE 01663 INTERFACE 01664 ! ***************************************************************************** 01665 SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01666 CHARACTER(LEN=1), INTENT(IN) :: TRANSA, TRANSB 01667 INTEGER, INTENT(IN) :: M, N, K 01668 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01669 SP = KIND(0.0) 01670 INTEGER, INTENT(IN) :: LDC 01671 REAL(DP), INTENT(INOUT) :: C(LDC,*) 01672 REAL(DP), INTENT(IN) :: BETA 01673 INTEGER, INTENT(IN) :: LDB 01674 REAL(DP), INTENT(IN) :: B(LDB,*) 01675 INTEGER, INTENT(IN) :: LDA 01676 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 01677 01678 END SUBROUTINE DGEMM 01679 END INTERFACE 01680 INTERFACE 01681 ! ***************************************************************************** 01682 SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01683 CHARACTER(LEN=1), INTENT(IN) :: TRANSA, TRANSB 01684 INTEGER, INTENT(IN) :: M, N, K 01685 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01686 SP = KIND(0.0) 01687 INTEGER, INTENT(IN) :: LDC 01688 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01689 COMPLEX(SP), INTENT(IN) :: BETA 01690 INTEGER, INTENT(IN) :: LDB 01691 COMPLEX(SP), INTENT(IN) :: B(LDB,*) 01692 INTEGER, INTENT(IN) :: LDA 01693 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01694 01695 END SUBROUTINE CGEMM 01696 END INTERFACE 01697 INTERFACE 01698 ! ***************************************************************************** 01699 SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01700 CHARACTER(LEN=1), INTENT(IN) :: TRANSA, TRANSB 01701 INTEGER, INTENT(IN) :: M, N, K 01702 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01703 SP = KIND(0.0) 01704 INTEGER, INTENT(IN) :: LDC 01705 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01706 COMPLEX(DP), INTENT(IN) :: BETA 01707 INTEGER, INTENT(IN) :: LDB 01708 COMPLEX(DP), INTENT(IN) :: B(LDB,*) 01709 INTEGER, INTENT(IN) :: LDA 01710 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 01711 01712 END SUBROUTINE ZGEMM 01713 END INTERFACE 01714 INTERFACE 01715 ! ***************************************************************************** 01716 SUBROUTINE SSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01717 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01718 INTEGER, INTENT(IN) :: M, N 01719 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01720 SP = KIND(0.0) 01721 INTEGER, INTENT(IN) :: LDC 01722 REAL(SP), INTENT(INOUT) :: C(LDC,*) 01723 REAL(SP), INTENT(IN) :: BETA 01724 INTEGER, INTENT(IN) :: LDB 01725 REAL(SP), INTENT(IN) :: B(LDB,*) 01726 INTEGER, INTENT(IN) :: LDA 01727 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 01728 01729 END SUBROUTINE SSYMM 01730 END INTERFACE 01731 INTERFACE 01732 ! ***************************************************************************** 01733 SUBROUTINE DSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01734 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01735 INTEGER, INTENT(IN) :: M, N 01736 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01737 SP = KIND(0.0) 01738 INTEGER, INTENT(IN) :: LDC 01739 REAL(DP), INTENT(INOUT) :: C(LDC,*) 01740 REAL(DP), INTENT(IN) :: BETA 01741 INTEGER, INTENT(IN) :: LDB 01742 REAL(DP), INTENT(IN) :: B(LDB,*) 01743 INTEGER, INTENT(IN) :: LDA 01744 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 01745 01746 END SUBROUTINE DSYMM 01747 END INTERFACE 01748 INTERFACE 01749 ! ***************************************************************************** 01750 SUBROUTINE CSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01751 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01752 INTEGER, INTENT(IN) :: M, N 01753 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01754 SP = KIND(0.0) 01755 INTEGER, INTENT(IN) :: LDC 01756 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01757 COMPLEX(SP), INTENT(IN) :: BETA 01758 INTEGER, INTENT(IN) :: LDB 01759 COMPLEX(SP), INTENT(IN) :: B(LDB,*) 01760 INTEGER, INTENT(IN) :: LDA 01761 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01762 01763 END SUBROUTINE CSYMM 01764 END INTERFACE 01765 INTERFACE 01766 ! ***************************************************************************** 01767 SUBROUTINE ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01768 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01769 INTEGER, INTENT(IN) :: M, N 01770 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01771 SP = KIND(0.0) 01772 INTEGER, INTENT(IN) :: LDC 01773 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01774 COMPLEX(DP), INTENT(IN) :: BETA 01775 INTEGER, INTENT(IN) :: LDB 01776 COMPLEX(DP), INTENT(IN) :: B(LDB,*) 01777 INTEGER, INTENT(IN) :: LDA 01778 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 01779 01780 END SUBROUTINE ZSYMM 01781 END INTERFACE 01782 INTERFACE 01783 ! ***************************************************************************** 01784 SUBROUTINE CHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01785 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01786 INTEGER, INTENT(IN) :: M, N 01787 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01788 SP = KIND(0.0) 01789 INTEGER, INTENT(IN) :: LDC 01790 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01791 COMPLEX(SP), INTENT(IN) :: BETA 01792 INTEGER, INTENT(IN) :: LDB 01793 COMPLEX(SP), INTENT(IN) :: B(LDB,*) 01794 INTEGER, INTENT(IN) :: LDA 01795 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01796 01797 END SUBROUTINE CHEMM 01798 END INTERFACE 01799 INTERFACE 01800 ! ***************************************************************************** 01801 SUBROUTINE ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01802 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO 01803 INTEGER, INTENT(IN) :: M, N 01804 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01805 SP = KIND(0.0) 01806 INTEGER, INTENT(IN) :: LDC 01807 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01808 COMPLEX(DP), INTENT(IN) :: BETA 01809 INTEGER, INTENT(IN) :: LDB 01810 COMPLEX(DP), INTENT(IN) :: B(LDB,*) 01811 INTEGER, INTENT(IN) :: LDA 01812 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 01813 01814 END SUBROUTINE ZHEMM 01815 END INTERFACE 01816 INTERFACE 01817 ! ***************************************************************************** 01818 SUBROUTINE SSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01819 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01820 INTEGER, INTENT(IN) :: N, K 01821 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01822 SP = KIND(0.0) 01823 INTEGER, INTENT(IN) :: LDC 01824 REAL(SP), INTENT(INOUT) :: C(LDC,*) 01825 REAL(SP), INTENT(IN) :: BETA 01826 INTEGER, INTENT(IN) :: LDA 01827 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 01828 01829 END SUBROUTINE SSYRK 01830 END INTERFACE 01831 INTERFACE 01832 ! ***************************************************************************** 01833 SUBROUTINE DSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01834 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01835 INTEGER, INTENT(IN) :: N, K 01836 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01837 SP = KIND(0.0) 01838 INTEGER, INTENT(IN) :: LDC 01839 REAL(DP), INTENT(INOUT) :: C(LDC,*) 01840 REAL(DP), INTENT(IN) :: BETA 01841 INTEGER, INTENT(IN) :: LDA 01842 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 01843 01844 END SUBROUTINE DSYRK 01845 END INTERFACE 01846 INTERFACE 01847 ! ***************************************************************************** 01848 SUBROUTINE CSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01849 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01850 INTEGER, INTENT(IN) :: N, K 01851 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01852 SP = KIND(0.0) 01853 INTEGER, INTENT(IN) :: LDC 01854 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01855 COMPLEX(SP), INTENT(IN) :: BETA 01856 INTEGER, INTENT(IN) :: LDA 01857 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01858 01859 END SUBROUTINE CSYRK 01860 END INTERFACE 01861 INTERFACE 01862 ! ***************************************************************************** 01863 SUBROUTINE ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01864 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01865 INTEGER, INTENT(IN) :: N, K 01866 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01867 SP = KIND(0.0) 01868 INTEGER, INTENT(IN) :: LDC 01869 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01870 COMPLEX(DP), INTENT(IN) :: BETA 01871 INTEGER, INTENT(IN) :: LDA 01872 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 01873 01874 END SUBROUTINE ZSYRK 01875 END INTERFACE 01876 INTERFACE 01877 ! ***************************************************************************** 01878 SUBROUTINE CHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01879 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01880 INTEGER, INTENT(IN) :: N, K 01881 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01882 SP = KIND(0.0) 01883 INTEGER, INTENT(IN) :: LDC 01884 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01885 REAL(SP), INTENT(IN) :: BETA 01886 INTEGER, INTENT(IN) :: LDA 01887 COMPLEX(SP), INTENT(IN) :: A(LDA,*) 01888 REAL(SP), INTENT(IN) :: ALPHA 01889 01890 END SUBROUTINE CHERK 01891 END INTERFACE 01892 INTERFACE 01893 ! ***************************************************************************** 01894 SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC) 01895 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01896 INTEGER, INTENT(IN) :: N, K 01897 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01898 SP = KIND(0.0) 01899 INTEGER, INTENT(IN) :: LDC 01900 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01901 REAL(DP), INTENT(IN) :: BETA 01902 INTEGER, INTENT(IN) :: LDA 01903 COMPLEX(DP), INTENT(IN) :: A(LDA,*) 01904 REAL(DP), INTENT(IN) :: ALPHA 01905 01906 END SUBROUTINE ZHERK 01907 END INTERFACE 01908 INTERFACE 01909 ! ***************************************************************************** 01910 SUBROUTINE SSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01911 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01912 INTEGER, INTENT(IN) :: N, K 01913 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01914 SP = KIND(0.0) 01915 INTEGER, INTENT(IN) :: LDC 01916 REAL(SP), INTENT(INOUT) :: C(LDC,*) 01917 REAL(SP), INTENT(IN) :: BETA 01918 INTEGER, INTENT(IN) :: LDB 01919 REAL(SP), INTENT(IN) :: B(LDB,*) 01920 INTEGER, INTENT(IN) :: LDA 01921 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 01922 01923 END SUBROUTINE SSYR2K 01924 END INTERFACE 01925 INTERFACE 01926 ! ***************************************************************************** 01927 SUBROUTINE DSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01928 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01929 INTEGER, INTENT(IN) :: N, K 01930 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01931 SP = KIND(0.0) 01932 INTEGER, INTENT(IN) :: LDC 01933 REAL(DP), INTENT(INOUT) :: C(LDC,*) 01934 REAL(DP), INTENT(IN) :: BETA 01935 INTEGER, INTENT(IN) :: LDB 01936 REAL(DP), INTENT(IN) :: B(LDB,*) 01937 INTEGER, INTENT(IN) :: LDA 01938 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 01939 01940 END SUBROUTINE DSYR2K 01941 END INTERFACE 01942 INTERFACE 01943 ! ***************************************************************************** 01944 SUBROUTINE CSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01945 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01946 INTEGER, INTENT(IN) :: N, K 01947 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01948 SP = KIND(0.0) 01949 INTEGER, INTENT(IN) :: LDC 01950 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01951 COMPLEX(SP), INTENT(IN) :: BETA 01952 INTEGER, INTENT(IN) :: LDB 01953 COMPLEX(SP), INTENT(IN) :: B(LDB,*) 01954 INTEGER, INTENT(IN) :: LDA 01955 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01956 01957 END SUBROUTINE CSYR2K 01958 END INTERFACE 01959 INTERFACE 01960 ! ***************************************************************************** 01961 SUBROUTINE ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01962 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01963 INTEGER, INTENT(IN) :: N, K 01964 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01965 SP = KIND(0.0) 01966 INTEGER, INTENT(IN) :: LDC 01967 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 01968 COMPLEX(DP), INTENT(IN) :: BETA 01969 INTEGER, INTENT(IN) :: LDB 01970 COMPLEX(DP), INTENT(IN) :: B(LDB,*) 01971 INTEGER, INTENT(IN) :: LDA 01972 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 01973 01974 END SUBROUTINE ZSYR2K 01975 END INTERFACE 01976 INTERFACE 01977 ! ***************************************************************************** 01978 SUBROUTINE CHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01979 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01980 INTEGER, INTENT(IN) :: N, K 01981 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01982 SP = KIND(0.0) 01983 INTEGER, INTENT(IN) :: LDC 01984 COMPLEX(SP), INTENT(INOUT) :: C(LDC,*) 01985 REAL(SP), INTENT(IN) :: BETA 01986 INTEGER, INTENT(IN) :: LDB 01987 COMPLEX(SP), INTENT(IN) :: B(LDB,*) 01988 INTEGER, INTENT(IN) :: LDA 01989 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 01990 01991 END SUBROUTINE CHER2K 01992 END INTERFACE 01993 INTERFACE 01994 ! ***************************************************************************** 01995 SUBROUTINE ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC) 01996 CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS 01997 INTEGER, INTENT(IN) :: N, K 01998 INTEGER, PARAMETER :: DP = KIND(0.0D0), 01999 SP = KIND(0.0) 02000 INTEGER, INTENT(IN) :: LDC 02001 COMPLEX(DP), INTENT(INOUT) :: C(LDC,*) 02002 REAL(DP), INTENT(IN) :: BETA 02003 INTEGER, INTENT(IN) :: LDB 02004 COMPLEX(DP), INTENT(IN) :: B(LDB,*) 02005 INTEGER, INTENT(IN) :: LDA 02006 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 02007 02008 END SUBROUTINE ZHER2K 02009 END INTERFACE 02010 INTERFACE 02011 ! ***************************************************************************** 02012 SUBROUTINE STRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02013 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02014 INTEGER, INTENT(IN) :: M, N 02015 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02016 SP = KIND(0.0) 02017 INTEGER, INTENT(IN) :: LDB 02018 REAL(SP), INTENT(INOUT) :: B(LDB,*) 02019 INTEGER, INTENT(IN) :: LDA 02020 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 02021 02022 END SUBROUTINE STRMM 02023 END INTERFACE 02024 INTERFACE 02025 ! ***************************************************************************** 02026 SUBROUTINE DTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02027 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02028 INTEGER, INTENT(IN) :: M, N 02029 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02030 SP = KIND(0.0) 02031 INTEGER, INTENT(IN) :: LDB 02032 REAL(DP), INTENT(INOUT) :: B(LDB,*) 02033 INTEGER, INTENT(IN) :: LDA 02034 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 02035 02036 END SUBROUTINE DTRMM 02037 END INTERFACE 02038 INTERFACE 02039 ! ***************************************************************************** 02040 SUBROUTINE CTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02041 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02042 INTEGER, INTENT(IN) :: M, N 02043 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02044 SP = KIND(0.0) 02045 INTEGER, INTENT(IN) :: LDB 02046 COMPLEX(SP), INTENT(INOUT) :: B(LDB,*) 02047 INTEGER, INTENT(IN) :: LDA 02048 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 02049 02050 END SUBROUTINE CTRMM 02051 END INTERFACE 02052 INTERFACE 02053 ! ***************************************************************************** 02054 SUBROUTINE ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02055 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02056 INTEGER, INTENT(IN) :: M, N 02057 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02058 SP = KIND(0.0) 02059 INTEGER, INTENT(IN) :: LDB 02060 COMPLEX(DP), INTENT(INOUT) :: B(LDB,*) 02061 INTEGER, INTENT(IN) :: LDA 02062 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 02063 02064 END SUBROUTINE ZTRMM 02065 END INTERFACE 02066 INTERFACE 02067 ! ***************************************************************************** 02068 SUBROUTINE STRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02069 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02070 INTEGER, INTENT(IN) :: M, N 02071 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02072 SP = KIND(0.0) 02073 INTEGER, INTENT(IN) :: LDB 02074 REAL(SP), INTENT(INOUT) :: B(LDB,*) 02075 INTEGER, INTENT(IN) :: LDA 02076 REAL(SP), INTENT(IN) :: A(LDA,*), ALPHA 02077 02078 END SUBROUTINE STRSM 02079 END INTERFACE 02080 INTERFACE 02081 ! ***************************************************************************** 02082 SUBROUTINE DTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02083 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02084 INTEGER, INTENT(IN) :: M, N 02085 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02086 SP = KIND(0.0) 02087 INTEGER, INTENT(IN) :: LDB 02088 REAL(DP), INTENT(INOUT) :: B(LDB,*) 02089 INTEGER, INTENT(IN) :: LDA 02090 REAL(DP), INTENT(IN) :: A(LDA,*), ALPHA 02091 02092 END SUBROUTINE DTRSM 02093 END INTERFACE 02094 INTERFACE 02095 ! ***************************************************************************** 02096 SUBROUTINE CTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02097 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02098 INTEGER, INTENT(IN) :: M, N 02099 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02100 SP = KIND(0.0) 02101 INTEGER, INTENT(IN) :: LDB 02102 COMPLEX(SP), INTENT(INOUT) :: B(LDB,*) 02103 INTEGER, INTENT(IN) :: LDA 02104 COMPLEX(SP), INTENT(IN) :: A(LDA,*), ALPHA 02105 02106 END SUBROUTINE CTRSM 02107 END INTERFACE 02108 INTERFACE 02109 ! ***************************************************************************** 02110 SUBROUTINE ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB) 02111 CHARACTER(LEN=1), INTENT(IN) :: SIDE, UPLO, TRANSA, DIAG 02112 INTEGER, INTENT(IN) :: M, N 02113 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02114 SP = KIND(0.0) 02115 INTEGER, INTENT(IN) :: LDB 02116 COMPLEX(DP), INTENT(INOUT) :: B(LDB,*) 02117 INTEGER, INTENT(IN) :: LDA 02118 COMPLEX(DP), INTENT(IN) :: A(LDA,*), ALPHA 02119 02120 END SUBROUTINE ZTRSM 02121 END INTERFACE 02122 INTERFACE 02123 ! ***************************************************************************** 02124 FUNCTION SDSDOT(N,ALPHA,X,INCX,Y,INCY) 02125 INTEGER, INTENT(IN) :: N 02126 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02127 SP = KIND(0.0) 02128 REAL(SP) :: SDSDOT 02129 INTEGER, INTENT(IN) :: INCY 02130 REAL(SP), INTENT(IN) :: Y(*) 02131 INTEGER, INTENT(IN) :: INCX 02132 REAL(SP), INTENT(IN) :: X(*), ALPHA 02133 02134 END FUNCTION SDSDOT 02135 END INTERFACE 02136 INTERFACE 02137 ! ***************************************************************************** 02138 FUNCTION DSDOT(N,X,INCX,Y,INCY) 02139 INTEGER, INTENT(IN) :: N 02140 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02141 SP = KIND(0.0) 02142 REAL(DP) :: DSDOT 02143 INTEGER, INTENT(IN) :: INCY 02144 REAL(SP), INTENT(IN) :: Y(*) 02145 INTEGER, INTENT(IN) :: INCX 02146 REAL(SP), INTENT(IN) :: X(*) 02147 02148 END FUNCTION DSDOT 02149 END INTERFACE 02150 INTERFACE 02151 ! ***************************************************************************** 02152 FUNCTION DCABS1(Z) 02153 INTEGER, PARAMETER :: DP = KIND(0.0D0), 02154 SP = KIND(0.0) 02155 REAL(DP) :: DCABS1 02156 COMPLEX(DP), INTENT(IN) :: Z 02157 02158 END FUNCTION DCABS1 02159 END INTERFACE 02160 END MODULE f77_blas_netlib
1.7.3