dyne21
C DYNE21 SOURCE BP208322 18/01/10 21:15:57 9684 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Operateur DYNE : * * ________________________________________________ * * * * Determination des parametres de liaison pour la base A. * * * * Parametres: * * * * e ITLA Table rassemblant la description des liaisons * * e PDT Valeur du pas de temps * * es MTRA Segment de travail temporaire (indique si liaison POL) * * s NLIAA Nombre total de liaisons. * * s NXPALA Maxi du nombre de parametres definissant une liaison. * * s NPLAA Maxi du nombre de points intervenant dans une liaison. * * s NIPALA Maxi du nombre de parametres definissant une liaison. * * * * Auteur, date de creation: * * * * Lionel VIVAN, le 24 aout 1989. * * * *--------------------------------------------------------------------* -INC PPARAM -INC CCOPTIO -INC SMTABLE * SEGMENT,MTRA INTEGER IPLA(NTRA) ENDSEGMENT * LOGICAL L0,L1 CHARACTER*8 TYPRET,CHARRE CHARACTER*40 CMOT,CMOT2 * * Boucle sur le nombre de liaisons * NXPALA = 0 NIPALA = 20 cbp, indices NIPALA=4,20 reserves pour liaisons conditionelles cbp -> incompatible avec convolution NPLAA = 0 NLIAA = 0 IL = 0 10 CONTINUE IL = IL + 1 TYPRET = ' ' & TYPRET,I0,X0,CHARRE,L1,ITLIAI) IF (IERR.NE.0) RETURN IF (ITLIAI.NE.0) THEN NLIAA = NLIAA + 1 & 'MOT',I1,X0,CMOT,L1,IP1) IF (IERR.NE.0) RETURN c write(*,*) 'DYNE21: liaison A ',IL,' de type ',CMOT * * ------ liaison elementaire POINT_PLAN_FLUIDE * IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN IPLA(IL) = 0 KIPALA = 3 KXPALA = 6 KPLAA = 1 NXPALA = MAX(NXPALA,KXPALA) NIPALA = MAX(NIPALA,KIPALA) NPLAA = MAX(NPLAA,KPLAA) * * ------ liaison elementaire POINT_PLAN * ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN IPLA(IL) = 0 TYPRET = ' ' & TYPRET,I1,XAMO,CHARRE,L1,IP1) IF (IERR.NE.0) RETURN IF (TYPRET.EQ.'FLOTTANT') THEN KXPALA = 3 ELSE KXPALA = 2 ENDIF KIPALA = 3 KPLAA = 1 NXPALA = MAX(NXPALA,KXPALA) NIPALA = MAX(NIPALA,KIPALA) NPLAA = MAX(NPLAA,KPLAA) * * ------ liaison elementaire de couplage en vitesse * ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN IPLA(IL) = 0 KXPALA = 1 KPLAA = 2 KIPALA = 3 NXPALA = MAX(NXPALA,KXPALA) NIPALA = MAX(NIPALA,KIPALA) NPLAA = MAX(NPLAA,KPLAA) * * ------ liaison elementaire de couplage en deplacement * ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN IPLA(IL) = 0 cbp KXPALA = 1 KXPALA = 2 KPLAA = 2 KIPALA = 3 cbp on a besoin de savoir si FONCTION_CONVOLUTION ou pas TYPRET=' ' & ,TYPRET,I1,X1,CMOT2,L1,IP1) IF (IERR.NE.0) RETURN IF(TYPRET.EQ.'LISTREEL') THEN IPLA(IL) = 2 KIPALA = 6 ELSEIF(TYPRET.EQ.'MOT') THEN IF (CMOT2.EQ.'GRANGER_PAIDOUSSIS') THEN IPLA(IL) = 2 KIPALA = 6 KXPALA = 3 ENDIF ENDIF NXPALA = MAX(NXPALA,KXPALA) NIPALA = MAX(NIPALA,KIPALA) NPLAA = MAX(NPLAA,KPLAA) *+* * ------ liaison elementaire POLYNOMIALE * ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN IPLA(IL) = 1 IF (IERR.NE.0) RETURN KXPALA = NX KPLAA = NI KIPALA = 3 NXPALA = MAX(NXPALA,KXPALA) NIPALA = MAX(NIPALA,KIPALA) NPLAA = MAX(NPLAA,KPLAA) * * ------ liaison elementaire ... * * ELSE IF (CMOT(1: ).EQ.' ') THEN * IPLA(IL) = 0 * KXPALA = ... * KIPALA = ... * KPLAA = ... * NXPALA = MAX(NXPALA,KXPALA) * NIPALA = MAX(NIPALA,KIPALA) * NPLAA = MAX(NPLAA,KPLAA) ELSE RETURN ENDIF GOTO 10 ENDIF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales