MetroCmpOne <- function(para.mc0, cmp.data, cmp.data.s1, shape.prior,
                        time.tau=2.0, covmat=diag(length(para.mc0)), 
                        prob=0.5, covcoef=0.5, ...){
  center0 <- c(rep(0, length(para.mc0)-2),rep(1,2)) 
  para.mc0.y <- log(para.mc0 - center0)
  para.mc.prosy <- rmvnormmix(1, mean1 = para.mc0.y, sigma1=covmat,
                              mean2 = para.mc0.y, sigma2 = covmat*covcoef, prob=prob)
  para.mc.prosx <- exp(para.mc.prosy) + center0
  if(para.mc.prosx[length(para.mc0)] > 50){
    para.mc.prosx[length(para.mc0)] <- 50
  }
  fd.prosy.0 <- dmvnormmix(para.mc.prosy, mean1=para.mc0.y, sigma1 = covmat,
                           mean2 = para.mc0.y, sigma2 = covmat*covcoef, prob=prob)
  jacc.val <- prod(abs(1/(para.mc.prosx - center0)))
  fd.prosx.0 <-  fd.prosy.0 * jacc.val
  
  fd.0.prosy <- dmvnormmix(para.mc0.y, mean=para.mc.prosy, sigma1 = covmat,
                           mean2 = para.mc.prosy, sigma2 = covmat*covcoef, prob=prob)
  jacc.val.0 <- prod(abs(1/(para.mc0 - center0)))
  fd.0.prosx <-  fd.0.prosy * jacc.val.0
  pi.prosx <- loglikef(para.mc.prosx, cmp.data = cmp.data, cmp.data.s1=cmp.data.s1, 
                       shape.prior=shape.prior, time.tau=time.tau, ...)
  pi.0x <- loglikef(para.mc0, cmp.data = cmp.data, cmp.data.s1=cmp.data.s1,
                    shape.prior=shape.prior, time.tau=time.tau, ...)
  acprob <- min(c(1, exp(pi.prosx - pi.0x) * (fd.0.prosx/fd.prosx.0)))
  if(is.nan(acprob)){
    acprob <- 0
  }
  list(acprob=acprob, para.mc.prosx=para.mc.prosx, para.mc0=para.mc0)
}
