dyne24
C DYNE24 SOURCE CHAT 05/01/12 23:15:54 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Operateur DYNE : algorithme de Fu - de Vogelaere * * ________________________________________________ * * * * Dimensionne les variables NLS et NVAR, gestion des demandes de * * sorties pour les liaisons. * * * * Parametres: * * * * e ITABL Table definissant les liaisons en sortie. * * e ITLIA Table definissant toutes les liaisons sur une base. * * e KTRAV Segment de travail qui va remplir MTRES dans DYNE15 * * es II Compteur * * s NLS Nombre de demandes de liaisons en sortie * * s NVAR Nombre maxi de variables internes de liaisons * * * * * * Auteur, date de cr{ation: * * * * Lionel VIVAN, le 2 octobre 1989. * * * *--------------------------------------------------------------------* -INC PPARAM -INC CCOPTIO * SEGMENT,MTRAV INTEGER ICHRE2(NBLS),MPOLA(NBLS),MNULA(NBLS) INTEGER MPOLB(NBLS),MNULB(NBLS) INTEGER IVLIAA(NBLS,NTVAR),INLIAA(NBLS,NTVAR) INTEGER IVLIAB(NBLS,NTVAR),INLIAB(NBLS,NTVAR) ENDSEGMENT * LOGICAL L0,L1,LVAR CHARACTER*8 MONMOT,TYPRET,CHARRE CHARACTER*40 CMOT * MTRAV = KTRAV NLS = 0 NVAR = 0 * * recherche des liaisons en sortie * INDICE = 0 IVAR = 0 100 CONTINUE INDICE = INDICE + 1 TYPRET = ' ' & TYPRET,I1,X1,CHARRE,L1,ITTL) IF (TYPRET.EQ.'TABLE ' .AND. ITTL.NE.0) THEN TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,ITVAR) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR) THEN NLS = NLS + 1 MNULA(NLS) = INDICE MPOLA(NLS) = ITTL & 'MOT',I1,X1,CMOT,L1,IP1) IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN IVAR = 6 NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 7 IVLIAA(NLS,2) = 1 INLIAA(NLS,2) = 8 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 69 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 70 IVLIAA(NLS,5) = 1 INLIAA(NLS,5) = 71 IVLIAA(NLS,6) = 1 INLIAA(NLS,6) = 72 * ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN MONMOT = ' ' & MONMOT,I1,XAMO,CHARRE,L1,IP1) * IF (MONMOT.EQ.'FLOTTANT') THEN IVAR = 3 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 39 ELSE IVAR = 2 ENDIF NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 15 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 * ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN IVAR = 3 NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 73 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 8 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 * ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN IVAR = 2 NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 74 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 * ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN IVAR = 1 NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 77 * ELSE RETURN ENDIF * ELSE IF (TYPRET.EQ.'TABLE ' .AND. ITVAR.NE.0) THEN NLS = NLS + 1 MNULA(NLS) = INDICE MPOLA(NLS) = ITTL & 'MOT',I1,X1,CMOT,L1,IT1) IVAR = 0 * IF (CMOT(1:17).EQ.'POINT_PLAN_FLUIDE') THEN TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 7 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,2) = 1 INLIAA(NLS,2) = 8 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 69 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 70 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,5) = 1 INLIAA(NLS,5) = 71 ENDIF TYPRET = ' ' & L0,IP0,TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,6) = 1 INLIAA(NLS,6) = 72 ENDIF IF (IVAR.EQ.0) THEN RETURN ENDIF * ELSE IF (CMOT(1:10).EQ.'POINT_PLAN') THEN TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 39 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 15 ENDIF IF (IVAR.EQ.0) THEN RETURN ENDIF * ELSE IF (CMOT(1:16).EQ.'COUPLAGE_VITESSE') THEN TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 ENDIF TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,3) = 1 INLIAA(NLS,3) = 8 ENDIF TYPRET = ' ' & 'FORCE_DE_COUPLAGE_VITESSE',L0,IP0, & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 73 ENDIF IF (IVAR.EQ.0) THEN RETURN ENDIF * ELSE IF (CMOT(1:20).EQ.'COUPLAGE_DEPLACEMENT') THEN TYPRET = ' ' & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,4) = 1 INLIAA(NLS,4) = 7 ENDIF TYPRET = ' ' & 'FORCE_DE_COUPLAGE_DEPLACEMENT',L0,IP0, & TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE ' .AND. LVAR ) THEN IVAR = IVAR + 1 IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 74 ENDIF IF (IVAR.EQ.0) THEN RETURN ENDIF * ELSE IF (CMOT(1:11).EQ.'POLYNOMIALE') THEN TYPRET = ' ' & L0,IP0,TYPRET,I1,X1,CHARRE,LVAR,IT1) IF (TYPRET.EQ.'LOGIQUE '.AND.LVAR) THEN IVAR = IVAR + 1 IVLIAA(NLS,1) = 1 INLIAA(NLS,1) = 77 ENDIF * ELSE RETURN ENDIF NVAR = MAX(NVAR,IVAR) II = II + 1 ICHRE2(II) = IVAR IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*)'DYNE24 : ICHRE2(',II,')=',IVAR ENDIF ENDIF GOTO 100 ENDIF IF (IIMPI.EQ.333) THEN WRITE(IOIMP,*) 'DYNE24 : NVAR = ',NVAR WRITE(IOIMP,*) 'DYNE24 : NLS = ',NLS WRITE(IOIMP,*) 'DYNE24 : IVAR = ',IVAR ENDIF * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales