Download gradig.eso

Back to the list

   1 : C GRADIG    SOURCE    AM        11/05/26    21:15:36     6982           
   2 :       subroutine GRADIG (da, force, q, force_prec, Xkapai,
   3 :      & Xksii, Xkapa_prec, Xksi_prec, Gradgs, Xkapa, Xksi)
   4 : C     Routine permettant le calcul des dérivées de la loi d'écoulement par rapport à l'effort et au vecteur force et d'écrouissage
   5 : 
   6 :         IMPLICIT INTEGER(I-N)
   7 :         IMPLICIT REAL*8(A-H,O-Z)
   8 :         DIMENSION da(20), force(5), q(5), force_prec(5)
   9 :         DIMENSION Gradgs(5), Xk19(4), term_Gradgs1(4)
  10 : *
  11 :         a=da(8)
  12 :         b=da(9)
  13 :         c=da(10)
  14 :         d=da(11)
  15 :         e=da(12)
  16 :         f=da(13)
  17 : 
  18 :         gamma=1
  19 :         gamma_prec=1
  20 : 
  21 :         if (force(1).le.0) then
  22 :         den1=0
  23 :         den2=0
  24 :         else
  25 :         den1=q(5)*a*((force(1))**c)*((gamma-force(1))**d)
  26 :         den2=q(5)*b*((force(1))**e)*((gamma-force(1))**f)
  27 :         endif
  28 : 
  29 :         Xk11 = force(2)/den1
  30 :         Xk12 = force(3)/den2
  31 :         Xk13 = force(4)/den1
  32 :         Xk14 = force(5)/den2
  33 : 
  34 :         Xk15 = q(1)/q(5)
  35 :         Xk16 = q(2)/q(5)
  36 :         Xk17 = q(3)/q(5)
  37 :         Xk18 = q(4)/q(5)
  38 :         Xk19(1) = Xk11-Xk15
  39 :         Xk19(2) = Xk12-Xk16
  40 :         Xk19(3) = Xk13-Xk17
  41 :         Xk19(4) = Xk14-Xk18
  42 : *
  43 :         term_Gradgs1(1) = Xk19(1)*force(2)*d/den1*
  44 :      & (2*force(1)-gamma*(1-Xkapai))/
  45 :      & ((gamma-force(1))*(Xkapai*gamma+force(1)))
  46 :         term_Gradgs1(2) = Xk19(2)*force(3)*f/den2*
  47 :      & (2*force(1)-gamma*(1-Xksii))/
  48 :      & ((gamma-force(1))*(Xksii*gamma+force(1)))
  49 :         term_Gradgs1(3) = Xk19(3)*force(4)*d/den1*
  50 :      & (2*force(1)-gamma*(1-Xkapai))/
  51 :      & ((gamma-force(1))*(Xkapai*gamma+force(1)))
  52 :         term_Gradgs1(4) = Xk19(4)*force(5)*f/den2*
  53 :      & (2*force(1)-gamma*(1-Xksii))/
  54 :      & ((gamma-force(1))*(Xksii*gamma+force(1)))
  55 : 
  56 :         if (force_prec(1).le.gamma_prec*(1-Xkapai)/2) then
  57 :         term_Gradgs1(1)=0
  58 :         term_Gradgs1(3)=0
  59 :         Xkapa=1-2*force_prec(1)/gamma_prec
  60 :                 if (Xkapa.lt.Xkapa_prec) then
  61 : *pour empêcher Xkapa de diminuer
  62 :                 Xkapa=Xkapa_prec 
  63 :                 endif
  64 :         else
  65 :         Xkapa=Xkapai
  66 :         endif
  67 : 
  68 :         if (force_prec(1).le.gamma_prec*(1-Xksii)/2) then
  69 :         term_Gradgs1(2)=0
  70 :         term_Gradgs1(4)=0
  71 :         Xksi=1-2*force_prec(1)/gamma_prec
  72 :                 if (Xksi.lt.Xksi_prec) then
  73 : *pour empêcher Xksi de diminuer
  74 :                 Xksi=Xksi_prec
  75 :                 endif
  76 :         else
  77 :         Xksi=Xksii
  78 :         endif
  79 : 
  80 : 
  81 :         Gradgs(1) = abs(2*(term_Gradgs1(1)+term_Gradgs1(2)+
  82 :      & term_Gradgs1(3)+term_Gradgs1(4)))
  83 :         Gradgs(2) = 2*Xk19(1)/den1
  84 :         Gradgs(3) = 2*Xk19(2)/den2
  85 :         Gradgs(4) = 2*Xk19(3)/den1
  86 :         Gradgs(5) = 2*Xk19(4)/den2
  87 : *
  88 : C       Gradgs(1) =0
  88 :         call SCALPR(5,Gradgs,Gradgs,Xnorm_Gradgs)
  89 :         Xnorm_Gradgs=sqrt(Xnorm_Gradgs)
  90 :       DO I=1,5 
  91 :         Gradgs(I)=Gradgs(I)/Xnorm_Gradgs
  92 :       ENDDO
  93 :         return
  94 :         end
  95 :  

© Cast3M 2003 - All rights reserved.
Disclaimer