1 : C ADCHAM SOURCE PV 09/03/12 21:15:08 6325 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 SEGGMENT MCHAML SUPPOSE ACTIF 13 : * XX : COEFFICIENT MULTIPLICATEUR 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) 32 : CALL PLACE (MCHAM2.NOMCHE,MCHAM2.NOMCHE(/2),IPLAC, 33 : & NOMCHE(ICOMP)) 34 : IF (IPLAC.NE.0) THEN 35 : C On verifie que les composantes trouvees sont du meme type 36 : TYPCH1=MCHAML.TYPCHE(ICOMP) 37 : TYPCH2=MCHAM2.TYPCHE(IPLAC) 38 : IF (TYPCH1.NE.TYPCH2) THEN 39 : MOTERR(1:4)=MCHAML.NOMCHE(ICOMP) 40 : MOTERR(5:21)=TYPCH1 41 : MOTERR(22:38)=TYPCH2 41 : CALL ERREUR (917) 42 : IPCHA=0 43 : RETURN 44 : ENDIF 45 : C ICOD=0/1/2/3 en fonction du type des composantes 46 : IPMEL1=IELVAL(ICOMP) 47 : IPMEL2=MCHAM2.IELVAL(IPLAC) 48 : ICOD=0 49 : IF (TYPCHE(ICOMP).EQ.'POINTEURLISTREEL') ICOD=1 50 : IF (TYPCHE(ICOMP).EQ.'POINTEURPOINT ') ICOD=2 51 : IF (TYPCHE(ICOMP).EQ.'POINTEUREVOLUTIO') ICOD=3 52 : * 52 : CALL ADCHVE(IPMEL1,IPMEL2,XX,ICOD,IPMELV,IRETOU) 53 : MELVA1=IPMEL1 54 : SEGDES MELVA1 55 : MELVA1=IPMEL2 56 : SEGDES MELVA1 57 : IF (IRETOU.NE.0) THEN 58 : IF (IRETOU.EQ.197) MOTERR(1:4)=NOMCHE(ICOMP) 58 : CALL ERREUR (IRETOU) 59 : IPCHA=0 60 : RETURN 61 : ENDIF 62 : IELVAL(ICOMP)=IPMELV 63 : ELSE 64 : MELVA1=IELVAL(ICOMP) 65 : SEGINI,MELVAL=MELVA1 66 : IELVAL(ICOMP)=MELVAL 67 : SEGDES MELVAL 68 : ENDIF 69 : 1 CONTINUE 70 : * 71 : * ON RAJOUTE LES COMPOSANTES DU 2IEME CHAMELEM QUI NE SONT PAS 72 : * ENCORE PRIS EN COMPTE (LE NUMERO DE LA SOUS ZONE EST DONNE 73 : * JTAFF(ISOUS1) 74 : * 75 : N22=IELVAL(/1) 76 : DO 2 ICOMP=1,MCHAM2.IELVAL(/1) 76 : CALL PLACE (NOMCHE,N22,IPLAC, 77 : & MCHAM2.NOMCHE(ICOMP)) 78 : IF (IPLAC.EQ.0) THEN 79 : N2=IELVAL(/1) 80 : N2=N2+1 81 : SEGADJ MCHAML 82 : NOMCHE(N2)=MCHAM2.NOMCHE(ICOMP) 83 : TYPCHE(N2)=MCHAM2.TYPCHE(ICOMP) 84 : MELVA2=MCHAM2.IELVAL(ICOMP) 85 : SEGINI,MELVAL=MELVA2 86 : IELVAL(N2)=MELVAL 87 : SEGDES MELVAL 88 : ENDIF 89 : 2 CONTINUE 90 : * 91 : 9990 CONTINUE 92 : END 93 : 94 : 95 : 96 : 97 : 98 :
© Cast3M 2003 - All rights reserved.
Disclaimer