Download gradif.eso

Back to the list

   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