1 : C GRADIF SOURCE AM 11/05/26 21:15:35 6982 2 : SUBROUTINE GRADIF (da, force, q, Gradfs, Gradfq) 3 : C Routine permettant le calcul des dérivées de la surface de charge par rapport à l'effort et au vecteur force et d'écrouissage 4 : 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : DIMENSION da(20),force(5),q(5),Gradfs(5),Gradfq(5),Xk9(4) 8 : * 9 : a=da(8) 10 : b=da(9) 11 : c=da(10) 12 : d=da(11) 13 : e=da(12) 14 : f=da(13) 15 : 16 : gamma=1. 17 : if (force(1).le.0) then 18 : Xnum1=0 19 : Xnum2=0 20 : else 21 : Xnum1=((force(1))**c)*((gamma-force(1))**d) 22 : Xnum2=((force(1))**(c-e))*((gamma-force(1))**(d-f)) 23 : endif 24 : Xk1 = force(2)/a 25 : Xk2 = force(3)*Xnum2/b 26 : Xk3 = force(4)/a 27 : Xk4 = force(5)*Xnum2/b 28 : Xk5 = q(1)*Xnum1 29 : Xk6 = q(2)*Xnum1 30 : Xk7 = q(3)*Xnum1 31 : Xk8 = q(4)*Xnum1 32 : 33 : Xk9(1)=Xk1-Xk5 34 : Xk9(2)=Xk2-Xk6 35 : Xk9(3)=Xk3-Xk7 36 : Xk9(4)=Xk4-Xk8 37 : 38 : if (force(1).le.0) then 39 : Xnum3=0 40 : Xnum4=0 41 : else 42 : Xnum3 = c*((force(1))**(c-1))*((gamma-force(1))**d) 43 : & -d*((force(1))**c)*((gamma-force(1))**(d-1)) 44 : Xnum4 =(c-e)*((force(1))**(c-e-1))*((gamma-force(1))**(d-f)) 45 : & -(d-f)*((force(1))**(c-e))*((gamma-force(1))*(d-f-1)) 46 : endif 47 : 48 : Gradfs(1) = -2*(Xk9(1)*q(1)*Xnum3-Xk9(2) 49 : & *(force(3)/b*Xnum4-q(2)*Xnum3) + Xk9(3)*q(3)*Xnum3 50 : & -Xk9(4)*(force(5)/b*Xnum4-q(4)*Xnum3) 51 : & +q(5)**2*Xnum1*Xnum3) 52 : 53 : Gradfs(2) = 2*Xk9(1)/a 54 : Gradfs(3) = 2*Xk9(2)*Xnum2/b 55 : Gradfs(4) = 2*Xk9(3)/a 56 : Gradfs(5) = 2*Xk9(4)*Xnum2/b 57 : 58 : if (force(1).le.0) then 59 : Xnum5=0 60 : Xnum6=0 61 : else 62 : Xnum5=((force(1))**c)*((gamma-force(1))**(d-1)) 63 : Xnum6=((force(1))**(c-e))*((gamma-force(1))**(d-f-1)) 64 : endif 65 : 66 : Gradfq(1) = -2*Xk9(1)*Xnum1 67 : Gradfq(2) = -2*Xk9(2)*Xnum1 68 : Gradfq(3) = -2*Xk9(3)*Xnum1 69 : Gradfq(4) = -2*Xk9(4)*Xnum1 70 : Gradfq(5) = -2*q(5)*Xnum1**2 71 : 72 : return 73 : end 74 :
© Cast3M 2003 - All rights reserved.
Disclaimer