Télécharger excoc1.eso

Retour à la liste

Numérotation des lignes :

excoc1
  1. C EXCOC1 SOURCE PV090527 25/01/07 12:39:23 12114
  2.  
  3. *-----------------------------------------------------------------------
  4. * EXTRACTION D UNE COMPOSANTE D UN NOUVEAU CHAMELEM
  5. * ROUTINE APPELLEE PAR L OPERATEUR EXCOMP
  6. * ENTREE
  7. * IPCH1= POINTEUR SUR UN MCHAML (ACTIF)
  8. * MOT1 = NOM DE LA COMPOSANTE A EXTRAIRE
  9. * MOT2 = NOM DE LA COMPOSANTE A CREER
  10. * IVID = 1 SI ON A LU LE MOT 'NOID', 0 SINON
  11. * SORTIE
  12. * IPCH2= POINTEUR SUR LE MCHAML CONTENANT UNIQUEMENT LA
  13. * COMPOSANTE MOT2
  14. *-----------------------------------------------------------------------
  15. SUBROUTINE EXCOC1(IPCH1,MOT1,IPCH2,MOT2,IVID)
  16.  
  17. IMPLICIT INTEGER(I-N)
  18. IMPLICIT REAL*8(A-H,O-Z)
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22. -INC SMCOORD
  23.  
  24. -INC SMCHAML
  25.  
  26. CHARACTER*(*) MOT1,MOT2
  27.  
  28. SEGMENT MTRI
  29. INTEGER IPOI(n1l)
  30. INTEGER LRAN(n1l)
  31. CHARACTER*16 TYPT(n1l)
  32. ENDSEGMENT
  33.  
  34. IPCH2 = 0
  35. *
  36. * INITIALISATION DU SEGMENT DE TRAVAIL
  37. *
  38. n1l=500
  39. SEGINI,MTRI
  40. *
  41. * BOUCLE SUR LES ZONES
  42. *
  43. MCHEL1 = IPCH1
  44.  
  45. L1 =MCHEL1.TITCHE(/1)
  46. N3 =MCHEL1.INFCHE(/2)
  47. NZON1=MCHEL1.ICHAML(/1)
  48.  
  49. N1=0
  50. DO IA = 1, NZON1
  51. MCHAM1=MCHEL1.ICHAML(IA)
  52. NCP=MCHAM1.NOMCHE(/2)
  53. CALL PLACE(MCHAM1.NOMCHE(1),NCP,IBCOM,MOT1)
  54. IF (IBCOM.NE.0) THEN
  55. N1=N1+1
  56. if (N1.gt.n1l) then
  57. n1l=n1l+500
  58. segadj mtri
  59. endif
  60. ** On ne duplique pas le melval
  61. ** melva1=MCHAM1.IELVAL(IBCOM)
  62. ** segini,melval=melva1
  63. ** IPOI(N1)=melval
  64. IPOI(N1)=MCHAM1.IELVAL(IBCOM)
  65. LRAN(N1)=IA
  66. TYPT(N1)=MCHAM1.TYPCHE(IBCOM)
  67. ENDIF
  68. ENDDO
  69.  
  70. IF (N1.EQ.0 .AND. IVID.NE.1) THEN
  71. MOTERR(1:8)=MOT1
  72. CALL ERREUR(236)
  73. GOTO 666
  74. ENDIF
  75. *
  76. * CREATION DU CHAPEAU DU MCHELM A 1 COMPOSANTE
  77. *
  78. SEGINI,MCHELM
  79. TITCHE=MCHEL1.TITCHE
  80. IFOCHE=MCHEL1.IFOCHE
  81. IPCH2 = MCHELM
  82.  
  83. N2=1
  84.  
  85. * ON REMPLIT LE MCHELM - BOUCLE SUR LES ZONES
  86. *
  87. DO IA = 1, N1
  88. SEGINI,MCHAML
  89. NOMCHE(1)=MOT2
  90. TYPCHE(1)=TYPT(IA)
  91. IELVAL(1)=IPOI(IA)
  92. IACON=LRAN(IA)
  93. DO IB = 1, N3
  94. INFCHE(IA,IB)=MCHEL1.INFCHE(IACON,IB)
  95. ENDDO
  96. IMACHE(IA)=MCHEL1.IMACHE(IACON)
  97. CONCHE(IA)=MCHEL1.CONCHE(IACON)
  98. ICHAML(IA)=MCHAML
  99. ENDDO
  100.  
  101. * SUPPRESSION DES SEGMENTS DE TRAVAIL
  102. *
  103. 666 CONTINUE
  104. SEGSUP MTRI
  105.  
  106. c RETURN
  107. END
  108.  
  109.  
  110.  
  111.  

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