Télécharger indcr.eso

Retour à la liste

Numérotation des lignes :

indcr
  1. C INDCR SOURCE OF166741 24/10/03 21:15:20 12022
  2. SUBROUTINE INDCR(MOT,NMO,IPT1,MCHEL1)
  3. C=======================================================================
  4. C SUBROUTINE DE LA PROCEDURE INDIC DE QUALITE D'UN MAILLAGE
  5. C PHILIPPE BEAUMIER 90
  6. C CONTIENT LES ZONES RELATIVES AUX DIFFERENTS CHAMPS
  7. C CREATION DU CHAMELEM RESULTAT
  8. C
  9. C=======================================================================
  10. C
  11. C INPUT
  12. C
  13. C MOT : SUCCESSION DES MOTS CLES LUS
  14. C NMO : NOMBRE DE MOTS CLES LUS
  15. C IPT1 : POINTEUR SUR LE MAILLAGE
  16. C
  17. C OUTPUT
  18. C
  19. C MCHEL1 : POINTEUR SUR LE CHAMELEM RESULTAT
  20. C
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23.  
  24. -INC PPARAM
  25. -INC CCOPTIO
  26. -INC SMCHAML
  27. -INC SMELEME
  28. -INC SMCOORD
  29. C
  30. CHARACTER*(LOCOMP) MOT(*)
  31. SEGMENT/WRK1/(XE(3,NBNO))
  32. C
  33. C Activation du maillage
  34. SEGACT IPT1
  35. C Erreur si aucun mot lu
  36. IF(NMO.EQ.0) GOTO 666
  37. C Preparation du MCHAML (titre, nbr sous zones, options)
  38. L1=7
  39. NSOUS=IPT1.LISOUS(/1)
  40. N1=NSOUS
  41. IF(N1.EQ.0) N1=1
  42. N3=6
  43. SEGINI MCHEL1
  44. MCHEL1.TITCHE='QUALITE'
  45. MCHEL1.CONCHE(1)=' '
  46. MCHEL1.IFOCHE=IFOUR
  47. C
  48. C Boucle sur les sous zones du maillage (et donc celles du champ resulat)
  49. N2=NMO
  50. DO ISOUS=1,MAX(1,NSOUS)
  51. C Recuperation de la sous zone
  52. IF(NSOUS.NE.0) THEN
  53. IPT2=IPT1.LISOUS(ISOUS)
  54. SEGACT IPT2
  55. ELSE
  56. IPT2=IPT1
  57. ENDIF
  58. C Remplissage du MCHAML (maillage sous zone, options)
  59. MCHEL1.IMACHE(ISOUS)=IPT2
  60. MCHEL1.INFCHE(ISOUS,1)=0
  61. MCHEL1.INFCHE(ISOUS,2)=0
  62. MCHEL1.INFCHE(ISOUS,3)=NIFOUR
  63. MCHEL1.INFCHE(ISOUS,4)=0
  64. MCHEL1.INFCHE(ISOUS,5)=0
  65. MCHEL1.INFCHE(ISOUS,6)=1
  66. C Remplissage du MCHAML (creation des composantes)
  67. SEGINI MCHAM1
  68. MCHEL1.ICHAML(ISOUS)=MCHAM1
  69. C Boucle sur les composantes du champ
  70. DO ICOMP=1,NMO
  71. C Remplissage du MCHAML (nom de la composante)
  72. MCHAM1.TYPCHE(ICOMP)='REAL*8'
  73. MCHAM1.NOMCHE(ICOMP)=MOT(ICOMP)
  74. C Preparation du tableau de valeurs du champ : MELVAL
  75. N2PTEL=0
  76. N2EL=0
  77. C---------> Indicateur 'PLAN'
  78. IF (MOT(ICOMP).EQ.'PLAN') THEN
  79. C Cas des elements prevus (QUA4,QUA8,TRI3,TRI6)
  80. IF (((IPT2.ITYPEL).EQ.8).OR.((IPT2.ITYPEL).EQ.10).OR.
  81. & ((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL).EQ.6)) THEN
  82. C Initialisation et remplissage du MELVAL
  83. N1PTEL=1
  84. N1EL=IPT2.NUM(/2)
  85. SEGINI MELVA1
  86. NBNO=IPT2.NUM(/1)
  87. SEGINI WRK1
  88. CALL NORCOS(MELVA1.VELCHE,IPT2.NUM(/1),N1EL,XCOOR,
  89. & IDIM,IPT2.NUM,XE,IPT2.ITYPEL)
  90. SEGDES WRK1
  91. C Pour les autres elements : champ vide
  92. ELSE
  93. C Initialisation et remplissage du MELVAL
  94. N1PTEL=0
  95. N1EL=0
  96. SEGINI MELVA1
  97. ENDIF
  98. C---------> Indicateur 'ASPE'
  99. ELSEIF (MOT(ICOMP).EQ.'ASPE') THEN
  100. C Cas des elements prevus (TRI3,TET4)
  101. IF (((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL.EQ.23))) THEN
  102. C Initialisation et remplissage du MELVAL
  103. N1PTEL=1
  104. N1EL=IPT2.NUM(/2)
  105. SEGINI MELVA1
  106. CALL ASPERT(MELVA1.VELCHE,IPT2.NUM,IPT2.NUM(/1),N1EL,
  107. & IPT2.ITYPEL)
  108. C Pour les autres elements : champ vide
  109. ELSE
  110. C Initialisation et remplissage du MELVAL
  111. N1PTEL=0
  112. N1EL=0
  113. SEGINI MELVA1
  114. ENDIF
  115. C---------> Indicateur 'SKEW'
  116. ELSEIF (MOT(ICOMP).EQ.'SKEW') THEN
  117. C Cas des elements prevus (TRI3,TET4)
  118. IF (((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL.EQ.23))) THEN
  119. C Initialisation et remplissage du MELVAL
  120. N1PTEL=1
  121. N1EL=IPT2.NUM(/2)
  122. SEGINI MELVA1
  123. CALL SKEWNS(MELVA1.VELCHE,IPT2.NUM,IPT2.NUM(/1),N1EL,
  124. & IPT2.ITYPEL)
  125. C Pour les autres elements : champ vide
  126. ELSE
  127. C Initialisation et remplissage du MELVAL
  128. N1PTEL=0
  129. N1EL=0
  130. SEGINI MELVA1
  131. ENDIF
  132. C---------> Autres mots (normalement impossible de passer ici !)
  133. ELSE
  134. MOTERR=MOT(ICOMP)
  135. CALL ERREUR(7)
  136. ENDIF
  137. C Lien vers le MELVAL
  138. MCHAM1.IELVAL(ICOMP)=MELVA1
  139. C Travail termine : desactivation du MELVAL
  140. SEGDES MELVA1
  141. ENDDO
  142. C Travail termine : desactivation du maillage de la sous zone
  143. IF (NSOUS.NE.0) SEGDES IPT2
  144. C Travail termine : desactivation de la composante
  145. SEGDES MCHAM1
  146. ENDDO
  147. C Travail termine : desactivation du champ et du maillage
  148. SEGDES MCHEL1
  149. SEGDES IPT1
  150. 666 RETURN
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  

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