Conditional jump or move depends on uninitialized values : valgrind message

Hi,

I am calling the following function in my code. When I run th executable with valgrind, I get the following message :"Conditional jump or move depends upon uninitialized value".

I get this message for all fortran functions used in the code(dgetri_,dgetrf_ etc.). I also get this warning for the exp() function. Can anybody tell me where I am going wrong. BTW the function always returns correct values even if i run it for 1000 times.

Code:

double getlikelHood(double *r,double *sigtmp)

{

double *n;

int i,j;

double lwkopt;

int ctr;

int dim = DIMENSION;

double *work;

double alpha = 1;

double beta = 0;

double *y,*sigma;

char trans = 'N';

double y1;

double result;

double detVal,retVal;

int *iipiv,iinfo,wwork,iinc,mmone,lwork,*ipiv,size;

y = (double*)malloc(DIMENSION*sizeof(double));

sigma = (double*)malloc(DIMENSION*DIMENSION*sizeof(double));

n = (double*)malloc(DIMENSION*DIMENSION*sizeof(double));

mmone = -1;

iinc = 1;

for(i = 0;i<DIMENSION;i++)

{

for(j = 0;j<DIMENSION;j++)

{

*(sigma+i*DIMENSION+j) = *(sigtmp+i*DIMENSION+j);

*(n+i*DIMENSION+j) = *(sigtmp+i*DIMENSION+j);

}

}

detVal=0;

detVal=deter(n,DIMENSION);

ipiv = (int *)malloc(dim*dim*sizeof(int));

size = DIMENSION;

iinfo = 1;

dgetri_(&dim,n,&dim,ipiv,&lwkopt,&mmone,&iinfo);

lwork = (int)lwkopt;

work = (double*)malloc(lwork*lwork*sizeof(double));

dgetrf_(&dim,&dim,sigma,&size,ipiv,&iinfo);

dgetri_(&dim,sigma,&dim,ipiv,work,&lwork,&iinfo);

dgemv_(&trans,&size,&size,&alpha,sigma,&size,r,&iinc,&beta,y,&iinc);

result = -0.5*ddot_(&size,y,&iinc,r,&iinc);

retVal = exp(result)/sqrt(4*pi*pi*fabs(detVal));

free(y);

free(n);

free(work);

free(sigma);

free(ipiv);

return retVal;

}