Télécharger fusesu.eso

Retour à la liste

Numérotation des lignes :

fusesu
  1. C FUSESU SOURCE CB215821 26/08/24 21:16:41 12622
  2. C CE SOUS-PROGRAMME REALISE L'OPERATION "ET" SUR LES DEUX OBJETS
  3. C IPT1 ET IPT2 LE RESULTAT EST RANGE DANS IPT3
  4. C IPT1 ET IPT2 SONT DE TYPE SURFACE
  5. C
  6. SUBROUTINE FUSESU(IPT1,IPT2,IPT3,LTELQ)
  7. IMPLICIT INTEGER(I-N)
  8.  
  9. -INC PPARAM
  10. -INC CCOPTIO
  11. -INC SMELEME
  12. LOGICAL LTELQ
  13.  
  14. SEGACT IPT1,IPT2
  15. NBREF1=IPT1.LISREF(/1)
  16. NBREF2=IPT2.LISREF(/1)
  17. NBELE1=IPT1.NUM(/2)
  18. NBELE2=IPT2.NUM(/2)
  19. NBSOUS=0
  20. NBELEM=NBELE1 + NBELE2
  21. NBNN=IPT1.NUM(/1)
  22. IF (NBREF1.EQ.0.OR.NBREF2.EQ.0) GOTO 10
  23. 20 IPT3=IPT1.LISREF(1)
  24. SEGACT IPT3
  25. IF (NBREF1.EQ.4) GOTO 30
  26. 80 CONTINUE
  27. IPT4=IPT2.LISREF(1)
  28. SEGACT IPT4
  29. IF (NBREF2.EQ.1) GOTO 40
  30. DO 50 I=2,NBREF2
  31. MELEME=IPT2.LISREF(I)
  32. SEGACT MELEME
  33. CALL FUSELI(IPT4,MELEME,IPT5,LTELQ)
  34. IPT4=IPT5
  35. 50 CONTINUE
  36. NBREF2=1
  37. IF (NBREF1.EQ.1) GOTO 40
  38. IPT3=IPT4
  39. 30 IF (NBREF2.EQ.4) GOTO 60
  40. DO 51 I=2,NBREF1
  41. MELEME=IPT1.LISREF(I)
  42. SEGACT MELEME
  43. CALL FUSELI(IPT3,MELEME,IPT5,LTELQ)
  44. IPT3=IPT5
  45. 51 CONTINUE
  46. NBREF1=1
  47. GOTO 80
  48. 40 CONTINUE
  49. *** CALL OUEXCL(IPT3,IPT4,IPT5) N'EST PLUS UTILE
  50. IPT5=0
  51. NBREF=1
  52. IF(IPT5.EQ.0) NBREF=0
  53. SEGINI MELEME
  54. IF(IPT5.NE.0) LISREF(1)=IPT5
  55. GOTO 100
  56. 10 NBREF=0
  57. SEGINI MELEME
  58. GOTO 100
  59. 60 CONTINUE
  60. DO 61 I=1,4
  61. IPT3=IPT1.LISREF(I)
  62. SEGACT IPT3
  63. INI=IPT3.NUM(1,1)
  64. IFI=IPT3.NUM(IPT3.NUM(/1),IPT3.NUM(/2))
  65. DO 62 J=1,4
  66. IPT4=IPT2.LISREF(J)
  67. SEGACT IPT4
  68. IF (IFI.EQ.IPT4.NUM(1,1)) GOTO 64
  69. IF (INI.EQ.IPT4.NUM(1,1)) GOTO 63
  70. GOTO 65
  71. 66 CONTINUE
  72. ILONG=IPT3.NUM(/2)
  73. IF (ILONG.NE.IPT4.NUM(/2)) GOTO 65
  74. DO 121 IL=1,ILONG
  75. DO 90 IM=1,IPT3.NUM(/1)
  76. IF (IPT3.NUM(IM,IL).NE.IPT4.NUM(IM,IL)) GOTO 65
  77. 90 CONTINUE
  78. 121 CONTINUE
  79. GOTO 91
  80. 67 CONTINUE
  81. ILONG=IPT3.NUM(/2)
  82. IF (ILONG.NE.IPT4.NUM(/2)) GOTO 65
  83. DO 122 IL=1,ILONG
  84. DO 92 IM=1,IPT3.NUM(/1)
  85. IF (IPT3.NUM(IM,IL).NE.IPT4.NUM(IPT3.NUM(/1)+1-IM,ILONG+1-IL))
  86. # GOTO 65
  87. 92 CONTINUE
  88. 122 CONTINUE
  89. GOTO 91
  90. 63 IF (IFI.EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 66
  91. GOTO 65
  92. 64 IF (INI.EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 67
  93. 65 CONTINUE
  94. 62 CONTINUE
  95. 61 CONTINUE
  96. GOTO 80
  97. 91 NBREF=4
  98. SEGINI MELEME
  99. I1=I
  100. I2=J
  101. LISREF(1)=IPT1.LISREF(MOD(I1+1,4)+1)
  102. LISREF(3)=IPT2.LISREF(MOD(I2+1,4)+1)
  103. IPT3=IPT1.LISREF(MOD(I1+2,4)+1)
  104. IPT4=IPT2.LISREF(MOD(I2,4)+1)
  105. SEGACT IPT3,IPT4
  106. IF (IPT3.NUM(1,1).EQ.IPT4.NUM(1,1)) GOTO 70
  107. IF (IPT3.NUM(1,1).EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 70
  108. IF (IPT4.NUM(1,1).EQ.IPT3.NUM(IPT3.NUM(/1),IPT3.NUM(/2))) GOTO 70
  109. IF (IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2)).EQ.IPT3.NUM(IPT3.NUM(/1),
  110. # IPT3.NUM(/2))) GOTO 70
  111. GOTO 71
  112. 70 CONTINUE
  113. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  114. LISREF(2)=IPT5
  115. IPT3=IPT1.LISREF(MOD(I1 ,4)+1)
  116. IPT4=IPT2.LISREF(MOD(I2+2 ,4)+1)
  117. SEGACT IPT3,IPT4
  118. CALL FUSELI(IPT4,IPT3,IPT5,LTELQ)
  119. LISREF(4)=IPT5
  120. GOTO 100
  121. 71 CONTINUE
  122. IPT3=IPT1.LISREF(MOD(I1+2,4)+1)
  123. IPT4=IPT2.LISREF(MOD(I2+2,4)+1)
  124. SEGACT IPT3,IPT4
  125. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  126. LISREF(2)=IPT5
  127. IPT3=IPT1.LISREF(MOD(I1,4)+1)
  128. IPT4=IPT2.LISREF(MOD(I2,4)+1)
  129. SEGACT IPT3,IPT4
  130. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  131. LISREF(4)=IPT5
  132. GOTO 100
  133.  
  134. 100 CONTINUE
  135. ITYPEL=IPT1.ITYPEL
  136. DO 101 I=1,NBNN
  137. DO 102 J=1,NBELE1
  138. NUM(I,J)=IPT1.NUM(I,J)
  139. 102 CONTINUE
  140. DO 103 J=1,NBELE2
  141. NUM(I,J+NBELE1)=IPT2.NUM(I,J)
  142. 103 CONTINUE
  143. 101 CONTINUE
  144. IPT3=MELEME
  145. DO 110 I=1,NBELE1
  146. ICOLOR(I)=IPT1.ICOLOR(I)
  147. 110 CONTINUE
  148. DO 120 I=1,NBELE2
  149. ICOLOR(I+NBELE1)=IPT2.ICOLOR(I)
  150. 120 CONTINUE
  151. END
  152.  
  153.  
  154.  
  155.  

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