Télécharger calcrtg2.eso

Retour à la liste

Numérotation des lignes :

calcrtg2
  1. C CALCRTG2 SOURCE BR232186 12/10/04 21:15:10 7520
  2. SUBROUTINE CALCRTG2 (EPSIM,EPSIF,XGAMMT,XGAMMC,XGAMF,XALFA,XLAMM,
  3. & XMUM,XLAMF,XMUF,XD1,XD2,XEPS33,DR2DD2)
  4. C
  5. C====&===1=========2=========3=========4=========5=========6=========7==
  6. C Commentaires : Subroutine permettant de calculer l'operateur tangent
  7. C dR2/dd2
  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
  26. CALL JACOB4(EPSIM,2,VAPM,VEPM)
  27. CALL JACOB4(EPSIF,2,VAPF,VEPF)
  28.  
  29. C Calcul des constantes GM, GM1 et GM2
  30. CALL CALCGM(XTRA,XGAMMT,XGAMMC,XGM)
  31. CALL CALCGM(VAPM(1),XGAMMT,XGAMMC,XGM1)
  32. CALL CALCGM(VAPM(2),XGAMMT,XGAMMC,XGM2)
  33.  
  34. C Calcul de dxim/dd2
  35. DXIMD2 = -1.0D0*XGM/(2.0D0*(1.0D0+XD2)**2.0D0)
  36.  
  37. C Calcul de XIM
  38. CALL CALCXIM(XTRA,XGAMMT,XGAMMC,XD1,XD2,XIM)
  39.  
  40. C Calcul de deps33/dd2
  41. DEP33D2 = (2.0D0*XLAMM*XMUM*XTRA)/
  42. & ((2.0D0*XMUM+XLAMM*XIM)**2.0D0)
  43.  
  44. DEP33D2 = DEP33D2*DXIMD2
  45.  
  46. C Calcul du residu 2 lié à XD2 en trois parties
  47. XPART21 = 1.0D0/((1.0D0+XD2)**2.0D0)*(XLAMM/2.0D0*
  48. & (XTRA+XEPS33)*XGM)*DEP33D2
  49.  
  50. XPART22 = 2.0D0/((1.0D0+XD2)**3.0D0)*(XLAMM/4.0D0*
  51. & (XTRA+XEPS33)**2.0D0)*XGM+XMUM/2.0D0*
  52. & (((VAPM(1)**2.0D0)*XGM1)+((VAPM(2)**2.0D0)*XGM2))
  53.  
  54. IF (XTRAK.LT.0.0D0) THEN
  55. IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN
  56. XCONS1 = 0.0D0
  57. XCONS2 = 0.0D0
  58. XCONS3 = 0.0D0
  59. ENDIF
  60.  
  61. IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN
  62. XCONS1 = 0.0D0
  63. XCONS2 = 0.0D0
  64. XCONS3 = VAPF(2)**2.0D0
  65. ENDIF
  66.  
  67. IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN
  68. XCONS1 = 0.0D0
  69. XCONS2 = VAPF(1)**2.0D0
  70. XCONS3 = 0.0D0
  71. ENDIF
  72.  
  73. IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN
  74. XCONS1 = 0.0D0
  75. XCONS2 = VAPF(1)**2.0D0
  76. XCONS3 = VAPF(2)**2.0D0
  77. ENDIF
  78. ELSE
  79. IF ((VAPF(1).LT.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN
  80. XCONS1 = XTRAK**2.0D0
  81. XCONS2 = 0.0D0
  82. XCONS3 = 0.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 = 0.0D0
  88. XCONS3 = VAPF(2)**2.0D0
  89. ENDIF
  90.  
  91. IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).LT.0.0D0)) THEN
  92. XCONS1 = XTRAK**2.0D0
  93. XCONS2 = VAPF(1)**2.0D0
  94. XCONS3 = 0.0D0
  95. ENDIF
  96.  
  97. IF ((VAPF(1).GE.0.0D0).AND.(VAPF(2).GE.0.0D0)) THEN
  98. XCONS1 = XTRAK**2.0D0
  99. XCONS2 = VAPF(1)**2.0D0
  100. XCONS3 = VAPF(2)**2.0D0
  101. ENDIF
  102. ENDIF
  103.  
  104. XPART23 = ((2.0D0*XALFA*(1.0D0-XGAMF))/(XALFA+XD2)**3.0D0)*
  105. & (XLAMF/2.0D0*XCONS1+XMUF*(XCONS2+XCONS3))
  106.  
  107. DR2DD2 = XPART21-XPART22-XPART23
  108.  
  109. RETURN
  110. END
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales