I found a problem and maybe some of you could help-me.
In order to solve problems with a blas function in a bigger program, I've tried to make a shorter program to test linking options. So I can easily compile and run this short program with blas calls:
real(8):: a(6000,6000), b(6000,4000), c(6000,4000), d(6000), e(6000), alpha, beta
integer(8)::m, n, lda, ldb, ldc, i, j
uplo = 'u'
side = 'l'
m = 6000
n = 4000
lda = m
ldb = m
ldc = m
alpha = 0.5
beta = 2.0
call dsymv('u', 3000, alpha, a, 6000, d, 1, beta, e, 1)
call dsymm (side, uplo, m, n, alpha,a, lda, b, ldb, beta, c, ldc)
With this simple command: ifort teste_mkl.f90 -mkl
And no "use" statement in the source code. However, if i try uncomment:
alpha=ddot(m, d, i, e, i)
alpha=ddot(6000, d, 1, e, 1)
I get the message
"teste_mkl.f90(51): error #6404: This name does not have a type, and must have an explicit type. [DDOT]
alpha= ddot(m, d, i, e, i)
compilation aborted for teste_mkl.f90 (code 1)"
When I replace ddot f77 call by dot(d,e) f95 call, add "use mkl_blas95" and "use mkl_lapack95" in the source code and compile with "ifort -mkl teste_mkl.f90 -lmkl_blas95_ilp64 -lmkl_lapack95_ilp64" every thingworks fine.
But I don't want to use blas95 (portability issues). What I'm doing wrong with ddot f77 call? I can compile and use other blas routines through f77 call without problems in the same program.
Thanks for your attention.