Télécharger indcr.eso

Retour à la liste

Numérotation des lignes :

indcr
  1. C INDCR SOURCE CB215821 23/07/12 21:15:06 11704
  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=5
  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. C Remplissage du MCHAML (creation des composantes)
  66. SEGINI MCHAM1
  67. MCHEL1.ICHAML(ISOUS)=MCHAM1
  68. C Boucle sur les composantes du champ
  69. DO ICOMP=1,NMO
  70. C Remplissage du MCHAML (nom de la composante)
  71. MCHAM1.TYPCHE(ICOMP)='REAL*8'
  72. MCHAM1.NOMCHE(ICOMP)=MOT(ICOMP)
  73. C Preparation du tableau de valeurs du champ : MELVAL
  74. N2PTEL=0
  75. N2EL=0
  76. C---------> Indicateur 'PLAN'
  77. IF (MOT(ICOMP).EQ.'PLAN') THEN
  78. C Cas des elements prevus (QUA4,QUA8,TRI3,TRI6)
  79. IF (((IPT2.ITYPEL).EQ.8).OR.((IPT2.ITYPEL).EQ.10).OR.
  80. & ((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL).EQ.6)) THEN
  81. C Initialisation et remplissage du MELVAL
  82. N1PTEL=1
  83. N1EL=IPT2.NUM(/2)
  84. SEGINI MELVA1
  85. NBNO=IPT2.NUM(/1)
  86. SEGINI WRK1
  87. CALL NORCOS(MELVA1.VELCHE,IPT2.NUM(/1),N1EL,XCOOR,
  88. & IDIM,IPT2.NUM,XE,IPT2.ITYPEL)
  89. SEGDES WRK1
  90. C Pour les autres elements : champ vide
  91. ELSE
  92. C Initialisation et remplissage du MELVAL
  93. N1PTEL=0
  94. N1EL=0
  95. SEGINI MELVA1
  96. ENDIF
  97. C---------> Indicateur 'ASPE'
  98. ELSEIF (MOT(ICOMP).EQ.'ASPE') THEN
  99. C Cas des elements prevus (TRI3,TET4)
  100. IF (((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL.EQ.23))) THEN
  101. C Initialisation et remplissage du MELVAL
  102. N1PTEL=1
  103. N1EL=IPT2.NUM(/2)
  104. SEGINI MELVA1
  105. CALL ASPERT(MELVA1.VELCHE,IPT2.NUM,IPT2.NUM(/1),N1EL,
  106. & IPT2.ITYPEL)
  107. C Pour les autres elements : champ vide
  108. ELSE
  109. C Initialisation et remplissage du MELVAL
  110. N1PTEL=0
  111. N1EL=0
  112. SEGINI MELVA1
  113. ENDIF
  114. C---------> Indicateur 'SKEW'
  115. ELSEIF (MOT(ICOMP).EQ.'SKEW') THEN
  116. C Cas des elements prevus (TRI3,TET4)
  117. IF (((IPT2.ITYPEL).EQ.4).OR.((IPT2.ITYPEL.EQ.23))) THEN
  118. C Initialisation et remplissage du MELVAL
  119. N1PTEL=1
  120. N1EL=IPT2.NUM(/2)
  121. SEGINI MELVA1
  122. CALL SKEWNS(MELVA1.VELCHE,IPT2.NUM,IPT2.NUM(/1),N1EL,
  123. & IPT2.ITYPEL)
  124. C Pour les autres elements : champ vide
  125. ELSE
  126. C Initialisation et remplissage du MELVAL
  127. N1PTEL=0
  128. N1EL=0
  129. SEGINI MELVA1
  130. ENDIF
  131. C---------> Autres mots (normalement impossible de passer ici !)
  132. ELSE
  133. MOTERR=MOT(ICOMP)
  134. CALL ERREUR(7)
  135. ENDIF
  136. C Lien vers le MELVAL
  137. MCHAM1.IELVAL(ICOMP)=MELVA1
  138. C Travail termine : desactivation du MELVAL
  139. SEGDES MELVA1
  140. ENDDO
  141. C Travail termine : desactivation du maillage de la sous zone
  142. IF(NSOUS.NE.0) THEN
  143. SEGDES IPT2
  144. ENDIF
  145. C Travail termine : desactivation de la composante
  146. SEGDES MCHAM1
  147. ENDDO
  148. C Travail termine : desactivation du champ et du maillage
  149. SEGDES MCHEL1
  150. SEGDES IPT1
  151. 666 RETURN
  152. END
  153.  
  154.  
  155.  
  156.  
  157.  

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