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