do i=2,n if(x(2).ge.(k2+k1)) then if(x(2)-k2-k1.gt.k1)then k2=k2+k1 b(i)=k2 else b(i)=x(2) k2=x(2) endif else k2=k2+k1 b(i)=k2 endif enddo b(1)=x(4) do i=1,n+1 if (i.eq.(n+1)) b(i+1)=x(5) enddo
do i=1,n+1 if(x(2).ge.b(i)) then yup(i)=(y(2)/(x(2)-x(1)))*b(i)-x(1)*y(2)/(x(2)-x(1)) else yup(i)=y(2) endif enddo
do i=1,n (여기랑) k1=2*y(3)+sqrt(4*y(3)*y(3)-4*(y(3)*y(3)+rbc(i)*rbc(i)+x(3)*x(3)-r*r- + 2*x(3)*b(i)))/2 k2=(2*y(3)-sqrt(4*y(3)*y(3)-4*(y(3)*y(3)+rbc(i)*rbc(i)+x(3)*x(3)-r*r- + 2*x(3)*b(i))))/2
if(y(3).ge.k2) then ryc(i)=k2 else ryc(i)=k1 endif enddo
do i=1,n rb(i)=b(i+1)-b(i) enddo
do i=1,n rbc(i)=b(i)+rb(i)/2 enddo
A(1)=0.5*rb(1)*(yup(2)-ydn(2)) do i=1,n if (i.eq.n) A(i)=0.5*rb(i)*(yup(i-1)-ydn(i-1)) enddo do i=2,n-1 a(i)=0.5*rb(i)*((yup(i)-ydn(i))+(yup(i+1)-ydn(i+1))) enddo
l=sqrt(rb(1)*rb(1)+ydn(2)*ydn(2)) do i=1,n if (i.eq.n) l=l+sqrt(rb(i)*rb(i)+ydn(i-1)*ydn(i-1)) enddo do i=2,n-1 l=l+sqrt((ydn(i+1)-ydn(i))*(ydn(i+1)-ydn(i))+rb(i)*rb(i)) enddo
do i=1,n w=w+uw*A(i) enddo
do i=1,n (여기) k1=(2*y(3)+sqrt(4*y(3)*y(3)-4*(y(3)*y(3)+b(i)*b(i)+x(3)*x(3)-r*r + -2*x(3)*b(i))))/2 k2=(2*y(3)-sqrt(4*y(3)*y(3)-4*(y(3)*y(3)+b(i)*b(i)+x(3)*x(3)-r*r + -2*x(3)*b(i))))/2
if(y(3).ge.k2) then ydn(i)=k2 else ydn(i)=k1 endif enddo
do i=1,n m(i)=-(rbc(i)-x(3))/(ryc(i)-y(3)) ad(i)=atan(m(i)) enddo
do i=1,n ws=ws+uw*a(i)*sin(ad(i)) wc=wc+uw*a(i)*cos(ad(i)) enddo