1 : C CALCRTG1 SOURCE BR232186 12/10/04 21:15:09 7520 2 : SUBROUTINE CALCRTG1 (EPSIM,EPSIF,XGAMMT,XGAMMC,XGAMF,XALFA,XLAMM, 3 : & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR1DD1) 4 : C 5 : C====&===1=========2=========3=========4=========5=========6=========7== 6 : C Commentaires : Subroutine permettant de calculer l'operateur tangent 7 : C dR1/dd1 8 : C Appelé par la routine lcgldm.eso 9 : C 10 : C Auteur : B. Richard (Dr - Ing.) - CEA/DEN/DANS/DM2S/SEMT/EMSI 11 : C====&===1=========2=========3=========4=========5=========6=========7== 12 : C 13 : C----DECLARATION GENERALES---------------------------------------------- 14 : C 15 : IMPLICIT INTEGER(I-N) 16 : IMPLICIT REAL*8(A-H,O-Z) 17 : 18 : REAL*8 VAPM(3),VEPM(3,3),VAPF(3),VEPF(3,3) 19 : REAL*8 EPSIM(3,3),EPSIF(3,3) 20 : 21 : C Calcul des traces 22 : XTRA = EPSIM(1,1)+EPSIM(2,2) 23 : XTRAK = EPSIF(1,1)+EPSIF(2,2) 24 : 25 : C Calcul des valeurs propres 25 : CALL JACOB4(EPSIM,2,VAPM,VEPM) 25 : CALL JACOB4(EPSIF,2,VAPF,VEPF) 26 : 27 : C Calcul des constantes GM, GM1 et GM2 27 : CALL CALCGM(XTRA,XGAMMT,XGAMMC,XGM) 27 : CALL CALCGM(VAPM(1),XGAMMT,XGAMMC,XGM1) 27 : CALL CALCGM(VAPM(2),XGAMMT,XGAMMC,XGM2) 28 : 29 : C Calcul de dxim/dd1 30 : DXIMD1 = -1.0D0*XGM/(2.0D0*(1.0D0+XD1)**2.0D0) 31 : 32 : C Calcul de XIM 32 : CALL CALCXIM(XTRA,XGAMMT,XGAMMC,XD1,XD2,XIM) 33 : 34 : C Calcul de deps33/dd1 35 : DEP33D1 = (2.0D0*XLAMM*XMUM*XTRA)/ 36 : & ((2.0D0*XMUM+XLAMM*XIM)**2.0D0) 37 : 38 : DEP33D1 = DEP33D1*DXIMD1 39 : 40 : C Calcul du residu 1 lié à XD1 en trois parties 41 : XPART11 = 1.0D0/((1.0D0+XD1)**2.0D0)*(XLAMM/2.0D0* 42 : & (XTRA+XEPS33)*XGM)*DEP33D1 43 : 44 : XPART12 = 2.0D0/((1.0D0+XD1)**3.0D0)*(XLAMM/4.0D0* 45 : & (XTRA+XEPS33)**2.0D0)*XGM+XMUM/2.0D0* 46 : & (((VAPM(1)**2.0D0)*XGM1)+((VAPM(2)**2.0D0)*XGM2)) 47 : 48 : IF (XTRAK.GE.0.0D0) THEN 49 : IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN 50 : XCONS1 = 0.0D0 51 : XCONS2 = 0.0D0 52 : XCONS3 = 0.0D0 53 : ENDIF 54 : 55 : IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN 56 : XCONS1 = 0.0D0 57 : XCONS2 = 0.0D0 58 : XCONS3 = VAPF(2)**2.0D0 59 : ENDIF 60 : 61 : IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN 62 : XCONS1 = 0.0D0 63 : XCONS2 = VAPF(1)**2.0D0 64 : XCONS3 = 0.0D0 65 : ENDIF 66 : 67 : IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN 68 : XCONS1 = 0.0D0 69 : XCONS2 = VAPF(1)**2.0D0 70 : XCONS3 = VAPF(2)**2.0D0 71 : ENDIF 72 : ELSE 73 : IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN 74 : XCONS1 = XTRAK**2.0D0 75 : XCONS2 = 0.0D0 76 : XCONS3 = 0.0D0 77 : ENDIF 78 : 79 : IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN 80 : XCONS1 = XTRAK**2.0D0 81 : XCONS2 = 0.0D0 82 : XCONS3 = VAPF(2)**2.0D0 83 : ENDIF 84 : 85 : IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN 86 : XCONS1 = XTRAK**2.0D0 87 : XCONS2 = VAPF(1)**2.0D0 88 : XCONS3 = 0.0D0 89 : ENDIF 90 : 91 : IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN 92 : XCONS1 = XTRAK**2.0D0 93 : XCONS2 = VAPF(1)**2.0D0 94 : XCONS3 = VAPF(2)**2.0D0 95 : ENDIF 96 : ENDIF 97 : 98 : XPART13 = ((2.0D0*XALFA*(1.0D0-XGAMF))/(XALFA+XD1)**3.0D0)* 99 : & (XLAMF/2.0D0*XCONS1+XMUF*(XCONS2+XCONS3)) 100 : 101 : DR1DD1 = XPART11-XPART12-XPART13 102 : 103 : RETURN 104 : END 105 : 106 : 107 : 108 : 109 : 110 :
© Cast3M 2003 - All rights reserved.
Disclaimer