function NL = var_lik(p,y,D)

%VAR_LIK computes the likelihood of parameters, p, given y.
%
%INPUTS: (i)   p = [p(1),z(2),p(3)] = [range,sill,nug] for variogram.
%        (ii)  y = n-vector of observations
%        (iii) D = (nxn)-matrix of distances
%
%OUTPUTS: NL = Negative Likelihood Value

n = length(y) ;

U = ones(n,1) ;

%Compute Covariance Matrix, C

C = p(2)*U*U' - spher_mat(p,D) ;

%Correct C on diagonal (where nugget effect appears)

C = C + (p(3)*eye(n)) ; 

C = sparse(C) ;

%Compute Negative Likelihood

NL = (1/2)*log(det(C)) + (1/2)*(y'*inv(C)*y) ;


