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