C DIMNO1 SOURCE CHAT 09/10/09 21:17:15 6519 SUBROUTINE DIMNO1 (IPRIGI,NOYAU) ************************************************************************ * * D I M N O 1 * ----------- * * FONCTION: * --------- * * DIMENSION DU NOYAU D'UN OBJET 'RIGIDITE'. * * MODE D'APPEL: * ------------- * * CALL DIMNO1 (IPRIGI,NOYAU) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPRIGI ENTIER (E) POINTEUR D'UNE 'RIGIDITE'. * NOYAU ENTIER (S) DIMENSION DU NOYAU DE LA 'RIGIDITE'. * * REMARQUES: * ---------- * * LA VALEUR "NOYAU" RETOURNEE PEUT ETRE SUPERIEURE A LA REALITE: * VOIR LA DEFINITION DE "NENS", CALCULE DANS LE SOUS-PROGRAMME * TRAITANT DE LA DECOMPOSITION EN "L.D.LT". * (LA DETECTION D'UN PIVOT NUL -- AU LIEU DE PIVOT MAXIMUM NUL -- * EST ABUSIVEMENT ASSIMILEE A UNE SINGULARITE DE MATRICE) * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 10 SEPTEMBRE 1985 * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC SMMATRI -INC SMRIGID * integer insym insym = 0 MRIGID = IPRIGI SEGACT,MRIGID NRG = IRIGEL(/1) NBR = IRIGEL(/2) IPMATR = ICHOLE IF(NORINC.GT.0 .AND. NORIND.GT.0) THEN INSYM = 1 ENDIF IF (NRG.GE.7) THEN DO 9 IN = 1,NBR IANTI=IRIGEL(7,IN) IF(IANTI.GT.0) THEN INSYM = 1 ENDIF 9 CONTINUE ENDIF SEGDES,MRIGID * IF (IPMATR .EQ. 0) THEN IF (INSYM .EQ. 0) THEN CALL TRIANG (IPRIGI,1D-18) ELSE CALL ldmt1(IPRIGI,1d-18) ENDIF IF (IERR .NE. 0) RETURN MRIGID = IPRIGI SEGACT,MRIGID IPMATR = ICHOLE SEGDES,MRIGID END IF * MMATRI = IPMATR SEGACT,MMATRI NOYAU = NENS SEGDES,MMATRI * END