Télécharger adcham.eso

Retour à la liste

Numérotation des lignes :

adcham
  1. C ADCHAM SOURCE SP204843 24/10/25 21:15:02 12048
  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.  
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. *
  29. MCHAML=IPCHA
  30. MCHAM2=IPCHA2
  31. * ON CHERCHE LES NOM DE COMPOSANTES EN COMMUN DANS LES
  32. * 2 CHAMELEMS
  33. *
  34. DO 1 ICOMP=1,IELVAL(/1)
  35. CALL PLACE(MCHAM2.NOMCHE,MCHAM2.NOMCHE(/2),IPLAC,
  36. & NOMCHE(ICOMP))
  37. IF (IERR.NE.0) RETURN
  38. IF (IPLAC.NE.0) THEN
  39. C On verifie que les composantes trouvees sont du meme type
  40. TYPCH1=MCHAML.TYPCHE(ICOMP)
  41. TYPCH2=MCHAM2.TYPCHE(IPLAC)
  42. IF (TYPCH1.NE.TYPCH2) THEN
  43. MOTERR(1:4)=MCHAML.NOMCHE(ICOMP)
  44. MOTERR(5:21)=TYPCH1
  45. MOTERR(22:38)=TYPCH2
  46. CALL ERREUR (917)
  47. IPCHA=0
  48. RETURN
  49. ENDIF
  50. C ICOD=0/1/2/3 en fonction du type des composantes
  51. IPMEL1=IELVAL(ICOMP)
  52. IPMEL2=MCHAM2.IELVAL(IPLAC)
  53. ICOD=0
  54. IF (TYPCHE(ICOMP).EQ.'POINTEURLISTREEL') ICOD=1
  55. IF (TYPCHE(ICOMP).EQ.'POINTEURPOINT ') ICOD=2
  56. IF (TYPCHE(ICOMP).EQ.'POINTEUREVOLUTIO') ICOD=3
  57. *
  58. CALL ADCHVE(IPMEL1,IPMEL2,XX,ICOD,IPMELV,IRETOU)
  59. IF (IERR.NE.0) RETURN
  60. MELVA1=IPMEL1
  61. MELVA1=IPMEL2
  62. IF (IRETOU.NE.0) THEN
  63. IF (IRETOU.EQ.197) MOTERR(1:4)=NOMCHE(ICOMP)
  64. CALL ERREUR (IRETOU)
  65. IPCHA=0
  66. RETURN
  67. ENDIF
  68. IELVAL(ICOMP)=IPMELV
  69. ELSE
  70. MELVA1=IELVAL(ICOMP)
  71. SEGINI,MELVAL=MELVA1
  72. IELVAL(ICOMP)=MELVAL
  73. ENDIF
  74. 1 CONTINUE
  75. *
  76. * ON RAJOUTE LES COMPOSANTES DU 2IEME CHAMELEM QUI NE SONT PAS
  77. * ENCORE PRIS EN COMPTE (LE NUMERO DE LA SOUS ZONE EST DONNE
  78. * JTAFF(ISOUS1)
  79. *
  80. N22=IELVAL(/1)
  81. DO 2 ICOMP=1,MCHAM2.IELVAL(/1)
  82. CALL PLACE(NOMCHE,N22,IPLAC,MCHAM2.NOMCHE(ICOMP))
  83. IF (IERR.NE.0) RETURN
  84. IF (IPLAC.EQ.0) THEN
  85. N2=IELVAL(/1)
  86. N2=N2+1
  87. SEGADJ MCHAML
  88. NOMCHE(N2)=MCHAM2.NOMCHE(ICOMP)
  89. TYPCH2=MCHAM2.TYPCHE(ICOMP)
  90. TYPCHE(N2)=TYPCH2
  91. MELVA2=MCHAM2.IELVAL(ICOMP)
  92. SEGINI,MELVAL=MELVA2
  93. IELVAL(N2)=MELVAL
  94. cbp,2020 prise en compte de XX --> appel a MULMEL
  95. IF(XX.NE.1.D0) THEN
  96. CALL MULMEL(MELVAL,XX,TYPCH2)
  97. IF (IERR.NE.0) RETURN
  98. ENDIF
  99. ENDIF
  100. 2 CONTINUE
  101. *
  102. 9990 CONTINUE
  103. END
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  

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