ldmt1
C LDMT1 SOURCE MB234859 26/07/30 21:15:07 12609 C======================================================================= C ASSEMBLE LES PETITES MATRICES de RIGIDITE ET LES MET SOUS LA FORME C t C L.D.M C IL LE POINTEUR DE LA MATRICE RESULTANTE DANS ICHOLE (segment MRIGID) C C Cette subroutine est équivalente à TRIANG dans le cas de C l'inversion des matrices symétrique C C Appelée par : LDMT C C Auteur : Michel BULIK C C Date : Printemps '95 C C Langage : ESOPE + FORTRAN77 C C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC SMRIGID -INC SMELEME -INC SMMATRI -INC PPARAM -INC CCOPTIO C ... Ces variables ont pour but, de diriger le comportement de LDMT2 ... C TRSUP - TRiangle SUPérieur C MENAGE - évident C LDIAG - initialisation et remplissage de MDIAG et MDNOR demandés LOGICAL TRSUP,MENAGE,LDIAG IF (IIMPI.EQ.1)THEN CALL GIBTEM(XKT) INTERR(1)=INT(XKT) WRITE(IOIMP,10) 10 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT ASNS1 ') ENDIF C C ... MMATRI est initialisé dans ASSEM1 et renvoyé en tant que résultat C dans la variable MMATRX, il est désactivé à la sortie ... & IITOPX,ITOPOD,IITOPD,IPODD) IF(IERR.NE.0) RETURN IF (IIMPI.EQ.1) THEN CALL GIBTEM(XKT) INTERR(1)=INT(XKT) WRITE(IOIMP,11) 11 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LDMT2') ENDIF C ... On initialise IJMAX ici et non dans LDMT2, car celui-ci est C appelé deux fois ... MMATRI=MMATRX SEGACT,MMATRI*MOD IJMAX=0 MFACT=IGRADJ SEGDES,MMATRI C TRSUP =.FALSE. LDIAG =.TRUE. njtot=0 C write(6,*) ' premier appel' IF(IERR.NE.0) GOTO 5000 C TRSUP =.TRUE. LDIAG =.FALSE. C write(6,*) ' deuxieme appel' IF(IERR.NE.0) GOTO 5000 C IF (IIMPI.EQ.1)THEN CALL GIBTEM(XKT) INTERR(1)=INT(XKT) WRITE(IOIMP,12) 12 FORMAT(' L''IMPRESSION PRECEDENTE EST AVANT LDMT3') ENDIF C nbnnma=0 nligra=0 xmatri=0 istab =0 C CALL SHOLE(MMATRX,PREC,ISTAB,NBNNMA,NLIGRA,XMATRI,1) CC CALL LDMTS(MMATRX,PREC,istab,nbnnma,nligra,xmatri) CC CALL LDMT3(MMATRX,PREC) IF(IERR.NE.0) GOTO 5000 IF (IIMPI.EQ.1)THEN CALL GIBTEM(XKT) INTERR(1)=INT(XKT) WRITE(IOIMP,13) 13 FORMAT(' L''IMPRESSION PRECEDENTE EST APRES LDMT3') ENDIF C MRIGID=KRIGI SEGACT,MRIGID*MOD ICHOLE=MMATRX SEGDES MRIGID C 5000 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales