Télécharger quelqu.eso

Retour à la liste

Numérotation des lignes :

quelqu
  1. C QUELQU SOURCE CB215821 22/07/20 15:39:45 11411
  2. C OPERATEUR QUELQUONQUE (ie QUELCONQUE ;)
  3. C
  4. SUBROUTINE QUELQU
  5. C
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8(A-H,O-Z)
  8. C
  9.  
  10. -INC PPARAM
  11. -INC CCOPTIO
  12. -INC CCGEOME
  13. -INC SMELEME
  14. -INC SMLREEL
  15. CHARACTER*4 ITSEG(2)
  16. INTEGER IRETOU,IRETO1,IRETO2,IRETO3
  17. DATA ITSEG/'SEG2','SEG3'/
  18. SEGMENT IBUF(0)
  19. IRETOU=0
  20. IRETO1=0
  21. IRETO2=0
  22. IRETO3=0
  23.  
  24. CALL LIRMOT(ITSEG,2,ITYP,1)
  25. IF (IERR.NE.0) RETURN
  26. SEGINI IBUF
  27. C
  28. CALL LIROBJ('LISTREEL',MLREE1,0,IRETO1)
  29. IF(IRETO1.NE.0)THEN
  30. SEGACT MLREE1
  31. JG1=MLREE1.PROG(/1)
  32. IF (IDIM.GE.2) THEN
  33. CALL LIROBJ('LISTREEL',MLREE2,1,IRETO2)
  34. C ON DOIT LIRE UNE DEUXIEME PROGRESSION
  35. IF(IRETO2.EQ.0) RETURN
  36. SEGACT MLREE2
  37. IF(IDIM.EQ.3)THEN
  38. CALL LIROBJ('LISTREEL',MLREE3,1,IRETO3)
  39. C ON DOIT LIRE UNE TROISIEME PROGRESSION EN 3 D
  40. IF(IRETO3.EQ.0)RETURN
  41. SEGACT MLREE3
  42. ENDIF
  43. JG2=MLREE2.PROG(/1)
  44. C LES DEUX PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR
  45. IF(JG2.NE.JG1) CALL ERREUR(577)
  46. IF(IDIM.EQ.3) THEN
  47. JG3=MLREE3.PROG(/1)
  48. C LES DEUX PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR
  49. IF(JG3.NE.JG1)CALL ERREUR(577)
  50. ENDIF
  51. ENDIF
  52. C LES PROGRESSIONS DOIVENT AVOIR UNE LONGUEUR SUFFISANTE
  53. IF(JG1.LE.ITYP) CALL ERREUR(725)
  54. IF(ITYP.EQ.2)THEN
  55. C LIGNE CONSTITUEE DE SEG3 :
  56. C LES PROGRESSIONS DOIVENT AVOIR UNE LONGUEUR ADEQUATE
  57. IQUOT=(JG1-3)/2
  58. IREST=JG1-3-2*IQUOT
  59. IF(IREST.NE.0) CALL ERREUR(726)
  60. ENDIF
  61. YG2=0.D0
  62. ZG3=0.D0
  63. DO 10 IG1=1,JG1
  64. XG1=MLREE1.PROG(IG1)
  65. IF (IDIM.GE.2) YG2=MLREE2.PROG(IG1)
  66. IF (IDIM.EQ.3) ZG3=MLREE3.PROG(IG1)
  67. CALL CREPO1(XG1,YG2,ZG3,IPO)
  68. IBUF(**)=IPO
  69. 10 CONTINUE
  70. SEGDES MLREE1
  71. IF(IRETO2.EQ.1) SEGDES MLREE2
  72. IF(IRETO3.EQ.1) SEGDES MLREE3
  73. ELSE
  74. *
  75. 20 CONTINUE
  76. CALL LIROBJ('POINT ',IP,0,IRETOU)
  77. IF (IRETOU.NE.0) THEN
  78. IBUF(**)=IP
  79. GOTO 20
  80. ENDIF
  81. CALL LIROBJ('MAILLAGE',IPT1,0,IRETOU)
  82. IF (IRETOU.EQ.1) THEN
  83. SEGACT IPT1
  84. IF ((IPT1.ITYPEL).NE.1) CALL ERREUR(426)
  85. NBNN = IPT1.NUM(/1)
  86. NBELEM = IPT1.NUM(/2)
  87. DO 21 I=1,NBELEM
  88. IBUF(**)= IPT1.NUM(1,I)
  89. 21 CONTINUE
  90. SEGDES IPT1
  91. ENDIF
  92. ENDIF
  93. NBP=IBUF(/1)
  94. NBNN=ITYP+1
  95. NBSOUS=0
  96. NBREF=0
  97. NBELEM=(NBP-1)/(NBNN-1)
  98. IF (NBELEM.LE.0.OR.NBELEM*(NBNN-1).NE.(NBP-1)) CALL ERREUR(20)
  99. IF (IERR.NE.0) RETURN
  100. SEGINI MELEME
  101. ITYPEL=NBNN
  102. DO 30 IEL=1,NBELEM
  103. DO 40 IN=1,NBNN
  104. NUM(IN,IEL)=IBUF((IEL-1)*(NBNN-1)+IN)
  105. 40 CONTINUE
  106. ICOLOR(IEL)=IDCOUL
  107. 30 CONTINUE
  108. SEGDES MELEME
  109. SEGSUP IBUF
  110. CALL ECROBJ('MAILLAGE',MELEME)
  111. END
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  

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