CP2K 2.4 (Revision 12889)

f77_blas_netlib.f90

Go to the documentation of this file.
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