Télécharger kdme.eso

Retour à la liste

Numérotation des lignes :

kdme
  1. C KDME SOURCE GOUNAND 25/11/12 21:15:16 12399
  2. SUBROUTINE KDME
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C*************************************************************************
  6. C
  7. C OBJET : Cree un CHAMPOINT CENTRE contenant le diametre max des
  8. C éléments du domaine
  9. C
  10. C SYNTAXE : CHPC = KDME OBJDOM ;
  11. C
  12. C OBJDOM : TABLE de SOUSTYPE DOMAINE
  13. C
  14. C*************************************************************************
  15. -INC CCREEL
  16.  
  17. -INC PPARAM
  18. -INC CCOPTIO
  19. -INC SMELEME
  20. -INC SMCOORD
  21. -INC SMCHPOI
  22.  
  23. PARAMETER (NTB=1)
  24. CHARACTER*8 LTAB(NTB),TYPE,TYPC
  25. DIMENSION KTAB(NTB)
  26. DATA LTAB/'DOMAINE '/
  27. C***
  28. * XPETI2 = XPETIT
  29. NTO=NTB
  30. CALL LITABS(LTAB,KTAB,NTB,NTO,IRET)
  31. IF(IRET.EQ.0)RETURN
  32. MTABD=KTAB(1)
  33.  
  34. TYPE=' '
  35. CALL ACMO(MTABD,'CENTRE',TYPE,MELEMC)
  36. IF(TYPE.NE.'MAILLAGE')GO TO 90
  37. NC=1
  38. TYPE='CENTRE'
  39. CALL CRCHPT(TYPE,MELEMC,NC,1,MCHPOI)
  40. C In LICHT -> SEGACT MPOVAL*MOD
  41. CALL LICHT(MCHPOI,MPOVAL,TYPC,IGEOM)
  42.  
  43. TYPE=' '
  44. CALL ACMO(MTABD,'MAILLAGE',TYPE,MELEME)
  45. IF(TYPE.NE.'MAILLAGE')GO TO 90
  46. SEGACT MELEME
  47.  
  48. NBSOUS=LISOUS(/1)
  49. IF(NBSOUS.EQ.0)NBSOUS=1
  50.  
  51. NELT=0
  52. DO 1 L=1,NBSOUS
  53. IF(NBSOUS.EQ.1)THEN
  54. IPT1=MELEME
  55. ELSE
  56. IPT1=LISOUS(L)
  57. SEGACT IPT1
  58. ENDIF
  59. NP=IPT1.NUM(/1)
  60. NEL=IPT1.NUM(/2)
  61.  
  62. DO 10 K=1,NEL
  63. NELT=NELT+1
  64.  
  65. C CALCUL DU DIAMETRE MAX
  66.  
  67. XMA2=0.D0
  68. DO 321 I=1,NP-1
  69. IPI=IPT1.NUM(I,K)
  70. DO 322 J=I+1,NP
  71. IPJ=IPT1.NUM(J,K)
  72. XM2=0.D0
  73. DO 323 N=1,IDIM
  74. XM2=XM2+(XCOOR((IPI-1)*(IDIM+1)+N)
  75. $ -XCOOR((IPJ-1)*(IDIM+1)+N))**2
  76. 323 CONTINUE
  77. XMA2=MAX(XMA2,XM2)
  78. 322 CONTINUE
  79. 321 CONTINUE
  80. C
  81. * IF(XMA2.LT.XPETI2) WRITE(6,*)
  82. * $ 'kdme.eso : un element est peut-etre degenere'
  83.  
  84. VPOCHA(NELT,1)=SQRT(XMA2)
  85. 10 CONTINUE
  86. SEGDES IPT1
  87. 1 CONTINUE
  88. IF(NBSOUS.NE.1) SEGDES MELEME
  89. SEGDES MPOVAL
  90. C
  91. CALL ECROBJ('CHPOINT ',MCHPOI)
  92.  
  93. RETURN
  94.  
  95. 90 CONTINUE
  96. * WRITE(6,*)' Interruption anormale dans kdme.eso'
  97. RETURN
  98. 1001 FORMAT(20(1X,I5))
  99. END
  100.  
  101.  

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