Télécharger depdpg.eso

Retour à la liste

Numérotation des lignes :

depdpg
  1. C DEPDPG SOURCE OF166741 24/10/07 21:15:11 12016
  2.  
  3. C=======================================================================
  4. C= D E P D P G =
  5. C= ----------- =
  6. C= Extraction du chpoint MCHPOI des deplacements (UZDPG,RXDPG,RYDPG) =
  7. C= du noeud IPDPGE support des deformations planes generalisees =
  8. C=======================================================================
  9.  
  10. SUBROUTINE DEPDPG (MCHPOI,UZDPG,RXDPG,RYDPG,IPDPGE)
  11.  
  12. IMPLICIT INTEGER(I-N)
  13. IMPLICIT REAL*8 (A-H,O-Z)
  14.  
  15. -INC PPARAM
  16. -INC CCOPTIO
  17. -INC CCREEL
  18.  
  19. -INC SMCHPOI
  20. -INC SMELEME
  21.  
  22. CHARACTER*(LOCOMP) NOCO
  23.  
  24. C 1 - Controle de la presence du noeud IPDPGE dans le chpoint MCHPOI
  25. C ERREUR si le noeud n'est pas present sauf si tout nul
  26. C Le chpoint est suppose ACTIF en E/S
  27. C ===
  28. NSOUPO=IPCHP(/1)
  29. DO i=1,NSOUPO
  30. MSOUPO=IPCHP(i)
  31. MELEME=IGEOC
  32. DO j = 1, NUM(/2)
  33. IF (NUM(1,j).EQ.IPDPGE) GOTO 10
  34. ENDDO
  35. ENDDO
  36. * rattrapage si champ nul
  37. xma=0.d0
  38. do i=1,NSOUPO
  39. MSOUPO=IPCHP(i)
  40. mpoval=ipoval
  41. if(mpoval.ne.0) then
  42. do iou=1,vpocha(/2)
  43. do iyu=1,vpocha(/1)
  44. if(abs(vpocha(iyu,iou)).gt.xma)xma=abs(vpocha(iyu,iou))
  45. enddo
  46. enddo
  47. endif
  48. enddo
  49. if(xma.lt.1.d-30) then
  50. UZDPG=0.d0
  51. RXDPG=0.D0
  52. RYDPG=0.D0
  53. RETURN
  54. endif
  55. CALL ERREUR(621)
  56. RETURN
  57.  
  58. C 2 - Extraction des deplacements generalises suivant le mode de calcul
  59. C Les composantes generalisees sont rangees dans l'ordre UZDPG,
  60. C RXDPG et RYDPG quelque soit le mode de calcul.
  61. C ERREUR si le nombre de composantes lues n'est pas correct
  62. C ===
  63. 10 CONTINUE
  64. MPOVAL=IPOVAL
  65. ICOCO=0
  66. C =====
  67. C 2.1 - Mode PLAN GENE (2D)
  68. C =====
  69. IF (IFOUR.EQ.-3) THEN
  70. DO i=1,NOCOMP(/2)
  71. NOCO=NOCOMP(i)
  72. IF (NOCO.EQ.'UZ ') THEN
  73. ICOCO=ICOCO+1
  74. UZDPG=VPOCHA(j,i)
  75. ELSE IF (NOCO.EQ.'RX ') THEN
  76. ICOCO=ICOCO+10
  77. RXDPG=VPOCHA(j,i)
  78. ELSE IF (NOCO.EQ.'RY ') THEN
  79. ICOCO=ICOCO+100
  80. RYDPG=VPOCHA(j,i)
  81. ENDIF
  82. ENDDO
  83. IF (ICOCO.NE.111) CALL ERREUR(621)
  84. C =====
  85. C 2.2 - Modes UNIDIMENSIONNELS (1D)
  86. C =====
  87. ELSE IF (IFOUR.EQ.7.OR.IFOUR.EQ.8) THEN
  88. RXDPG=XZero
  89. RYDPG=XZero
  90. DO i=1,NOCOMP(/2)
  91. NOCO=NOCOMP(i)
  92. IF (NOCO.EQ.'UY ') THEN
  93. ICOCO=ICOCO+1
  94. UZDPG=VPOCHA(j,i)
  95. ENDIF
  96. ENDDO
  97. IF (ICOCO.NE.1) CALL ERREUR(621)
  98. ELSE IF (IFOUR.EQ.9.OR.IFOUR.EQ.10.OR.IFOUR.EQ.14) THEN
  99. RXDPG=XZero
  100. RYDPG=XZero
  101. DO i=1,NOCOMP(/2)
  102. NOCO=NOCOMP(i)
  103. IF (NOCO.EQ.'UZ ') THEN
  104. ICOCO=ICOCO+1
  105. UZDPG=VPOCHA(j,i)
  106. ENDIF
  107. ENDDO
  108. IF (ICOCO.NE.1) CALL ERREUR(621)
  109. ELSE IF (IFOUR.EQ.11) THEN
  110. RYDPG=XZero
  111. DO i=1,NOCOMP(/2)
  112. NOCO=NOCOMP(i)
  113. IF (NOCO.EQ.'UZ ') THEN
  114. ICOCO=ICOCO+1
  115. UZDPG=VPOCHA(j,i)
  116. ELSE IF (NOCO.EQ.'UY ') THEN
  117. ICOCO=ICOCO+10
  118. RXDPG=VPOCHA(j,i)
  119. ENDIF
  120. ENDDO
  121. IF (ICOCO.NE.11) CALL ERREUR(621)
  122. ENDIF
  123.  
  124. RETURN
  125. END
  126.  
  127.  
  128.  

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