Télécharger credef.eso

Retour à la liste

Numérotation des lignes :

credef
  1. C CREDEF SOURCE CB215821 23/01/25 21:15:08 11573
  2. C CE SOUS-PROGRAMME CREE LES CHAMPS DE COORDONNEES ASSOCIES AUX
  3. C DEFORMES. IL ACTUALISE LES ELEMENTS SUR CES CHAMPS
  4. C
  5. SUBROUTINE CREDEF(KABEL,KABCOR,KABCPR,MDEFOR,LABCO2,sdef)
  6. IMPLICIT INTEGER(I-N)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10. -INC CCREEL
  11. -INC SMELEME
  12. -INC SMCOORD
  13. -INC SMCHPOI
  14. -INC SMDEFOR
  15. -INC SMVECTE
  16. -INC SMLMOTS
  17. SEGMENT KABEL(NDEF)
  18. SEGMENT KABCOR(NDEF)
  19. SEGMENT KABCPR(NDEF)
  20. SEGMENT LABCO2(3,NDEF)
  21. SEGMENT SXCO
  22. REAL XCO(IDIM,NCO)
  23. ENDSEGMENT
  24. SEGMENT ICPR(nbpts)
  25. c* segment sdef non utilise ?
  26. SEGMENT SDEF
  27. REAL AMPIMP(NDEF)
  28. ENDSEGMENT
  29.  
  30. IDIMP1 = IDIM + 1
  31.  
  32. ************************************************************************
  33. * COMPOSANTES DU DEPLACEMENT SELON MODE DE CALCUL
  34. ************************************************************************
  35. JGN = LOCHPO
  36. JGM = IDIM
  37. SEGINI,MLMOTS
  38. IF (IFOMOD.EQ.2 .OR. IFOMOD.EQ.6) THEN
  39. MLMOTS.MOTS(1) = 'UX '
  40. MLMOTS.MOTS(2) = 'UY '
  41. MLMOTS.MOTS(3) = 'UZ '
  42. ELSE IF (IFOMOD.EQ.-1) THEN
  43. MLMOTS.MOTS(1) = 'UX '
  44. MLMOTS.MOTS(2) = 'UY '
  45. ELSE IF (IFOMOD.EQ.0 .OR. IFOMOD.EQ.1) THEN
  46. MLMOTS.MOTS(1) = 'UR '
  47. MLMOTS.MOTS(2) = 'UZ '
  48. ELSE IF (IFOMOD.EQ.3) THEN
  49. MLMOTS.MOTS(1) = 'UX '
  50. ELSE IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN
  51. MLMOTS.MOTS(1) = 'UR '
  52. ELSE
  53. CALL ERREUR(5)
  54. RETURN
  55. ENDIF
  56.  
  57. ************************************************************************
  58. *
  59. ************************************************************************
  60. SEGACT MDEFOR
  61. NDEF=AMPL(/1)
  62.  
  63. LABCO2=0
  64. SEGINI KABEL,KABCOR,KABCPR,LABCO2
  65.  
  66. SEGACT,MCOORD
  67. DO 200 IDEF=1,NDEF
  68. SEGINI ICPR
  69. KABCPR(IDEF)=ICPR
  70. DO I=1,nbpts
  71. ICPR(I)=0
  72. ENDDO
  73. MELEME=IELDEF(IDEF)
  74. KABEL(IDEF)=MELEME
  75. CALL ACTOBJ('MAILLAGE',MELEME,1)
  76. NBSOUS=LISOUS(/1)
  77. IPT1=MELEME
  78. NCO = 0
  79. DO ISOUS=1,MAX(1,NBSOUS)
  80. IF (NBSOUS.NE.0) IPT1=LISOUS(ISOUS)
  81. DO J=1,IPT1.NUM(/2)
  82. DO I=1,IPT1.NUM(/1)
  83. IP=IPT1.NUM(I,J)
  84. IF (ICPR(IP).EQ.0) THEN
  85. NCO=NCO+1
  86. ICPR(IP)=NCO
  87. ENDIF
  88. ENDDO
  89. ENDDO
  90. ENDDO
  91. C MAINTENANT CREER LES COORDONNEES DEFORMES
  92. SEGINI sxco
  93. DO J=1,nbpts
  94. IPC=ICPR(J)
  95. IF (IPC.NE.0) THEN
  96. IREF=IDIMP1*(J-1)
  97. DO I=1,IDIM
  98. XCO(I,IPC)=XCOOR(IREF+I)
  99. ENDDO
  100. ENDIF
  101. ENDDO
  102. KABCOR(IDEF)=SXCO
  103. IF (AMPIMP(IDEF).LT.REAL(XSGRAN)/2.D0) THEN
  104. AMP=AMPIMP(IDEF)
  105. ELSE
  106. AMP=AMPL(IDEF)
  107. ENDIF
  108. MCHPOI=ICHDEF(IDEF)
  109. CALL ACTOBJ('CHPOINT ',MCHPOI,1)
  110. NSOUPO=IPCHP(/1)
  111. DO ISOUP = 1, NSOUPO
  112. MSOUPO=IPCHP(ISOUP)
  113. MPOVAL=IPOVAL
  114. IPT2=IGEOC
  115. NC=NOCOMP(/2)
  116. DO IC=1,NC
  117. DO INUM = 1, IDIM
  118. IF (NOCOMP(IC).EQ.MLMOTS.MOTS(INUM)) THEN
  119. DO J = 1, IPT2.NUM(/2)
  120. IP=ICPR(IPT2.NUM(1,J))
  121. IF (IP.NE.0) THEN
  122. XCO(INUM,IP)=XCO(INUM,IP)+AMP*VPOCHA(J,IC)
  123. ENDIF
  124. ENDDO
  125. ENDIF
  126. ENDDO
  127. ENDDO
  128. ENDDO
  129. MVECTE = MTVECT(IDEF)
  130. LABCO2(3,IDEF) = MVECTE
  131. IF (MVECTE.NE.0) THEN
  132. C IL FAUT ICI REGARDER LES VECTEURS QUI SONT DANS LA DEFORME
  133. CALL CREVEC(MELEME,ICPR,KABCOR,LABCO2,MVECTE,IDEF)
  134. ENDIF
  135. 200 CONTINUE
  136.  
  137. SEGSUP,MLMOTS
  138.  
  139. C RETURN
  140. END
  141.  
  142.  

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