Télécharger ctrle.eso

Retour à la liste

Numérotation des lignes :

ctrle
  1. C CTRLE SOURCE BP208322 16/11/18 21:16:10 9177
  2. C
  3. C CETTE PROCEDURE EST UTILISEE PAR PRPAVE POUR LE CONTROLE DES
  4. C ARETES DE L'OBJET; ELLE VERIFIE QUE LE COTE I1 DE IPT1 EST LE
  5. C MEME QUE LE COTE I2 DE IPT2 (IL FAUT I1<=I2).
  6. C IL FAUDRAIT TRAVAILLER SUR LES ELEMENTS ET PAS SUR LES REFERENCES
  7. C QUI NE SONT PAS FORCEMENT DANS L'ORDRE
  8. C
  9. SUBROUTINE CTRLE(IPT1,IPT2,I1,I2)
  10. IMPLICIT INTEGER(I-N)
  11. -INC SMELEME
  12.  
  13. -INC PPARAM
  14. -INC CCOPTIO
  15. -INC CCGEOME
  16. SEGACT IPT1,IPT2
  17. IPT3=IPT1.LISREF(1)
  18. IPT4=IPT1.LISREF(2)
  19. IPT5=IPT2.LISREF(1)
  20. IPT6=IPT2.LISREF(2)
  21. SEGACT IPT3,IPT4,IPT5,IPT6
  22. NEL1X=IPT3.NUM(/2)
  23. NEL1Y=IPT4.NUM(/2)
  24. NEL2X=IPT5.NUM(/2)
  25. NEL2Y=IPT6.NUM(/2)
  26. SEGDES IPT3,IPT4,IPT5,IPT6
  27. NBN=KDEGRE(IPT1.ITYPEL)
  28. IF (KDEGRE(IPT2.ITYPEL).NE.NBN) CALL ERREUR(264)
  29. NEL=NEL1X
  30. IF (I1.EQ.2.OR.I1.EQ.4) NEL=NEL1Y
  31. NEL2=NEL2X
  32. IF (I2.EQ.2.OR.I2.EQ.4) NEL2=NEL2Y
  33. IF (NEL.NE.NEL2) CALL ERREUR(264)
  34. IF (IERR.NE.0) RETURN
  35. IF (((I1.EQ.1).AND.(I2.EQ.3)).OR.((I1.EQ.1).AND.(I2.EQ.4)).OR.
  36. 1 ((I1.EQ.2).AND.(I2.EQ.3)).OR.((I1.EQ.2).AND.(I2.EQ.4))) GOTO 30
  37. DO 20 J=1,NEL
  38. IF (I1.EQ.1) ITEST1=IPT1.NUM(1,J)
  39. IF (I1.EQ.2) ITEST1=IPT1.NUM(NBN,NEL1X*J)
  40. IF (I1.EQ.3) ITEST1=IPT1.NUM(2*NBN-1,NEL1X*NEL1Y+1-J)
  41. IF (I1.EQ.4) ITEST1=IPT1.NUM(3*NBN-2,NEL1X*NEL1Y+1-J*NEL1X)
  42. IF (I2.EQ.1) ITEST2=IPT2.NUM(1,J)
  43. IF (I2.EQ.2) ITEST2=IPT2.NUM(NBN,NEL2X*J)
  44. IF (I2.EQ.3) ITEST2=IPT2.NUM(2*NBN-1,NEL2X*NEL2Y+1-J)
  45. IF (I2.EQ.4) ITEST2=IPT2.NUM(3*NBN-2,NEL2X*NEL2Y+1-J*NEL2X)
  46. IF (ITEST1.NE.ITEST2) CALL ERREUR(264)
  47. IF (IERR.NE.0) RETURN
  48. IF (I1.EQ.1) ITEST1=IPT1.NUM(NBN,J)
  49. IF (I1.EQ.2) ITEST1=IPT1.NUM(2*NBN-1,NEL1X*J)
  50. IF (I1.EQ.3) ITEST1=IPT1.NUM(3*NBN-2,NEL1X*NEL1Y+1-J)
  51. IF (I1.EQ.4) ITEST1=IPT1.NUM(1,NEL1X*NEL1Y+1-J*NEL1X)
  52. IF (I2.EQ.1) ITEST2=IPT2.NUM(NBN,J)
  53. IF (I2.EQ.2) ITEST2=IPT2.NUM(2*NBN-1,NEL2X*J)
  54. IF (I2.EQ.3) ITEST2=IPT2.NUM(3*NBN-2,NEL2X*NEL2Y+1-J)
  55. IF (I2.EQ.4) ITEST2=IPT2.NUM(1,NEL2X*NEL2Y+1-J*NEL2X)
  56. IF (ITEST1.NE.ITEST2) CALL ERREUR(264)
  57. IF (IERR.NE.0) RETURN
  58. 20 CONTINUE
  59. SEGDES IPT3,IPT4
  60. RETURN
  61. 30 DO 40 J=1,NEL
  62. IF (I1.EQ.1) ITEST1=IPT1.NUM(1,J)
  63. IF (I1.EQ.2) ITEST1=IPT1.NUM(NBN,NEL1X*J)
  64. IF (I1.EQ.3) ITEST1=IPT1.NUM(2*NBN-1,NEL1X*NEL1Y+1-J)
  65. IF (I1.EQ.4) ITEST1=IPT1.NUM(3*NBN-2,NEL1X*NEL1Y+1-J*NEL1X)
  66. IF (I2.EQ.1) ITEST2=IPT2.NUM(NBN,NEL2X+1-J)
  67. IF (I2.EQ.2) ITEST2=IPT2.NUM(2*NBN-1,NEL2X*NEL2Y-(J-1)*NEL2X)
  68. IF (I2.EQ.3) ITEST2=IPT2.NUM(3*NBN-2,NEL2X*(NEL2Y-1)+J)
  69. IF (I2.EQ.4) ITEST2=IPT2.NUM(1,(J-1)*NEL2X+1)
  70. IF (ITEST1.NE.ITEST2) CALL ERREUR(264)
  71. IF (IERR.NE.0) RETURN
  72. IF (I1.EQ.1) ITEST1=IPT1.NUM(NBN,NEL1X+1-J)
  73. IF (I1.EQ.2) ITEST1=IPT1.NUM(2*NBN-1,NEL1X*NEL1Y-(J-1)*NEL1X)
  74. IF (I1.EQ.3) ITEST1=IPT1.NUM(3*NBN-2,NEL1X*(NEL1Y-1)+J)
  75. IF (I1.EQ.4) ITEST1=IPT1.NUM(1,(J-1)*NEL1X+1)
  76. IF (I2.EQ.1) ITEST2=IPT2.NUM(1,J)
  77. IF (I2.EQ.2) ITEST2=IPT2.NUM(NBN,NEL2X*J)
  78. IF (I2.EQ.3) ITEST2=IPT2.NUM(2*NBN-1,NEL2X*NEL2Y+1-J)
  79. IF (I2.EQ.4) ITEST2=IPT2.NUM(3*NBN-2,NEL2X*NEL2Y+1-J*NEL2X)
  80. IF (ITEST1.NE.ITEST2) CALL ERREUR(264)
  81. IF (IERR.NE.0) RETURN
  82. 40 CONTINUE
  83. SEGDES IPT3,IPT4
  84. RETURN
  85. END
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  

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