Télécharger kkdom2.eso

Retour à la liste

Numérotation des lignes :

kkdom2
  1. C KKDOM2 SOURCE CHAT 05/01/13 00:56:44 5004
  2. C KKDOM SOURCE MAGN 02/10/07 21:15:19 4439
  3. SUBROUTINE KKDOM2(MELEME,TOLER,NOMDOM,MTABI,MTABD,INEFMD)
  4. C************************************************************************
  5. C
  6. C OBJET : Cree une table de soustype DOMAINE
  7. C Appele par KDOM
  8. C
  9. C************************************************************************
  10. IMPLICIT INTEGER(I-N)
  11. IMPLICIT REAL*8 (A-H,O-Z)
  12. CHARACTER*8 NOMDOM,NOMC
  13. CHARACTER*8 NOM,TYPE,TYPI
  14. PARAMETER (NMEL=8)
  15. DIMENSION SGA(NMEL),SEPS(NMEL),SEPSD(NMEL)
  16. C***
  17.  
  18. -INC PPARAM
  19. -INC CCOPTIO
  20. -INC SMELEME
  21. POINTEUR MELEMS.MELEME,MELEMC.MELEME,MELEF1.MELEME,MELEMP.MELEME
  22. POINTEUR MFF2.MELEME
  23. -INC SMLENTI
  24. DATA SGA/1.D0,1.D0,1.D0,1.D0,1.D0,1.D0,1.D0,1.D0/
  25. DATA SEPS/0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0/
  26. DATA SEPSD/8*0.D0/
  27. C***
  28.  
  29. C On verifie que si la directive INCL est présente les SPG
  30. C des points sommets sont bien inclus
  31.  
  32. MELEP0=0
  33. C write(6,*)' DEBUT KKDOM ========================'
  34. IF(MTABI.NE.0)THEN
  35. TYPI='MAILLAGE'
  36. CALL ACMO(MTABI,'SOMMET',TYPI,MSI)
  37. CALL KRIPAD(MSI,MLENTI)
  38. CALL VERPAD(MLENTI,MELEME,IRET)
  39. IF(IRET.NE.0)THEN
  40. WRITE(6,*)' Opérateur DOMA '
  41. WRITE(6,*)' Le maillage n''est pas contenu dans celui de'
  42. & ,' la table donnée pour la directive INCL '
  43. RETURN
  44. ENDIF
  45. SEGSUP MLENTI
  46. ENDIF
  47.  
  48. C??? call CQF2LN(MELEME,MLINE)
  49. CALL KQCEST(MELEME,IKR)
  50.  
  51. IF(IKR.EQ.1341)IKR=1
  52. IF(IKR.EQ.13)IKR=1
  53.  
  54. IF(IKR.EQ.2)THEN
  55. C au depart des LINEs -> LINE
  56. C write(6,*)'au depart des LINEs -> LINE'
  57.  
  58. CALL ECROBJ('MAILLAGE',MELEME)
  59. CALL CHANQU
  60. CALL C20227
  61. IF (IERR.NE.0) RETURN
  62. CALL LIROBJ('MAILLAGE',MELEME,1,IRET)
  63. MAIL=MELEME
  64. CALL CQF2LN(MELEME,MLINE)
  65. C write(6,*)' AVT TQ2CF'
  66. NOMC=' '
  67. CALL TQ2CF(MAIL,MELEMQ,MELEMC,
  68. & MELEF1,MELAF,MELEMP,MELEMF,MELEF2,MFF2,NOMC,IKR)
  69. MELEME=MLINE
  70. ELSEIF(IKR.EQ.1.AND.INEFMD.EQ.1)THEN
  71. C au depart des QUAFs -> LINE
  72. C write(6,*)'au depart des QUAFs -> LINE '
  73.  
  74. MAIL=MELEME
  75. C write(6,*)' KKDOM QUAFs -> LINE'
  76. NOMC=' '
  77. CALL TQ2CF(MAIL,MELEMQ,MELEMC,
  78. & MELEF1,MELAF,MELEMP,MELEMF,MELEF2,MFF2,NOMC,IKR)
  79. CALL CQF2LN(MELEME,MLINE)
  80. MELEME=MLINE
  81. C? MELEME=MAIL
  82. ENDIF
  83.  
  84. C write(6,*)' APR MTABI=',mtabi
  85. CALL CRTABL(MTABD)
  86. CALL ECMM(MTABD,'SOUSTYPE','DOMAINE')
  87. CALL ECME(MTABD,'PRECONDI',1)
  88. C write(6,*)' QUAF MELEMQ=',MELEMQ
  89. C? call ecrobj('MAILLAGE',MELEMQ)
  90. C? call prlist
  91. CALL ECMO(MTABD,'QUAF','MAILLAGE',MELEMQ)
  92. IF(MTABI.NE.0) CALL ECMO(MTABD,'PERE','TABLE',MTABI)
  93. CALL ECMM(MTABD,'NOMDOM',NOMDOM)
  94. CALL ECMO(MTABD,'MAILLAGE','MAILLAGE',MELEME)
  95. CALL ECME(MTABD,'INEFMD',INEFMD)
  96.  
  97. C write(6,*)' MELEF1,MELEMF,MELEMP,MELEMC,MELAF=',
  98. C &MELEF1,MELEMF,MELEMP,MELEMC,MELAF
  99. CALL ECMO(MTABD,'FACE','MAILLAGE',MELEF1)
  100. CALL ECMO(MTABD,'FACEL','MAILLAGE',MELEMF)
  101. CALL ECMO(MTABD,'FACEP','MAILLAGE',MELEMP)
  102. CALL ECMO(MTABD,'CENTRE','MAILLAGE',MELEMC)
  103. CALL ECMO(MTABD,'ELTFA','MAILLAGE',MELAF)
  104. CALL ECMO(MTABD,'FACEL2','MAILLAGE',MELEF2)
  105. CALL ECMO(MTABD,'MAILFACE','MAILLAGE',MFF2)
  106. CALL ECMF(MTABD,'TOLER',TOLER)
  107.  
  108. C? CALL ECRCHA('POI1')
  109. C? CALL ECROBJ('MAILLAGE',MELEME)
  110. C? CALL ECROBJ('MAILLAGE',MAIL )
  111. C? CALL PRCHAN
  112. C? CALL LIROBJ('MAILLAGE',MELEMS,1,IRET)
  113. C? IF(IRET.EQ.0)RETURN
  114. CALL CM2PO1(MELEME,MELEMS)
  115. CALL ECMO(MTABD,'SOMMET','MAILLAGE',MELEMS)
  116. C???? IF(MELEMS.EQ.0)RETURN
  117.  
  118. C write(6,*)' MTABI=',mtabi,' retour si 0 '
  119. IF(MTABI.NE.0)THEN
  120.  
  121. C In CRTABL -> SEGINI MTBT0
  122. CALL CRTABL(MTBT0)
  123. CALL ECME(MTBT0,'PRECONDI',1)
  124. CALL NOMOBJ('TABLE','tabl0tmp',MTBT0)
  125.  
  126. CALL ECMO(MTBT0,'QUAF','MAILLAGE',MELEMQ)
  127. CALL ECMO(MTBT0,'SOMMET','MAILLAGE',MELEMS)
  128. CALL ECMO(MTBT0,'FACE ','MAILLAGE',MELEF1)
  129. CALL ECMO(MTBT0,'FACEL','MAILLAGE',MELEMF)
  130. CALL ECMO(MTBT0,'FACEP','MAILLAGE',MELEMP)
  131. CALL ECMO(MTBT0,'CENTRE','MAILLAGE',MELEMC)
  132. CALL ECMO(MTBT0,'ELTFA','MAILLAGE',MELAF)
  133. CALL ECMO(MTBT0,'FACEL2','MAILLAGE',MELEF2)
  134. CALL ECMO(MTBT0,'MAILFACE','MAILLAGE',MFF2)
  135. CALL ECMO(MTBT0,'MAILLAGE','MAILLAGE',MELEME)
  136.  
  137. C write(6,*)' On vérifie l inclusion des points sommets '
  138. C On vérifie l'inclusion des points sommets (on peut avoir créé des pts centre)
  139. TYPI='MAILLAGE'
  140. CALL ACMO(MTABI,'SOMMET',TYPI,MSI)
  141. CALL ACMO(MTABI,'FACE',TYPI,MFI)
  142. CALL ACMO(MTABI,'CENTRE',TYPI,MCI)
  143. CALL ECROBJ('MAILLAGE',MFI)
  144. CALL ECROBJ('MAILLAGE',MCI)
  145. CALL PRFUSE
  146. CALL ECROBJ('MAILLAGE',MSI)
  147. CALL PRFUSE
  148. CALL ECROBJ('MAILLAGE',MELEMS)
  149. CALL PRFUSE
  150. CALL ECROBJ('MAILLAGE',MELEF1)
  151. CALL PRFUSE
  152. CALL ECROBJ('MAILLAGE',MELEMC)
  153. CALL PRFUSE
  154. CALL ECRREE(TOLER)
  155. CALL PRELIM(0)
  156. CALL LIROBJ('MAILLAGE',MMMMM,1,IRET)
  157. ENDIF
  158. C write(6,*)' APRES verification '
  159.  
  160. SEGACT MELEF1
  161. NBFD=MELEF1.NUM(/2)
  162. SEGDES MELEF1
  163. SEGACT MELEMC
  164. NELD=MELEMC.NUM(/2)
  165. SEGDES MELEMC
  166. SEGACT MELEMS
  167. NPTD=MELEMS.NUM(/2)
  168. SEGDES MELEMS
  169.  
  170. CALL ECME(MTABD,'NPTD',NPTD)
  171. CALL ECME(MTABD,'NELD',NELD)
  172. CALL ECME(MTABD,'NBFD',NBFD)
  173.  
  174. C write(6,*)' Appel a REFE'
  175. CALL ECROBJ('MAILLAGE',MELEME)
  176. CALL REFE
  177. CALL LIROBJ('LISTMOTS',ITABOG,0,IRET)
  178. CALL ECMO(MTABD,'OBJINCLU','LISTMOTS',ITABOG)
  179. C write(6,*)' FIN KKDOM ********************** '
  180.  
  181. RETURN
  182. END
  183.  
  184.  
  185.  
  186.  
  187.  

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