calkeq
C CALKEQ SOURCE MB234859 26/07/30 21:15:05 12609 c======================================================================= c assemble les petites matrices rigidite et calcule la matrice de c rigidite equivalente du super element c c entrée c--------- c KRIGI : matrice de rigidté initiale moins les relations c portant uniquement sur les ddl maitres c NOINC : (i,j) si la ieme inconnue de snomin existe pour le j ieme c noeud maitre c SNOMIN: tableau des composantes primales de KRIGI c ICPR : numerotation locale des noeuds maitres c c sortie c--------- c XMATR1 : contient la matrice de rigidité condensée c DES1 : contient le descripteur (DESCR SMRIGID) de c cette matrice c ICROUT : contient le segment MMATRI de la matrice c partiellement triangulée c IOK : 1 ok, 0 superelement inutile et non produit c c appelé par SUPRI c======================================================================= c IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC SMRIGID -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC CCREEL -INC SMMATRI c SEGMENT SNTO INTEGER NTOTMA(NN) ENDSEGMENT c SEGMENT SNTT INTEGER NTTMAI(NN) ENDSEGMENT c SEGMENT SNOMIN CHARACTER*(LOCOMP) NOMIN(M) ENDSEGMENT c NN = 0 SEGINI,SNTO SEGINI,SNTT c NUMDEB=NBPTS IF (IIMPI.GE.1)THEN CALL GIBTEM(XKT) INTERR(1)=XKT WRITE(IOIMP,10) 10 FORMAT('Préparation de l assemblage avec ASSEM4') ENDIF c #INUINX,ITOPOX,INCTRX,IITOPX,NBNNMA,NLIGRA,SNTT,SNTO,DES1) IF (IERR.NE.0) GOTO 5000 C IF (IIMPI.GE.1)THEN CALL GIBTEM(XKT) INTERR(1)=XKT WRITE(IOIMP,11) ENDIF NEWKEQ=1 11 FORMAT('Assemblage avec ASSEM5') c #,IITOPX,NBNNMA,SNTT,iok) IF(IERR.NE.0) GOTO 5000 IF(iok.eq.0) GOTO 5000 IF(IIMPI.GE.1)THEN CALL GIBTEM(XKT) INTERR(1)=XKT WRITE(IOIMP,12) 12 FORMAT('Début de la triangulation incomplete avec CHOMOD ') ENDIF C MMATRI=MMATRX SEGACT,MMATRI*MOD MMATRI.MFACT=0 SEGDES,MMATRI C PREC=XPETIT/xzprec ISTAB=0 xmatr1=1 CALL SHOLE(MMATRX,PREC,ISTAB,NBNNMA,NLIGRA,XMATR1,0) CC CALL CHOLE(MMATRX,PREC,ISTAB,NBNNMA,NLIGRA,XMATR1) ** CALL CHOMOD(MMATRX,NBNNMA,SNTT,SNTO,XMATR1,NLIGRA) IF(IERR.NE.0) RETURN C IF (IIMPI.GE.1)THEN CALL GIBTEM(XKT) INTERR(1)=XKT WRITE(IOIMP,13) 13 FORMAT('Fin de la triangulation') ENDIF C 5000 CONTINUE ICROUT=MMATRX RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales