licham
C LICHAM SOURCE CB215821 20/11/04 21:18:42 10766 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * LECTURE D'UN NOUVEAU CHAMELEM SUR LE FICHIER IORES. * * * * Param}tres: * * * * IORES NUM{RO DU FICHIER DE LECTURE * * ITLACC Pile contenant les nouveaux CHAMELEMs * * IMAX1 Nombre de CHAMELEMs dans la pile * * IFORM Si sauvegarde en format ou non * * * * APPEL{ PAR: LIPIL * * * * Auteur, date de cr{ation: * * * * Denis ROBERT-MOUGIN, le 29 juin 1989. * * * *--------------------------------------------------------------------* -INC PPARAM -INC SMCHAML -INC CCFXDR SEGMENT,ITLACC INTEGER ITLAC(0) ENDSEGMENT SEGMENT,MTABE1 INTEGER ITABE1(NM1) ENDSEGMENT SEGMENT,MTABE2 INTEGER ITABE2(NM2) ENDSEGMENT SEGMENT,MTABE4 CHARACTER*(8) ITABE4(NM4) ENDSEGMENT SEGMENT,MTABE5 CHARACTER*(8) ITABE5(NM5) ENDSEGMENT SEGMENT,MTABE6 CHARACTER*(8) ITABE6(NM6) ENDSEGMENT * INTEGER IDAN(4) IRETOU=0 NM5=0 * * Boucle sur les CHAMELEMs contenus dans la pile: * DO 10 IEL=1,IMAX1 * MCHELM = 0 * * CREATION ET REMPLISSAGE DU SEGMENT MCHELM * IF(IRETOU.NE.0) RETURN * N1 = IDAN(1) N3 = IDAN(3) L1 = IDAN(4) SEGINI MCHELM IFOCHE = IDAN(2) IF(IRETOU.NE.0) RETURN * N6 = N3 + 3 NM1 = N1 * N6 SEGINI,MTABE1 IF(IRETOU.NE.0) RETURN IF(NIVEAU.GE.4) THEN NM5 = N1 * 2 SEGINI,MTABE5 IF(IRETOU.NE.0) RETURN ENDIF if(niveau.ge.15) then nm6=n1 segini mtabe6 endif * DO 21 ISOUEL=1,N1 ISOU = N6 * (ISOUEL - 1) IMACHE(ISOUEL) = ITABE1(ISOU+1) N2 = ITABE1(ISOU+3) SEGINI MCHAML ICHAML(ISOUEL)=MCHAML DO 12 IJ=1,N3 12 INFCHE(ISOUEL,IJ) = ITABE1(ISOU+3+IJ) IF(NIVEAU.GE.4) THEN CONCHE(ISOUEL)(1:8) = ITABE5(2*ISOUEL-1) CONCHE(ISOUEL)(9:16)= ITABE5(2*ISOUEL ) ELSE CONCHE(ISOUEL) = ' ' ENDIF if(niveau.ge.15) then conche(isouel)(17:24) =itabe6(isouel) else conche(isouel)(17:24) =' ' endif 21 CONTINUE SEGSUP MTABE1 IF(NIVEAU.GE.4) SEGSUP MTABE5 if(niveau.ge.15) segsup mtabe6 * * BOUCLES SUR LES ZONES {L{MENTAIRES DU CHAMELEM : * DO 22 ISOUEL=1,N1 MCHAML = ICHAML(ISOUEL) N2 = NOMCHE(/2) NM2=N2 NM4=N2*2 SEGINI MTABE2,MTABE4 IF(IRETOU.NE.0) RETURN IF(IRETOU.NE.0) RETURN IF(IRETOU.NE.0) RETURN * DO 31 ICO=1,N2 if (iform.ne.2) then WRITE(TYPCHE(ICO),FMT='(2A8)') ITABE4(2*ICO-1), & ITABE4(2*ICO) else TYPCHE(ICO)(1:8) =ITABE4(2*ICO-1) TYPCHE(ICO)(9:16)=ITABE4(2*ICO ) endif * write (6,*) ' licham ico typche ',ico,typche(ico) * * PETITS TEST MILL 17 / 1 /92 * IF(TYPCHE(ICO).EQ.'POINTEUR MLREEL' ) . TYPCHE(ICO)='POINTEURLISTREEL' IF(TYPCHE(ICO).EQ.'POINTEUR MEVOLUT' ) . TYPCHE(ICO)='POINTEUREVOLUTIO' * 31 CONTINUE * SEGSUP MTABE4 * * BOUCLE SUR LES COMPOSANTES : * DO 32 ICO=1,N2 if (itabe2(ico).ge.0) then *pas de ielval separe IF(IRETOU.NE.0) RETURN N1PTEL = IDAN (1) N1EL = IDAN (2) N2PTEL = IDAN (3) N2EL = IDAN (4) L1 = IDAN(1) * IDAN(2) L2 = IDAN(3) * IDAN(4) * write (6,*) ' licham ',n1ptel,n1el,n2ptel,n2el SEGINI MELVAL IELVAL(ICO) = MELVAL * * LECTURE DU CONTENU DU SEGMENT MELVAL : * IF(IRETOU.NE.0) RETURN IF(IRETOU.NE.0) RETURN SEGDES MELVAL else * on va pointer sur la pile des ielval. ielval(ico)=itabe2(ico) endif 32 CONTINUE SEGSUP MTABE2 * SEGDES MCHAML 22 CONTINUE * SEGDES MCHELM ITLAC(**)=MCHELM 10 CONTINUE * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales