Télécharger fusesu.eso

Retour à la liste

Numérotation des lignes :

fusesu
  1. C FUSESU SOURCE CB215821 19/08/20 21:18:00 10287
  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 90 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. GOTO 91
  79. 67 CONTINUE
  80. ILONG=IPT3.NUM(/2)
  81. IF (ILONG.NE.IPT4.NUM(/2)) GOTO 65
  82. DO 92 IL=1,ILONG
  83. DO 92 IM=1,IPT3.NUM(/1)
  84. IF (IPT3.NUM(IM,IL).NE.IPT4.NUM(IPT3.NUM(/1)+1-IM,ILONG+1-IL))
  85. # GOTO 65
  86. 92 CONTINUE
  87. GOTO 91
  88. 63 IF (IFI.EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 66
  89. GOTO 65
  90. 64 IF (INI.EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 67
  91. 65 CONTINUE
  92. 62 CONTINUE
  93. 61 CONTINUE
  94. GOTO 80
  95. 91 NBREF=4
  96. SEGINI MELEME
  97. I1=I
  98. I2=J
  99. LISREF(1)=IPT1.LISREF(MOD(I1+1,4)+1)
  100. LISREF(3)=IPT2.LISREF(MOD(I2+1,4)+1)
  101. IPT3=IPT1.LISREF(MOD(I1+2,4)+1)
  102. IPT4=IPT2.LISREF(MOD(I2,4)+1)
  103. SEGACT IPT3,IPT4
  104. IF (IPT3.NUM(1,1).EQ.IPT4.NUM(1,1)) GOTO 70
  105. IF (IPT3.NUM(1,1).EQ.IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2))) GOTO 70
  106. IF (IPT4.NUM(1,1).EQ.IPT3.NUM(IPT3.NUM(/1),IPT3.NUM(/2))) GOTO 70
  107. IF (IPT4.NUM(IPT4.NUM(/1),IPT4.NUM(/2)).EQ.IPT3.NUM(IPT3.NUM(/1),
  108. # IPT3.NUM(/2))) GOTO 70
  109. GOTO 71
  110. 70 CONTINUE
  111. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  112. LISREF(2)=IPT5
  113. IPT3=IPT1.LISREF(MOD(I1 ,4)+1)
  114. IPT4=IPT2.LISREF(MOD(I2+2 ,4)+1)
  115. SEGACT IPT3,IPT4
  116. CALL FUSELI(IPT4,IPT3,IPT5,LTELQ)
  117. LISREF(4)=IPT5
  118. GOTO 100
  119. 71 CONTINUE
  120. IPT3=IPT1.LISREF(MOD(I1+2,4)+1)
  121. IPT4=IPT2.LISREF(MOD(I2+2,4)+1)
  122. SEGACT IPT3,IPT4
  123. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  124. LISREF(2)=IPT5
  125. IPT3=IPT1.LISREF(MOD(I1,4)+1)
  126. IPT4=IPT2.LISREF(MOD(I2,4)+1)
  127. SEGACT IPT3,IPT4
  128. CALL FUSELI(IPT3,IPT4,IPT5,LTELQ)
  129. LISREF(4)=IPT5
  130. GOTO 100
  131.  
  132. 100 CONTINUE
  133. ITYPEL=IPT1.ITYPEL
  134. DO 101 I=1,NBNN
  135. DO 102 J=1,NBELE1
  136. 102 NUM(I,J)=IPT1.NUM(I,J)
  137. DO 103 J=1,NBELE2
  138. 103 NUM(I,J+NBELE1)=IPT2.NUM(I,J)
  139. 101 CONTINUE
  140. IPT3=MELEME
  141. DO 110 I=1,NBELE1
  142. ICOLOR(I)=IPT1.ICOLOR(I)
  143. 110 CONTINUE
  144. DO 120 I=1,NBELE2
  145. ICOLOR(I+NBELE1)=IPT2.ICOLOR(I)
  146. 120 CONTINUE
  147. END
  148.  
  149.  
  150.  

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