function cm = dcm(px,wpx,rh,s0,em,r,d,h)

       
    function wx = w0(pm)
        gl1 = sqrt(d^4*em^3*r^6*(9*em*pm^2*r^2+16*d^2*s0^3));
        gl2 = (3*d^2*em^2*pm*r^4+gl1)^(1/3);
        wx = gl2/(2*2^(2/3)*d*em)-(d*r^2*s0)/(2^(1/3)*gl2); 
    end

    function dwx = dw0(pm)
        gl1 = sqrt(d^4*em^3*r^6*(9*em*pm^2*r^2+16*d^2*s0^3));
        gl2 = (3*d^2*em^2*pm*r^4+gl1)^(1/3);
        dwx = (d*em*r^4*(2*2^(1/3)*d^2*em*r^2*s0+gl2^2))/(2*2^(2/3)*gl1*gl2); 
    end

    function dwhx = dwh0(pm)
        gl1 = sqrt(d^4*em^3*r^6*(9*em*pm^2*r^2+16*d^2*s0^3));
        gl2 = (3*d^2*em^2*pm*r^4+gl1)^(1/3);
        dwhx = (8*d^3*em^3*r^4*h^2*(gl1+d^2*em*r^2*(3*em*pm*r^2+2*2^(1/3)*s0*gl2)))/(gl1*(-4*d^2*em*r^2*s0+2^(2/3)*gl2^2)^2); 
    end

    if wpx<0
        cm = 5e-12;
    elseif w0(px)<h
        cm = 1/2*pi*r^2*rh*dw0(px);
    else    
        cm = 1/2*pi*r^2*rh*dwh0(px);    
    end    
end