calcrtg2
C CALCRTG2 SOURCE BR232186 12/10/04 21:15:10 7520 & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR2DD2) C C====&===1=========2=========3=========4=========5=========6=========7== C Commentaires : Subroutine permettant de calculer l'operateur tangent C dR2/dd2 C Appelé par la routine lcgldm.eso C C Auteur : B. Richard (Dr - Ing.) - CEA/DEN/DANS/DM2S/SEMT/EMSI C====&===1=========2=========3=========4=========5=========6=========7== C C----DECLARATION GENERALES---------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 VAPM(3),VEPM(3,3),VAPF(3),VEPF(3,3) REAL*8 EPSIM(3,3),EPSIF(3,3) C Calcul des traces XTRA = EPSIM(1,1)+EPSIM(2,2) XTRAK = EPSIF(1,1)+EPSIF(2,2) C Calcul des valeurs propres C Calcul des constantes GM, GM1 et GM2 C Calcul de dxim/dd2 DXIMD2 = -1.0D0*XGM/(2.0D0*(1.0D0+XD2)**2.0D0) C Calcul de XIM C Calcul de deps33/dd2 DEP33D2 = (2.0D0*XLAMM*XMUM*XTRA)/ & ((2.0D0*XMUM+XLAMM*XIM)**2.0D0) DEP33D2 = DEP33D2*DXIMD2 C Calcul du residu 2 lié à XD2 en trois parties XPART21 = 1.0D0/((1.0D0+XD2)**2.0D0)*(XLAMM/2.0D0* & (XTRA+XEPS33)*XGM)*DEP33D2 XPART22 = 2.0D0/((1.0D0+XD2)**3.0D0)*(XLAMM/4.0D0* & (XTRA+XEPS33)**2.0D0)*XGM+XMUM/2.0D0* & (((VAPM(1)**2.0D0)*XGM1)+((VAPM(2)**2.0D0)*XGM2)) IF (XTRAK.LT.0.0D0) THEN IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN XCONS1 = 0.0D0 XCONS2 = 0.0D0 XCONS3 = 0.0D0 ENDIF IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN XCONS1 = 0.0D0 XCONS2 = 0.0D0 XCONS3 = VAPF(2)**2.0D0 ENDIF IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN XCONS1 = 0.0D0 XCONS2 = VAPF(1)**2.0D0 XCONS3 = 0.0D0 ENDIF IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN XCONS1 = 0.0D0 XCONS2 = VAPF(1)**2.0D0 XCONS3 = VAPF(2)**2.0D0 ENDIF ELSE IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN XCONS1 = XTRAK**2.0D0 XCONS2 = 0.0D0 XCONS3 = 0.0D0 ENDIF IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN XCONS1 = XTRAK**2.0D0 XCONS2 = 0.0D0 XCONS3 = VAPF(2)**2.0D0 ENDIF IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN XCONS1 = XTRAK**2.0D0 XCONS2 = VAPF(1)**2.0D0 XCONS3 = 0.0D0 ENDIF IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN XCONS1 = XTRAK**2.0D0 XCONS2 = VAPF(1)**2.0D0 XCONS3 = VAPF(2)**2.0D0 ENDIF ENDIF XPART23 = ((2.0D0*XALFA*(1.0D0-XGAMF))/(XALFA+XD2)**3.0D0)* & (XLAMF/2.0D0*XCONS1+XMUF*(XCONS2+XCONS3)) DR2DD2 = XPART21-XPART22-XPART23 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales