mcompa
C MCOMPA SOURCE PV 20/09/26 21:18:45 10724 $ LCOMPA, $ IMPR,IRET) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C*********************************************************************** C NOM : MCOMPA C PROJET : Noyau linéaire NLIN C DESCRIPTION : On vérifie que MATELE et MATASS ont la même C structure (matrices élémentaires portant C sur les mêmes inconnues). Seuls les valeurs des C matrices élémentaires doivent être différentes. C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : - C APPELE PAR : KRES2 C*********************************************************************** C ENTREES : MATELE, MATASS C SORTIES : LCOMPA C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 17/12/99, nouvelle version initiale C HISTORIQUE : v1, 17/12/99, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMMATRIK POINTEUR MATELE.MATRIK POINTEUR MATASS.MATRIK POINTEUR IMATEL.IMATRI POINTEUR IMATAS.IMATRI * INTEGER IMPR,IRET * LOGICAL LCOMPA INTEGER IMATE,ITOTIN INTEGER NMATE,NTOTIN INTEGER NBMASS,NBMELE INTEGER NMATAS,NMATEL * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans mcompa' LCOMPA=.TRUE. * * Quelques tests * SEGACT MATASS SEGACT MATELE NMATAS=MATASS.IRIGEL(/2) NMATEL=MATELE.IRIGEL(/2) LCOMPA=LCOMPA.AND.(NMATAS.EQ.NMATEL) IF (LCOMPA) THEN NMATE=NMATAS DO 1 IMATE=1,NMATE LCOMPA=LCOMPA.AND.(MATASS.IRIGEL(7,IMATE).EQ. $ MATELE.IRIGEL(7,IMATE)) IMATAS=MATASS.IRIGEL(4,IMATE) IMATEL=MATELE.IRIGEL(4,IMATE) SEGACT IMATAS SEGACT IMATEL LCOMPA=LCOMPA.AND.(NBMASS.EQ.NBMELE) IF (LCOMPA) THEN NTOTIN=NBMASS DO 12 ITOTIN=1,NTOTIN LCOMPA=LCOMPA.AND.(IMATAS.LISDUA(ITOTIN).EQ. $ IMATEL.LISDUA(ITOTIN)) 12 CONTINUE LCOMPA=LCOMPA.AND.(IMATAS.LIZAFM(/1).EQ. $ IMATEL.LIZAFM(/1)) ENDIF SEGDES IMATEL SEGDES IMATAS 1 CONTINUE ENDIF SEGDES MATELE SEGDES MATASS * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine mcompa' RETURN * * End of subroutine MCOMPA * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales