Télécharger adcham.eso

Retour à la liste

Numérotation des lignes :

  1. C ADCHAM SOURCE BP208322 20/02/21 21:15:01 10529
  2. SUBROUTINE ADCHAM (IPCHA2,IPCHA,XX)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. CHARACTER*16 TYPCH1,TYPCH2
  6. *_______________________________________________________________________
  7. *
  8. * ROUTINE EXECUTANT L'ADDITION DES COMPOSANTE DE 2 MCHAML
  9. *
  10. * ENTREES :
  11. * IPCHA : POINTEUR SUR UN SEGMENT MCHAML SUPPOSE ACTIF
  12. * IPCHA2 : POINTEUR SUR 2IEME SEGMENT MCHAML SUPPOSE ACTIF
  13. * XX : COEFFICIENT MULTIPLICATEUR sur le 2nd
  14. *
  15. *
  16. * SORTIE :
  17. * IPCHA : POINTEUR SUR UN SEGMENT MCHAML RESULTAT SUPPOSE ACTI
  18. * = 0 SI PB
  19. *
  20. * PASSAGE AUX NOUVEAU CHAMELEM PAR JM CAMPENON LE 01/91
  21. *
  22. *_______________________________________________________________________
  23. *
  24. -INC SMCHAML
  25. -INC CCOPTIO
  26. *
  27. MCHAML=IPCHA
  28. MCHAM2=IPCHA2
  29. * ON CHERCHE LES NOM DE COMPOSANTES EN COMMUN DANS LES
  30. * 2 CHAMELEMS
  31. *
  32. DO 1 ICOMP=1,IELVAL(/1)
  33. CALL PLAMO8(MCHAM2.NOMCHE,MCHAM2.NOMCHE(/2),IPLAC,
  34. & NOMCHE(ICOMP))
  35. IF (IPLAC.NE.0) THEN
  36. C On verifie que les composantes trouvees sont du meme type
  37. TYPCH1=MCHAML.TYPCHE(ICOMP)
  38. TYPCH2=MCHAM2.TYPCHE(IPLAC)
  39. IF (TYPCH1.NE.TYPCH2) THEN
  40. MOTERR(1:4)=MCHAML.NOMCHE(ICOMP)
  41. MOTERR(5:21)=TYPCH1
  42. MOTERR(22:38)=TYPCH2
  43. CALL ERREUR (917)
  44. IPCHA=0
  45. RETURN
  46. ENDIF
  47. C ICOD=0/1/2/3 en fonction du type des composantes
  48. IPMEL1=IELVAL(ICOMP)
  49. IPMEL2=MCHAM2.IELVAL(IPLAC)
  50. ICOD=0
  51. IF (TYPCHE(ICOMP).EQ.'POINTEURLISTREEL') ICOD=1
  52. IF (TYPCHE(ICOMP).EQ.'POINTEURPOINT ') ICOD=2
  53. IF (TYPCHE(ICOMP).EQ.'POINTEUREVOLUTIO') ICOD=3
  54. *
  55. CALL ADCHVE(IPMEL1,IPMEL2,XX,ICOD,IPMELV,IRETOU)
  56. MELVA1=IPMEL1
  57. MELVA1=IPMEL2
  58. IF (IRETOU.NE.0) THEN
  59. IF (IRETOU.EQ.197) MOTERR(1:4)=NOMCHE(ICOMP)
  60. CALL ERREUR (IRETOU)
  61. IPCHA=0
  62. RETURN
  63. ENDIF
  64. IELVAL(ICOMP)=IPMELV
  65. ELSE
  66. MELVA1=IELVAL(ICOMP)
  67. SEGINI,MELVAL=MELVA1
  68. IELVAL(ICOMP)=MELVAL
  69. ENDIF
  70. 1 CONTINUE
  71. *
  72. * ON RAJOUTE LES COMPOSANTES DU 2IEME CHAMELEM QUI NE SONT PAS
  73. * ENCORE PRIS EN COMPTE (LE NUMERO DE LA SOUS ZONE EST DONNE
  74. * JTAFF(ISOUS1)
  75. *
  76. N22=IELVAL(/1)
  77. DO 2 ICOMP=1,MCHAM2.IELVAL(/1)
  78. CALL PLAMO8(NOMCHE,N22,IPLAC,MCHAM2.NOMCHE(ICOMP))
  79. IF (IPLAC.EQ.0) THEN
  80. N2=IELVAL(/1)
  81. N2=N2+1
  82. SEGADJ MCHAML
  83. NOMCHE(N2)=MCHAM2.NOMCHE(ICOMP)
  84. TYPCH2=MCHAM2.TYPCHE(ICOMP)
  85. TYPCHE(N2)=TYPCH2
  86. MELVA2=MCHAM2.IELVAL(ICOMP)
  87. SEGINI,MELVAL=MELVA2
  88. IELVAL(N2)=MELVAL
  89. cbp,2020 prise en compte de XX --> appel a MULMEL
  90. IF(XX.NE.1.D0) THEN
  91. CALL MULMEL(MELVAL,XX,TYPCH2)
  92. ENDIF
  93. ENDIF
  94. 2 CONTINUE
  95. *
  96. 9990 CONTINUE
  97. END
  98.  
  99.  
  100.  
  101.  

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