1
subroutine intfdgemm(fname)
2
c***************************************************************************
3
c Example of interface: dgemm.f (BLAS3)
5
c C=fdgemm(alfa,A,B,beta,C)
7
c************************************************************************
12
logical checklhs,checkrhs
15
c*****************************************************
16
c 0-Check number of rhs and lhs arguments
17
c*****************************************************
23
if(.not.checkrhs(fname,minrhs,maxrhs)) return
24
if(.not.checklhs(fname,minlhs,maxlhs)) return
26
c*****************************************************
27
c 1-Get rhs parameters
28
c*****************************************************
30
if(.not.getrhsvar(1,'d', m1,n1, lalfa))return
32
if(.not.getrhsvar(2,'d', mA,nA, lA)) return
34
if(.not.getrhsvar(3,'d', mB,nB, lB)) return
36
if(.not.getrhsvar(4,'d', m4,n4, lbeta)) return
38
if(.not.getrhsvar(5,'d', mC,nC, lC)) return
41
if((nA.ne.mB).or.((m1*n1*m4*n4).ne.1)) then
42
call erro("Bad call to dgemm")
45
if((mA.ne.mC).or.(nB.ne.nC)) then
46
call erro("invalid matrix dims in "//fname(1:6))
51
call dgemm('n','n',m ,n ,k,stk(lalfa),
52
$ stk(lA),mA ,stk(lB),mB ,stk(lbeta) ,stk(lC),mC)