On Thu, Apr 5, 2012 at 04:54, Alexander Grayver <agrayver@gfz-potsdam.de> wrote:
The inconsistency is still there. I pulled petsc-dev today and came across with the same problem:

src/vec/vec/impls/seq/bvec2.c
239:    *z = PetscRealPart(BLASdot_(&bn,xx,&one,xx,&one));
240:    *z = PetscSqrtReal(*z);

This doesn't work with Intel MKL. However in one of the mailing list discussions it was said there is now check for that.
This check didn't work for me apparently. Any ideas why?

As always, we need configure.log.

In include/petscblaslapack_uscore.h (and other places), you will find the following. So we need to know why PETSC_COMPLEX_DOT_RESULT_ARGUMENT was not found by configure.

#ifdef PETSC_COMPLEX_DOT_RESULT_ARGUMENT
EXTERN_C_BEGIN
extern void zdotc_(PetscScalar *,const PetscBLASInt*,const PetscScalar*,const PetscBLASInt*,const PetscScalar*,const PetscBLASInt*);
PETSC_STATIC_INLINE PetscScalar BLASdot_(const PetscBLASInt *n,const PetscScalar *x,const PetscBLASInt *sx,const PetscScalar *y,const PetscBLASInt *sy) {
  PetscScalar tmpz;
  zdotc_(&tmpz,n,x,sx,y,sy);
  return tmpz;
}
EXTERN_C_END
#else
#  define BLASdot_     zdotc_
#endif