changs
C CHANGS SOURCE CHAT 05/01/12 21:55:38 5004 C TRANSFORME LES T3 ENGENDRES PAR SURF EN T6 SUR LE PLAN LOCAL C TRANSFORME AUSSI LES Q4 EN Q8 ET LES T3 EN Q4 ET LES T3 EN Q8 C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMELEME SEGMENT XPROJ(N,1) -INC PPARAM -INC CCOPTIO SEGMENT NKON(IKOUR) SEGMENT KON(IKOUR,NKMAX,2) IF (IPT1.ITYPEL.EQ.ITY) RETURN IF (ITY.EQ.8) RETURN IF ((ITY.EQ.6.AND.IPT1.ITYPEL.EQ.4).OR. # (ITY.EQ.10.AND.IPT1.ITYPEL.EQ.4).OR. # (ITY.EQ.10.AND.IPT1.ITYPEL.EQ.8)) GOTO 10 C ON CHANGE DES Q4 EN COUPLES DE T3 NBELEM=2*NUMELG NUMELG=NBELEM NBNN=3 NBSOUS=0 NBREF=0 SEGINI IPT2 IPT2.ITYPEL=4 DO 3 I=1,IPT1.NUM(/2),2 J=2*I-1 IPT2.NUM(1,J)=IPT1.NUM(1,I) IPT2.NUM(2,J)=IPT1.NUM(2,I) IPT2.NUM(3,J)=IPT1.NUM(3,I) J=J+1 IPT2.NUM(1,J)=IPT1.NUM(1,I) IPT2.NUM(2,J)=IPT1.NUM(3,I) IPT2.NUM(3,J)=IPT1.NUM(4,I) J=J+1 IF (J.GT.IPT2.NUM(/2)) GOTO 3 IPT2.NUM(1,J)=IPT1.NUM(1,I+1) IPT2.NUM(2,J)=IPT1.NUM(2,I+1) IPT2.NUM(3,J)=IPT1.NUM(4,I+1) J=J+1 IPT2.NUM(1,J)=IPT1.NUM(2,I+1) IPT2.NUM(2,J)=IPT1.NUM(3,I+1) IPT2.NUM(3,J)=IPT1.NUM(4,I+1) 3 CONTINUE SEGSUP IPT1 IPT1=IPT2 IF (IPT1.ITYPEL.EQ.ITY) RETURN 10 CONTINUE C ON CHANGE LES T3 EN T6 OU LES Q4 EN Q8 IKOUR=NUMNP SEGINI NKON DO 23 I=1,IKOUR 23 NKON(I)=0 DO 24 I=1,IPT1.NUM(/1) DO 24 J=1,NUMELG IKL=IPT1.NUM(I,J) IF (IKL.EQ.0) GOTO 24 NKON(IKL)=NKON(IKL)+1 24 CONTINUE NKMAX=0 DO 25 I=1,IKOUR 25 NKMAX=MAX(NKMAX,NKON(I)) 62 CONTINUE SEGINI KON DO 26 I=1,IKOUR DO 27 J=1,NKMAX KON(I,J,1)=0 KON(I,J,2)=0 27 CONTINUE 26 CONTINUE IF (IPT5.EQ.0) GOTO 40 SEGACT IPT5 DO 31 J=1,IPT5.NUM(/2) I1=IPT5.NUM(1,J) I3=IPT5.NUM(3,J) J1=MIN(I1,I3) J3=MAX(I1,I3) ITF=0 32 ITF=ITF+1 IF (ITF.GT.NKMAX) GOTO 61 IF (KON(J1,ITF,1).EQ.0) GOTO 33 IF (KON(J1,ITF,1).EQ.J3) GOTO 33 GOTO 32 33 KON(J1,ITF,1)=J3 KON(J1,ITF,2)=IPT5.NUM(2,J) 31 CONTINUE 40 CONTINUE NBELEM=NUMELG NBNN=IPT1.NUM(/1)*2 NBSOUS=0 NBREF=0 SEGINI IPT2 IPT2.ITYPEL=IPT1.ITYPEL+2 NBNN1=NBNN/2 DO 34 J=1,NBELEM DO 35 I=1,NBNN1 IF (IPT1.NUM(I,J).EQ.0) GOTO 38 IFI=I+1 IF (IFI.EQ.NBNN1+1) IFI=1 IF (IPT1.NUM(IFI,J).EQ.0) IFI=1 IPT2.NUM(2*I-1,J)=IPT1.NUM(I,J) I1=IPT1.NUM(I,J) ITF=0 36 ITF=ITF+1 IF (ITF.GT.NKMAX) GOTO 61 IF (KON(J1,ITF,1).NE.0) GOTO 36 NUMNP=NUMNP+1 IF (IERR.NE.0) GOTO 1000 IF (XPROJ(/1).EQ.4) KON(J1,ITF,2)=NUMNP 37 IPT2.NUM(2*I,J)=KON(J1,ITF,2) GOTO 35 38 IPT2.NUM(2*I-1,J)=0 IPT2.NUM(2*I,J)=0 35 CONTINUE 34 CONTINUE SEGSUP IPT1 IPT1=IPT2 1000 SEGSUP KON,NKON,IPT5 RETURN 61 SEGSUP KON NKMAX=NKMAX+1 IF (IIMPI.NE.0) WRITE (IOIMP,2000) NKMAX 2000 FORMAT(/,' NOUVELLE VALEUR DE NKMAX TENTEE DANS CHANGS',I4) GOTO 62 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales