hbmlir
C HBMLIR SOURCE CB215821 24/04/12 21:16:14 11897 c C DEVLIR SOURCE CB215821 16/12/05 21:15:17 9237 & NINS,ITREDU,IPARNUM,KPREF,KCPR,NHBM,NFFT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Operateur DYNC : continuation par longueur d'arc * * ________________________________________________ * * * * Lecture et coherence des operandes, verification des supports * * objets TBAS, TKM, TA et TINIT. * * Obtention de la liste des points de reference. * * * * Parametres: * * * * e ITBAS Table representant une base modale * * e ITKM Table contenant les matrices de raideur et de masse * * e ITA Table contenant la matrice des amortissements * * e ITLIA Table rassemblant la description des liaisons * * e ITCHAR Table contenant les chargements * * e ITINIT Table donnant les conditions initiales * * e ITOPT * e NP Nombre de pas de temps * * e NINS On veut un resultat tous les NINS pas de calcul * * e ITREDU Table contenant les noms d'inconnues de la base B * * auxquelles on se restreint * * s KPREF Segment des points de reference * * s KCPR Segment des points * * * *--------------------------------------------------------------------* -INC PPARAM -INC CCOPTIO -INC SMMODEL segment mwinit integer jpdep,jpvit,jrepr endsegment segment mtbas integer itbmod,lsstru(np1),nsstru endsegment * LOGICAL LOAMOR,L0,L1 CHARACTER*8 TYPOBJ CHARACTER*72 CHARRE,CHARRI * NINS = 1 * ITBAS = 0 ITKM = 0 ITA = 0 ITLIA = 0 ITCHAR = 0 ITINIT = 0 ITOPT = 0 ITREDU = 0 IPARNUM= 0 * * A/ Lecture des operandes, les tables puis les autres: * IF (IRET.EQ.0) THEN ENDIF IF (IERR.NE.0) RETURN IF (ITBAS.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*)' on a lu la table definissant la base modale.' ENDIF * IF (IERR.NE.0) RETURN IF (ITKM.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*) & ' on a lu la table definissant les matrices de raideurs.' ENDIF * IF (ITKM.EQ.0 .AND. ITBAS.eq.0) THEN WRITE(IOIMP,*) 'Absence de base modale ou de matrice K et M' MOTERR(1:8)='TABLE' RETURN ENDIF * IF (IERR.NE.0) RETURN IF (ITA.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*) & ' on a lu la table definissant une matrice d''amortissement.' ENDIF * IF (IERR.NE.0) RETURN IF (ITLIA.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*)' on a lu la table definissant les liaisons.' ENDIF * cbp CALL LIRTAB('CHARFREQ',ITCHAR,0,IRET) IF (IERR.NE.0) RETURN IF (ITCHAR.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*)' on a lu la table definissant les chargements.' ENDIF * IF (IERR.NE.0) RETURN IF (ITINIT.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*) &' on a lu la table definissant les conditions initiales.' ENDIF * cbp CALL LIRTAB('PAR_CONT',IPARNUM,0,IRET) IF (IERR.NE.0) RETURN IF (IPARNUM.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*) &' on a lu la table definissant les parametres de continuation.' ENDIF * IF (IERR.NE.0) RETURN IF (IREP.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*) &' on a lu la table definissant la reprise' ENDIF * IF (IERR.NE.0) RETURN * * CALL MESLIR(-269) * CALL LIRENT(NP,1,IRET) * IF (IERR.NE.0) RETURN IF (IERR.NE.0) RETURN IF (NHBM.NE.0 .AND. IIMPI.EQ.333) THEN WRITE(IOIMP,*)' On a lu le nombre d''harmoniques.' ENDIF * IF (IERR.NE.0) RETURN * IF (IERR.NE.0) RETURN * * B/ Coherence des operandes * IF (ITBAS.EQ.0 .AND. ITKM.EQ.0) THEN RETURN ENDIF IF (ITCHAR.EQ.0 .AND. ITINIT.EQ.0 .AND. IREP.EQ.0) THEN RETURN ENDIF * IF (NINS.LE.0) THEN IF(LANGUE.EQ.'ANGL') THEN MOTERR(1:40)='calculation steps between two outputs' ELSE MOTERR(1:40)='pas de calcul entre deux sorties' ENDIF RETURN ENDIF * * C/ Verification des supports des objets TBAS, TKM, TA et TINIT * et obtention de la liste des points de reference * it1 = itbas IF (IERR.NE.0) RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales