Télécharger fuseli.eso

Retour à la liste

Numérotation des lignes :

fuseli
  1. C FUSELI SOURCE PV 13/04/17 21:15:06 7767
  2. SUBROUTINE FUSELI(IPT1,IPT2,IPT3,LTELQ)
  3. *=============================================================
  4. *
  5. * Ce sous-programme réalise l'operation "ET" sur les deux objets
  6. * maillages IPT1 et IPT2.
  7. * Le resultat est rangé dans IPT3
  8. *
  9. * Assure la continuité de parcours de la ligne résultat (sauf si 'TELQ')
  10. *
  11. *=============================================================
  12. *
  13. * Modifications :
  14. *
  15. * PM 09/10/2007 : respecte l'ordre y compris si le sens de parcours
  16. * aurait pu être continu avec mot-clef TELQUEL
  17. *
  18. *=============================================================
  19. *
  20. * Remarques :
  21. *
  22. * IPT1 et IPT2 doivent etre de type LIGNE
  23. *
  24. *=============================================================
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30. -INC SMELEME
  31. LOGICAL LTELQ
  32. segact ipt1,ipt2
  33. NBNN = IPT1.NUM(/1)
  34. NBELE1 = IPT1.NUM(/2)
  35. NBELE2 = IPT2.NUM(/2)
  36. NBELEM = NBELE1+NBELE2
  37. nbnn2= ipt2.num(/1)
  38. NBSOUS = 0
  39. NBREF = 0
  40. SEGINI IPT3
  41. IPT3.ITYPEL=IPT1.ITYPEL
  42.  
  43. * PM ?
  44. IF (NBELE1.EQ.0 .OR. NBELE2.EQ.0) GOTO 25
  45.  
  46. * Faut-il mettre le 2e maillage en premier pour préserver un sens de
  47. * parcours ?
  48. IF ((.NOT.LTELQ).AND.
  49. $ (ipt1.num(1,1).eq.ipt2.num(nbnn2,nbele2)).and.
  50. $ (ipt2.num(1,1).ne.ipt1.num(nbnn,nbele1))) go to 25
  51. * # (IPT1.NUM(1,1).EQ.IPT2.NUM(NBNN,NBELE2)).AND.
  52. * # (IPT2.NUM(1,1).NE.IPT1.NUM(NBNN,NBELE1))) GOTO 25
  53.  
  54. * Concaténation dans l'ordre donné
  55. DO J=1,NBELE1
  56. IPT3.ICOLOR(J)=IPT1.ICOLOR(J)
  57. DO I=1,NBNN
  58. IPT3.NUM(I,J)=IPT1.NUM(I,J)
  59. ENDDO
  60. ENDDO
  61. DO J=1,NBELE2
  62. IPT3.ICOLOR(J+NBELE1)=IPT2.ICOLOR(J)
  63. DO I=1,NBNN
  64. IPT3.NUM(I,J+NBELE1)=IPT2.NUM(I,J)
  65. ENDDO
  66. ENDDO
  67. if (ipt3.itypel.eq.1) call crech1(ipt3,1)
  68. RETURN
  69.  
  70. * Concaténation avec le 2e en premier
  71. 25 CONTINUE
  72. DO J=1,NBELE2
  73. IPT3.ICOLOR(J)=IPT2.ICOLOR(J)
  74. DO I=1,NBNN
  75. IPT3.NUM(I,J)=IPT2.NUM(I,J)
  76. ENDDO
  77. ENDDO
  78. DO J=1,NBELE1
  79. IPT3.ICOLOR(J+NBELE2)=IPT1.ICOLOR(J)
  80. DO I=1,NBNN
  81. IPT3.NUM(I,J+NBELE2)=IPT1.NUM(I,J)
  82. ENDDO
  83. ENDDO
  84. if (ipt3.itypel.eq.1) call crech1(ipt3,1)
  85.  
  86. RETURN
  87. END
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  

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