c c SUBROUTINE npend c c Copyright INRIA subroutine npend(neq,t,th,ydot) parameter (n=10) implicit doubleprecision (t) doubleprecision t,th(2*n),ydot(2*n),r(n),j(n),m(n) doubleprecision me3s(n,n),cc3s(n,n),const(n,1) doubleprecision w(3*n),rcond integer i,k,neq,ierr data g / 9.81/ data r / n*1.0/ data m / n*1.0/ data j / n*0.3/ t1 = -th(9) t4 = 2*m(10) t5 = m(9)+t4 t9 = 2*r(7)*r(9)*cos(th(7)+t1)*t5 t15 = 2*r(3)*r(9)*cos(th(3)+t1)*t5 t16 = -th(8) t19 = 2*m(9) t20 = m(8)+t4+t19 t24 = 2*r(7)*r(8)*cos(th(7)+t16)*t20 t25 = r(2)**2 t44 = -th(6) t47 = 2*m(7) t48 = 2*m(8) t49 = m(6)+t19+t4+t47+t48 t53 = 2*r(5)*r(6)*cos(th(5)+t44)*t49 t59 = 2*r(6)*r(9)*cos(th(6)+t1)*t5 t60 = -th(10) t66 = 2*r(5)*m(10)*r(10)*cos(th(5)+t60) t72 = 2*r(1)*r(8)*cos(th(1)+t16)*t20 t73 = -th(4) t76 = 2*m(5) t77 = 2*m(6) t78 = t48+m(4)+t19+t76+t47+t4+t77 t82 = 2*r(3)*r(4)*cos(th(3)+t73)*t78 t88 = 2*r(8)*r(9)*cos(th(8)+t1)*t5 t89 = r(5)**2 t102 = -th(7) t105 = t4+m(7)+t48+t19 t109 = 2*r(6)*r(7)*cos(th(6)+t102)*t105 t115 = 2*r(9)*m(10)*r(10)*cos(th(9)+t60) t116 = r(3)**2 t138 = 2*r(4)*r(9)*cos(th(4)+t1)*t5 t144 = 2*r(3)*m(10)*r(10)*cos(th(3)+t60) t150 = 2*r(4)*m(10)*r(10)*cos(th(4)+t60) t151 = -th(3) t154 = 2*m(4) t155 = t76+t154+t4+t48+t47+m(3)+t19+t77 t159 = 2*r(1)*r(3)*cos(th(1)+t151)*t155 t160 = r(8)**2 t167 = r(6)**2 t183 = 2*r(6)*m(10)*r(10)*cos(th(6)+t60) t184 = r(10)**2 t192 = 2*r(2)*r(4)*cos(th(2)+t73)*t78 t193 = r(9)**2 t198 = r(7)**2 t212 = 2*r(3)*r(6)*cos(th(3)+t44)*t49 t218 = 2*r(2)*r(3)*cos(th(2)+t151)*t155 t224 = 2*r(5)*r(9)*cos(th(5)+t1)*t5 t230 = 2*r(5)*r(7)*cos(th(5)+t102)*t105 t236 = 2*r(7)*m(10)*r(10)*cos(th(7)+t60) t242 = 2*r(1)*r(4)*cos(th(1)+t73)*t78 t248 = 2*r(1)*r(6)*cos(th(1)+t44)*t49 t254 = 2*r(2)*r(6)*cos(th(2)+t44)*t49 t260 = 2*r(2)*m(10)*r(10)*cos(th(2)+t60) t266 = 2*r(8)*m(10)*r(10)*cos(th(8)+t60) t267 = -th(5) t270 = t77+t48+t19+t47+m(5)+t4 t274 = 2*r(1)*r(5)*cos(th(1)+t267)*t270 t280 = 2*r(4)*r(5)*cos(th(4)+t267)*t270 t286 = 2*r(4)*r(7)*cos(th(4)+t102)*t105 t292 = 2*r(6)*r(8)*cos(th(6)+t16)*t20 t298 = 2*r(1)*r(9)*cos(th(1)+t1)*t5 t304 = 2*r(5)*r(8)*cos(th(5)+t16)*t20 t310 = 2*r(3)*r(5)*cos(th(3)+t267)*t270 t316 = 2*r(3)*r(7)*cos(th(3)+t102)*t105 t322 = 2*r(2)*r(7)*cos(th(2)+t102)*t105 t331 = 2*r(1)*r(2)*cos(th(1)-th(2))*(2*m(3)+m(2)+t154+t47+t4+t76+t +77+t19+t48) t332 = r(4)**2 t352 = 2*r(4)*r(8)*cos(th(4)+t16)*t20 t358 = 2*r(2)*r(5)*cos(th(2)+t267)*t270 t364 = 2*r(2)*r(9)*cos(th(2)+t1)*t5 t370 = 2*r(2)*r(8)*cos(th(2)+t16)*t20 t376 = 2*r(1)*r(7)*cos(th(1)+t102)*t105 t382 = 2*r(3)*r(8)*cos(th(3)+t16)*t20 t388 = 2*r(4)*r(6)*cos(th(4)+t44)*t49 t389 = r(1)**2 t417 = 2*r(1)*m(10)*r(10)*cos(th(1)+t60) me3s(9,7) = t9 me3s(3,9) = t15 me3s(8,7) = t24 me3s(2,2) = J(2)+4*t25*m(3)+4*t25*m(4)+4*t25*m(7)+4*t25*m(8)+m( +2)*t25+4*t25*m(9)+4*t25*m(5)+4*t25*m(10)+4*t25*m(6) me3s(6,5) = t53 me3s(9,6) = t59 me3s(10,5) = t66 me3s(8,1) = t72 me3s(4,3) = t82 me3s(9,8) = t88 me3s(5,5) = 4*t89*m(8)+4*t89*m(10)+4*t89*m(7)+4*t89*m(9)+4*t89* +m(6)+J(5)+m(5)*t89 me3s(7,6) = t109 me3s(10,9) = t115 me3s(3,3) = 4*t116*m(4)+4*t116*m(10)+4*t116*m(9)+4*t116*m(5)+4* +t116*m(6)+m(3)*t116+J(3)+4*t116*m(7)+4*t116*m(8) me3s(4,9) = t138 me3s(3,10) = t144 me3s(10,4) = t150 me3s(3,1) = t159 me3s(8,8) = 4*t160*m(9)+J(8)+m(8)*t160+4*t160*m(10) me3s(6,6) = m(6)*t167+4*t167*m(7)+4*t167*m(8)+J(6)+4*t167*m(9)+ +4*t167*m(10) me3s(10,6) = t183 me3s(10,10) = m(10)*t184+J(10) me3s(4,2) = t192 me3s(9,9) = 4*t193*m(10)+J(9)+m(9)*t193 me3s(7,7) = 4*t198*m(9)+4*t198*m(10)+4*t198*m(8)+J(7)+m(7)*t198 me3s(6,3) = t212 me3s(3,2) = t218 me3s(10,3) = t144 me3s(9,5) = t224 me3s(7,5) = t230 me3s(10,7) = t236 me3s(1,4) = t242 me3s(4,10) = t150 me3s(5,6) = t53 me3s(6,1) = t248 me3s(6,2) = t254 me3s(10,2) = t260 me3s(8,9) = t88 me3s(6,7) = t109 me3s(10,8) = t266 me3s(1,5) = t274 me3s(9,10) = t115 me3s(5,7) = t230 me3s(5,4) = t280 me3s(7,8) = t24 me3s(7,4) = t286 me3s(9,4) = t138 me3s(1,3) = t159 me3s(8,10) = t266 me3s(6,8) = t292 me3s(9,1) = t298 me3s(1,6) = t248 me3s(5,8) = t304 me3s(5,3) = t310 me3s(7,9) = t9 me3s(7,3) = t316 me3s(9,3) = t15 me3s(2,7) = t322 me3s(1,2) = t331 me3s(4,4) = 4*t332*m(10)+4*t332*m(9)+4*t332*m(6)+4*t332*m(5)+4* +t332*m(7)+J(4)+m(4)*t332+4*t332*m(8) me3s(4,1) = t242 me3s(6,9) = t59 me3s(8,4) = t352 me3s(4,5) = t280 me3s(3,4) = t82 me3s(5,9) = t224 me3s(5,2) = t358 me3s(7,10) = t236 me3s(7,2) = t322 me3s(9,2) = t364 me3s(2,8) = t370 me3s(1,7) = t376 me3s(6,10) = t183 me3s(8,3) = t382 me3s(4,6) = t388 me3s(3,5) = t310 me3s(2,9) = t364 me3s(7,1) = t376 me3s(1,8) = t72 me3s(5,10) = t66 me3s(2,4) = t192 me3s(8,2) = t370 me3s(4,7) = t286 me3s(3,6) = t212 me3s(2,1) = t331 me3s(1,1) = 4*t389*m(8)+4*t389*m(10)+m(1)*t389+4*t389*m(6)+4*t3 +89*m(9)+4*t389*m(7)+4*t389*m(2)+J(1)+4*t389*m(5)+4*t389*m(4)+4*t38 +9*m(3) me3s(2,10) = t260 me3s(1,9) = t298 me3s(10,1) = t417 me3s(2,5) = t358 me3s(4,8) = t352 me3s(3,7) = t316 me3s(8,5) = t304 me3s(2,3) = t218 me3s(1,10) = t417 me3s(5,1) = t274 me3s(2,6) = t254 me3s(3,8) = t382 me3s(8,6) = t292 me3s(6,4) = t388 t1 = -th(9) t4 = 2*m(10) t5 = m(9)+t4 t8 = r(7)*r(9)*sin(th(7)+t1)*t5 t14 = r(3)*r(9)*sin(th(3)+t1)*t5 t16 = -th(8) t19 = 2*m(9) t20 = m(8)+t4+t19 t23 = r(7)*r(8)*sin(th(7)+t16)*t20 t25 = -th(6) t28 = 2*m(7) t29 = 2*m(8) t30 = m(6)+t19+t4+t28+t29 t33 = r(5)*r(6)*sin(th(5)+t25)*t30 t39 = r(6)*r(9)*sin(th(6)+t1)*t5 t41 = -th(10) t46 = r(5)*m(10)*r(10)*sin(th(5)+t41) t52 = r(1)*r(8)*sin(th(1)+t16)*t20 t54 = -th(4) t57 = 2*m(5) t58 = 2*m(6) t59 = t29+m(4)+t19+t57+t28+t4+t58 t62 = r(3)*r(4)*sin(th(3)+t54)*t59 t68 = r(8)*r(9)*sin(th(8)+t1)*t5 t70 = -th(7) t73 = t4+m(7)+t29+t19 t76 = r(6)*r(7)*sin(th(6)+t70)*t73 t82 = r(9)*m(10)*r(10)*sin(th(9)+t41) t88 = r(4)*r(9)*sin(th(4)+t1)*t5 t94 = r(3)*m(10)*r(10)*sin(th(3)+t41) t100 = r(4)*m(10)*r(10)*sin(th(4)+t41) t102 = -th(3) t105 = 2*m(4) t106 = t57+t105+t4+t29+t28+m(3)+t19+t58 t109 = r(1)*r(3)*sin(th(1)+t102)*t106 t115 = r(6)*m(10)*r(10)*sin(th(6)+t41) t121 = r(2)*r(4)*sin(th(2)+t54)*t59 t127 = r(3)*r(6)*sin(th(3)+t25)*t30 t133 = r(2)*r(3)*sin(th(2)+t102)*t106 t140 = r(5)*r(9)*sin(th(5)+t1)*t5 t146 = r(5)*r(7)*sin(th(5)+t70)*t73 t152 = r(7)*m(10)*r(10)*sin(th(7)+t41) t158 = r(1)*r(4)*sin(th(1)+t54)*t59 t166 = r(1)*r(6)*sin(th(1)+t25)*t30 t172 = r(2)*r(6)*sin(th(2)+t25)*t30 t178 = r(2)*m(10)*r(10)*sin(th(2)+t41) t186 = r(8)*m(10)*r(10)*sin(th(8)+t41) t188 = -th(5) t191 = t58+t29+t19+t28+m(5)+t4 t194 = r(1)*r(5)*sin(th(1)+t188)*t191 t202 = r(4)*r(5)*sin(th(4)+t188)*t191 t209 = r(4)*r(7)*sin(th(4)+t70)*t73 t218 = r(6)*r(8)*sin(th(6)+t16)*t20 t224 = r(1)*r(9)*sin(th(1)+t1)*t5 t231 = r(5)*r(8)*sin(th(5)+t16)*t20 t237 = r(3)*r(5)*sin(th(3)+t188)*t191 t244 = r(3)*r(7)*sin(th(3)+t70)*t73 t251 = r(2)*r(7)*sin(th(2)+t70)*t73 t260 = r(1)*r(2)*sin(th(1)-th(2))*(2*m(3)+m(2)+t105+t28+t4+t57+t58 ++t19+t29) t268 = r(4)*r(8)*sin(th(4)+t16)*t20 t277 = r(2)*r(5)*sin(th(2)+t188)*t191 t285 = r(2)*r(9)*sin(th(2)+t1)*t5 t291 = r(2)*r(8)*sin(th(2)+t16)*t20 t297 = r(1)*r(7)*sin(th(1)+t70)*t73 t304 = r(3)*r(8)*sin(th(3)+t16)*t20 t310 = r(4)*r(6)*sin(th(4)+t25)*t30 t328 = r(1)*m(10)*r(10)*sin(th(1)+t41) cc3s(9,7) = -2*t8 cc3s(3,9) = 2*t14 cc3s(8,7) = -2*t23 cc3s(2,2) = 0 cc3s(6,5) = -2*t33 cc3s(9,6) = -2*t39 cc3s(10,5) = -2*t46 cc3s(8,1) = -2*t52 cc3s(4,3) = -2*t62 cc3s(9,8) = -2*t68 cc3s(5,5) = 0 cc3s(7,6) = -2*t76 cc3s(10,9) = -2*t82 cc3s(3,3) = 0 cc3s(4,9) = 2*t88 cc3s(3,10) = 2*t94 cc3s(10,4) = -2*t100 cc3s(3,1) = -2*t109 cc3s(8,8) = 0 cc3s(6,6) = 0 cc3s(10,6) = -2*t115 cc3s(10,10) = 0 cc3s(4,2) = -2*t121 cc3s(9,9) = 0 cc3s(7,7) = 0 cc3s(6,3) = -2*t127 cc3s(3,2) = -2*t133 cc3s(10,3) = -2*t94 cc3s(9,5) = -2*t140 cc3s(7,5) = -2*t146 cc3s(10,7) = -2*t152 cc3s(1,4) = 2*t158 cc3s(4,10) = 2*t100 cc3s(5,6) = 2*t33 cc3s(6,1) = -2*t166 cc3s(6,2) = -2*t172 cc3s(10,2) = -2*t178 cc3s(8,9) = 2*t68 cc3s(6,7) = 2*t76 cc3s(10,8) = -2*t186 cc3s(1,5) = 2*t194 cc3s(9,10) = 2*t82 cc3s(5,7) = 2*t146 cc3s(5,4) = -2*t202 cc3s(7,8) = 2*t23 cc3s(7,4) = -2*t209 cc3s(9,4) = -2*t88 cc3s(1,3) = 2*t109 cc3s(8,10) = 2*t186 cc3s(6,8) = 2*t218 cc3s(9,1) = -2*t224 cc3s(1,6) = 2*t166 cc3s(5,8) = 2*t231 cc3s(5,3) = -2*t237 cc3s(7,9) = 2*t8 cc3s(7,3) = -2*t244 cc3s(9,3) = -2*t14 cc3s(2,7) = 2*t251 cc3s(1,2) = 2*t260 cc3s(4,4) = 0 cc3s(4,1) = -2*t158 cc3s(6,9) = 2*t39 cc3s(8,4) = -2*t268 cc3s(4,5) = 2*t202 cc3s(3,4) = 2*t62 cc3s(5,9) = 2*t140 cc3s(5,2) = -2*t277 cc3s(7,10) = 2*t152 cc3s(7,2) = -2*t251 cc3s(9,2) = -2*t285 cc3s(2,8) = 2*t291 cc3s(1,7) = 2*t297 cc3s(6,10) = 2*t115 cc3s(8,3) = -2*t304 cc3s(4,6) = 2*t310 cc3s(3,5) = 2*t237 cc3s(2,9) = 2*t285 cc3s(7,1) = -2*t297 cc3s(1,8) = 2*t52 cc3s(5,10) = 2*t46 cc3s(2,4) = 2*t121 cc3s(8,2) = -2*t291 cc3s(4,7) = 2*t209 cc3s(3,6) = 2*t127 cc3s(2,1) = -2*t260 cc3s(1,1) = 0 cc3s(2,10) = 2*t178 cc3s(1,9) = 2*t224 cc3s(10,1) = -2*t328 cc3s(2,5) = 2*t277 cc3s(4,8) = 2*t268 cc3s(3,7) = 2*t244 cc3s(8,5) = -2*t231 cc3s(2,3) = 2*t133 cc3s(1,10) = 2*t328 cc3s(5,1) = -2*t194 cc3s(2,6) = 2*t172 cc3s(3,8) = 2*t304 cc3s(8,6) = -2*t218 cc3s(6,4) = -2*t310 t2 = 2*m(10) t3 = 2*m(9) t9 = 2*m(5) t10 = 2*m(4) t11 = 2*m(8) t12 = 2*m(7) t13 = 2*m(6) t39 = 2*m(3) const(8,1) = g*cos(th(8))*r(8)*(m(8)+t2+t3) const(3,1) = g*r(3)*cos(th(3))*(t9+t10+t2+t11+t12+m(3)+t3+t13) const(6,1) = g*r(6)*cos(th(6))*(m(6)+t3+t2+t12+t11) const(9,1) = g*r(9)*cos(th(9))*(m(9)+t2) const(4,1) = g*r(4)*cos(th(4))*(t11+m(4)+t3+t9+t12+t2+t13) const(7,1) = g*r(7)*cos(th(7))*(t2+m(7)+t11+t3) const(2,1) = g*r(2)*cos(th(2))*(t39+m(2)+t10+t12+t2+t9+t13+t3+t +11) const(1,1) = g*r(1)*cos(th(1))*(m(1)+t3+2*m(2)+t10+t39+t11+t12+ +t13+t9+t2) const(10,1) = m(10)*g*r(10)*cos(th(10)) const(5,1) = g*r(5)*cos(th(5))*(t13+t11+t3+t12+m(5)+t2) c do 1000, i =1,n ,1 ydot(i) = th(i+n) 1000 continue c c do 1001, i =1,n ,1 c do 1002, k =1,n ,1 Const(i,1) = Const(i,1)+CC3S(i,k)*(th(k+n)**2) 1002 continue c Const(i,1) = -Const(i,1) 1001 continue c c we must solve M z =const c which gives ydot((n+1)..2*n) call dlslv(me3s,n,n,Const,n,1,w, rcond,ierr,1) if (ierr.ne.0) then write(6,2000) 2000 format('Matrice mal conditionnee') endif c do 1003, i =1,n ,1 ydot(n+i) = const(i,1) 1003 continue c return end