ajoun
C AJOUN SOURCE OF166741 24/08/02 21:15:02 11974 C C C AJOUTE UN ELEMENT (de valeur iel) DANS UN SEGMENT EXTENSIBLE C S IL N Y EST DEJA. C et renseigne le segment ilisse pour aller plus vite C RENVOIE DANS IEL LA PLACE DE L OBJET C C IMPLICIT INTEGER(I-N) integer NLISSE integer NUMLIS integer iel,i,L integer NLIS -INC PPARAM -INC CCOPTIO -INC TMCOLAC SEGMENT ITAB(0) if (numlis.lt.0.or.numlis.gt.7) then write (6,*) ' ajoun numlis incorrect ',numlis endif segact ITAB*mod NLISSE = ILISEG(/1) * * IF(NUMLIS.EQ.1) THEN * if (msurve.gt.0) then if (iel.eq.msurve) then write (6,*) ' surveillance dans ajoun element: ',msurve, > 'pile: ',itab endif endif * IF((IEL-1)/npgcd.GT.NLISSE) THEN NLISSE = (IEL-1)/npgcd*1.2+1 SEGADJ ILISSE ENDIF NLIS= ILISEG((IEL-1)/npgcd) IF(NLIS.EQ.0) THEN ITAB(**)=IEL ILISEG((IEL-1)/npgcd)=ITAB(/1) IEL=ILISEG((IEL-1)/npgcd) ELSE * verif que c'est la bonne pile if (itab(nlis).ne.iel) then moterr(1:8)='ajoun' interr(1)=iel write (6,*) ' incoherence ajoun ',itab,iel,nlis,nlisse,numlis, > itab(nlis) L=itab(/1) DO I=1,L IF(ITAB(I).EQ.IEL) GOTO 12 enddo ITAB(**)=IEL I=L+1 12 CONTINUE iliseg((iel-1)/npgcd)=i nlis=I endif IEL=NLIS ENDIF * ELSEIF(NUMLIS.EQ.3) THEN * IF(IEL.GT.NLISSE) THEN NLISSE = IEL*1.2+1 SEGADJ ILISSE ENDIF NLIS= ILISEG(IEL) IF(NLIS.EQ.0) THEN ITAB(**)=IEL ILISEG(IEL)=ITAB(/1) IEL=ILISEG(IEL) ELSE * verif que c'est la bonne pile if (itab(nlis).ne.iel) then ** moterr(1:8)='ajoun' ** interr(1)=iel ** write (6,*) ' ajoun itab iliseg ' ** write (6,*) (itab(i),i=1,itab(/1)) ** write (6,*) (iliseg(i),i=1,6 ) ** call erreur(861) ** write (6,*) ' incoherence ajoun point ',itab,iel,nlis,nlisse, ** > numlis,itab(nlis) *** on peut etre incoherent apres une renumerotation. On remet en silence ilissp en ordre de marche ** L=itab(/1) DO I=1,L IF(ITAB(I).EQ.IEL) GOTO 22 enddo ITAB(**)=IEL I=L+1 22 CONTINUE ILISEG(IEL)=I nlis=I endif IEL=NLIS ENDIF * ELSE * L=ITAB(/1) * write (6,*) ' ajoun ',itab,l,numlis,iel DO 1 I=1,L IF(ITAB(I).EQ.IEL) GOTO 2 1 CONTINUE ITAB(**)=IEL I=L+1 2 CONTINUE IEL=I ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales