paqlig
C PAQLIG SOURCE PV 20/03/30 21:21:55 10567 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * * ii est un meleme de seg2 ou de seg3. on chzerche a reconstituer chaque ligne * en sortie jj est un pointeur sur PAQUET qui contient la liste consecutive * des noeuds formant une ligne, chaque ligne est séparé par un zero C -INC SMELEME -INC CCGEOME -INC PPARAM -INC CCOPTIO -INC SMCOORD C INTEGER II,JJ,ITE,NELEM,IPOIT,N1,N2 SEGMENT ICPR(nbpts) SEGMENT JCPR(nbpts) SEGMENT KON(ITE,nkon) segment ivoi(ite) SEGMENT IDCP(ITE) SEGMENT PAQUET ENDSEGMENT MELEME=II SEGACT MELEME SEGINI ICPR,JCPR ITE=0 nkon=2 IF (LISOUS(/1).NE.0) THEN RETURN ENDIF K=ITYPEL IF (K.NE.KDEGRE(K)) THEN RETURN ENDIF DO 1 J=1,K,K-1 DO 2 L=1,NUM(/2) IPOIT=NUM(J,L) JCPR(IPOIT)=JCPR(IPOIT)+1 nkon=max(nkon,jcpr(ipoit)) IF (JCPR(IPOIT).EQ.3) then interr(1)=ipoit ENDIF IF( icpr(ipoit).eq.0) then ITE=ITE+1 ICPR(IPOIT)=ITE ENDIF 2 CONTINUE 1 CONTINUE * write(6,*) ' ite nkon',ite,nkon nelem=ite*nkon c Création du vecteur de connexions c initialisation SEGINI KON,ivoi,paquet C Remplissage DO 4 L=1,NUM(/2) N1=ICPR(NUM(1,L)) N2=ICPR(NUM(K,L)) ivoi(n1)=ivoi(n1)+1 ivoi(n2)=ivoi(n2)+1 KON(N1,ivoi(n1))=N2 KON(N2,ivoi(n2))=n1 4 CONTINUE SEGDES MELEME SEGINI IDCP DO 5 I=1,ICPR(/1) IF (ICPR(I).EQ.0) GOTO 5 IDCP(ICPR(I))=I 5 CONTINUE SEGSUP ICPR ,jcpr C C Création d'un vecteur contenant les paquets de lignes SEGINI PAQUET J=0 * write(6,*) ' longueur du tableau' , ivoi(/1) * write(6,*) ( ivoi(iou),iou=1,ivoi(/1)) 100 continue * on cherche un point de depart do 10 ip=1,ite if(mod(ivoi(ip),2).eq.1) go to 7 10 continue * il n'y en a pas ... fin go to 6 7 ipd=ip * write(6,*) ' point de depart ' , idcp(ip) j=j+1 70 ipn=kon(ipd,ivoi(ipd)) ivoi(ipd)=ivoi(ipd)-1 * mise a jour de kon et ivoi pour le nouveau point ipn do 8 io=1,ivoi(ipn) if(kon(ipn,io).eq.ipd) go to 9 8 continue segsup idcp,ivoi,kon return 9 continue if(io.eq.ivoi(ipn)) then ivoi(ipn)=ivoi(ipn)-1 else do 11 iu=io+1,ivoi(ipn) 11 kon(ipn,iu-1)=kon(ipn,iu) ivoi(ipn)=ivoi(ipn)-1 endif j=j+1 ipd=ipn if(ivoi(ipd).eq.0) then j=j+1 go to 100 endif go to 70 6 continue nelem =j segsup idcp, ivoi,kon segadj paquet jj=paquet return end
© Cast3M 2003 - Tous droits réservés.
Mentions légales