crech3
C CRECH3 SOURCE FANDEUR 22/01/03 21:15:08 11136 C C C C ******** CE SUBROUTINE SERT A CREER UN CHAMP POINT A PARTIR C ******** D'UN SEGMENT MTRAV. C C ******** INCO(NNIN) CONTIENT LE NOMS DES NNIN INCONNUES DIFFERENTES. C C ******** BB(I,J) EST LA VALEUR DE LA IEME INCONNUE DU CHAMP POUR C ******** LE JEME NOEUD DU TABLEAU IGEO. C C ******** IBIN(I,J)=1 OU 0. 1 INDIQUE QUE LA I EME INCONNUE DU CHAMP C ******** EXISTE POUR LE J EME NOEUD DU TABLEAU IGEO. C C ******** IGEO(I) EST LE NUMERO A METTRE DANS UN OBJET MELEME POUR C ******** REFERENCER LE IEME NOEUD C C ******** NHAR(I) EST LE NUMERO D'HARMONIQUE SI CALCUL AXI OU C ******** SIGNIFIE CONTRAINTE PLANE,DEFORMATION PLANE OU DEF PLAN GEN C C ******** ATTENTION ATTENTION ATTENTION IL EXISTE UNE VARIABLE C ******** POUVANT DEPENDRE DE LA MACHINE. NN25 EST SUPPOSE SUFFISAMENT C ******** PETIT POUR QUE 2**NN25 SOIT UN ENTIER POSSIBLE. C C C *** POUR PLUS DE RENSEIGNEMENTS VOIR CHARRAS. C C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC SMELEME -INC TMTRAV -INC SMRIGID -INC TMVECRIG -INC SMMATRI SEGMENT NTRAV INTEGER IDEJ(NNIN),INO(NNNOE),IBINN(NNNOE,N25),IVA(NNIN) INTEGER ICO(NNNOE),ipoinc(nnin) ENDSEGMENT SEGMENT,ILO(0) SEGMENT,IPE(0) segact,mrigid*mod MMATRI=ICHOLE SEGACT MMATRI mimik=iimik midua=iidua NN25=25 MTRAV=KTRAV SEGACT,MTRAV NNNOE=IBIN(/2) N25=(NNIN+NN25-1)/NN25 SEGINI,NTRAV * on recherche dans quelle position est inco par rapport à mimik itrouv=0 do ia=1,imik(/2) do ib=1,nnin itrouv=1 ipoinc(ib)=ia endif enddo enddo C C **** CREATION DU TABLEAU IBINN. CE TABLEAU PERMET DE REGROUPER C **** LES INFORMATIONS DE IBIN DE MANIERE A TESTER RAPIDEMENT C **** SI 2 NOEUDS ONT LES MEMES INCONNUES. C J=0 K=1 IO=1 DO 49 I=1,NNIN J=J+1 IVA(I)=IO IO=IO*2 IF(J.LT.NN25) GO TO 49 IO=1 J=0 49 CONTINUE maxinc=0 DO 51 I=1,NNNOE K=0 maxinl=0 DO 510 L=1,N25 L1=1+(L-1)*NN25 L2=L*NN25 L2=MIN(L2,NNIN) IAFS=0 DO 52 J=L1,L2 IF(IBIN(J,I).EQ.0) GO TO 52 K=L maxinl=maxinl+1 JJ=J-(L-1)*NN25 IAFS=IAFS+IVA(JJ) 52 CONTINUE IBINN(I,L)=IAFS 510 CONTINUE ICO(I)=K maxinc=max(maxinc,maxinl) 51 CONTINUE C C **** CLASSEMENT DES NOEUDS PAR TYPES. ON REMPLIT LE TABLEAU INO. C **** DEUX NOEUDS ONT LE MEME TYPE S'ILS ONT LES MEMES INCONNUES. C **** INO(I)=J VEUT DIRE QUE LE I EME NOEUD EST DE TYPE J. C **** N DONNE LE NOMBRE DE TYPES DE NOEUD DIFFERENTS. C N=0 SEGINI,ILO,IPE NTROUV=0 DO 53 IDEB=1,NNNOE IF(ICO(IDEB).NE.0) GO TO 54 53 CONTINUE GO TO 540 54 CONTINUE 3 CONTINUE N=N+1 IPE(**)=IDEB ITES=IDEB KK=0 DO 1 I=IDEB,NNNOE DO 2 J=1,N25 IF(IBINN(I,J).NE.IBINN(ITES,J)) GO TO 1 2 CONTINUE KK=KK+1 INO(I)=N ICO(I)=0 1 CONTINUE ILO(**)=KK NTROUV=NTROUV+KK IF(NTROUV.NE.NNNOE) THEN DO 4 IDEB=1,NNNOE IF(ICO(IDEB).NE.0) GO TO 3 4 CONTINUE ENDIF C C **** ON CONNAIT LE NOMBRE DE SOUS CHAMPS C **** ON INITIALISE LE SEGMENT MCHPOIN C C 540 CONTINUE NSOUPO=N idimve=nnd segini mvecri NAT=1 SEGINI,MCHPOI IFOPOI=IFOUR JATTRI(1) = 0 MTYPOI=' ' MOCHDE=' CHPOINT CREE PAR CRECH3' C C **** ON VA FABRIQUER LES SEGMENTS MSOUPO POUR LES REMPLIR IL FAUT C **** CONNAITRE LES INCONNUES DU SOUS CHAMPS ET L'OBJET GEOMETRIQUE C **** SUPPORT C IF(NSOUPO.EQ.0) THEN KCHPOI=MCHPOI SEGSUP,NTRAV,ILO,IPE RETURN ENDIF DO 100 I=1,NSOUPO C C **** ON CHERCHE D'ABORD LA LISTE DES INCONNUES A PARTIR DE LA C **** VALEUR DE IBINN ET ON REMPLIT NOCOMP C IHK=IPE(I) NC=0 DO 20 JK=1,NNIN IF(IBIN(JK,IHK).EQ.0) GO TO 20 NC=NC+1 IDEJ(NC)=JK 20 CONTINUE SEGINI,MSOUPO IPCHP(I)=MSOUPO IB=0 DO 14 J=1,NC NOHARM(J)=NHAR(IDEJ(J)) naminc(i,j)=imik(IPOINC(idej(j))) namdua(i,j)=idua(ipoinc(idej(j))) NUMHAR(i,j)=NOHARM(J) 14 CONTINUE C C **** ON CHERCHE COMBIEN DE NOEUD DANS L'OBJET MELEME,ON LE CREE C NBSOUS=0 NBREF=0 NBNN=1 NBELEM=ILO(I) N=NBELEM SEGINI,MPOVAL SEGINI,MELEME numnom(I)=nc ITYPEL=1 IC=0 DO 16 J=1,NNNOE IF(INO(J).NE.I) GO TO 16 IC=IC+1 NUM(1,IC)=IGEO(J) DO 18 K=1,NC IO=IDEJ(K) VPOCHA(IC,K)=BB(IO,J) ikk=ibin(io,j) numzon(ikk)=i nunolo(ikk)=ic nuinlo(ikk)=k 18 CONTINUE 16 CONTINUE melzon(i)=meleme IGEOC=MELEME IPOVAL=MPOVAL 100 CONTINUE SEGSUP,ILO,IPE KCHPOI=MCHPOI ivecri=mvecri segdes mvecri SEGSUP,NTRAV END
© Cast3M 2003 - Tous droits réservés.
Mentions légales