C DYNA14 SOURCE PV 09/09/11 21:18:02 6504 SUBROUTINE DYNA14(ITREFR,KTLIAA) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Operateur DYNE : algorithme de Fu - de Vogelaere * * ________________________________________________ * * * * Remplissage du tableau contenant les parametres de liaison en * * cas de reprise (liaison POLYNOMIALE en base A) * * * * Parametres: * * * * ITREFR Table contenant les variables internes des liaisons * * sauvegardees dans la table de reprise * * KTLIAA Description des liaisons en base A * * * * Auteur, date de creation: * * * * Denis ROBERT-MOUGIN : le 14 mai 1992 * * * *--------------------------------------------------------------------* * -INC CCOPTIO -INC SMLENTI -INC SMTABLE -INC SMLREEL -INC SMCOORD * SEGMENT,ICPR(XCOOR(/1)/(IDIM+1)) SEGMENT,MTLIAA INTEGER IPALA(NLIAA,NIPALA),IPLIA(NLIAA,NPLAA),JPLIA(NPLA) REAL*8 XPALA(NLIAA,NXPALA) ENDSEGMENT * LOGICAL L0,L1 CHARACTER*(8) TYPIND * MTLIAA = KTLIAA NLIAA = XPALA(/1) IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*)'Entree dans DYNA14' WRITE(IOIMP,*)'NLIAA = ',NLIAA ENDIF * * Boucle sur les liaisons en base A sauvegardees * IPOLY = 0 DO 10 I = 1,NLIAA ITYP = IPALA(I,1) IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*)'ITYP = ',ITYP,' I = ',I ENDIF IF (ITYP.EQ.6) THEN IPOLY = IPOLY + 1 CALL ACCTAB(ITREFR,'ENTIER',IPOLY,X0,' ',L0,IP0, & 'TABLE',I1,X1,' ',L1,ITREFI) IF (IERR.NE.0) RETURN CALL ACCTAB(ITREFI,'MOT',I0,X0,'TYPE',L0,IP0, & 'ENTIER',ITYPR,X1,' ',L1,ITR) IF (IERR.NE.0) RETURN IF (ITYP.NE.ITYPR) THEN call erreur(21) RETURN ENDIF * * Liaison de type force POLYNOMIALE * IF (ITYPR.EQ.6) THEN CALL ACCTAB(ITREFI,'MOT',I0,X0, & 'POINTS_LIAISON_POLYNOMIALE', & L0,IP0,'LISTENTI',I1,X1,' ',L1,IPLEN1) IF (IERR.NE.0) RETURN CALL ACCTAB(ITREFI,'MOT',I0,X0, & 'VARIABLES_LIAISON_POLYNOMIALE', & L0,IP0,'LISTREEL',I1,X1,' ',L1,IPLRE1) IF (IERR.NE.0) RETURN * IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*)'Lecture des points / liaison ',I ENDIF MLENTI = IPLEN1 SEGACT MLENTI NP = LECT(/1) NPJ = NP / 2 DO 20 J=1,NPJ K = J * 2 IKX = LECT(K) IPLIA(I,J) = IKX K = (J * 2) - 1 JPLIA(IKX) = LECT(K) 20 CONTINUE *****PV SEGSUP MLENTI * IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*)'Lecture des deplacements / liaison ',I ENDIF MLREEL = IPLRE1 SEGACT MLREEL NV = PROG(/1) DO 30 J=1,NV XPALA(I,J) = PROG(J) 30 CONTINUE *****PV SEGSUP MLREEL ENDIF ENDIF 10 CONTINUE * end do * END