C KECOM6 SOURCE GOUNAND 11/07/21 21:15:20 7046 SUBROUTINE KECOM6(CGEOME,MYLMOT,MYDISC, $ MYFALS, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : KECOM6 C PROJET : Noyau linéaire NLIN C DESCRIPTION : 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 : KEEF (recherche de l'élément fini) C APPELE PAR : C*********************************************************************** C ENTREES : C SORTIES : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 26/09/02, version initiale C HISTORIQUE : v1, 26/09/02, 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 CCOPTIO -INC SMELEME POINTEUR CGEOME.MELEME POINTEUR SOUGEO.MELEME -INC SMLMOTS POINTEUR MYLMOT.MLMOTS * Mes includes persos CBEGININCLUDE SFALRF SEGMENT FALRF CHARACTER*(LNNFA) NOMFA INTEGER NUQUAF(NBLRF) POINTEUR ELEMF(NBLRF).ELREF ENDSEGMENT SEGMENT FALRFS POINTEUR LISFA(0).FALRF ENDSEGMENT CENDINCLUDE SFALRF POINTEUR MYFALS.FALRFS CBEGININCLUDE SELREF SEGMENT ELREF CHARACTER*(LNNOM) NOMLRF CHARACTER*(LNFORM) FORME CHARACTER*(LNTYPL) TYPEL CHARACTER*(LNESP) ESPACE INTEGER DEGRE REAL*8 XCONOD(NDIMEL,NBNOD) INTEGER NPQUAF(NBDDL) INTEGER NUMCMP(NBDDL) INTEGER QUENOD(NBDDL) INTEGER ORDDER(NDIMEL,NBDDL) POINTEUR MBPOLY.POLYNS ENDSEGMENT SEGMENT ELREFS POINTEUR LISEL(0).ELREF ENDSEGMENT CENDINCLUDE SELREF POINTEUR MYLRF.ELREF * CHARACTER*4 MYDISC INTEGER IMPR,IRET * * Fonctions appelées * INTEGER IMAX * INTEGER ICOMP ,ISOUS ,MAXISO INTEGER NSOUS,NDDL,ITQUAF,MAXCMP * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans kecom6' * SEGACT CGEOME NSOUS=CGEOME.LISOUS(/1) MAXCMP=0 DO 3 ISOUS=1,NSOUS SOUGEO=CGEOME.LISOUS(ISOUS) SEGACT SOUGEO * On cherche l'élément fini correspondant au QUAF ITQUAF=SOUGEO.ITYPEL CALL KEEF(ITQUAF,MYDISC, $ MYFALS, $ MYLRF, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGACT MYLRF NDDL=MYLRF.NPQUAF(/1) MAXISO=IMAX(MYLRF.NUMCMP,NDDL) MAXCMP=MAX(MAXCMP,MAXISO) SEGDES MYLRF SEGDES SOUGEO 3 CONTINUE SEGACT MYLMOT ICOMP=MYLMOT.MOTS(/2) SEGDES MYLMOT SEGDES CGEOME IF (ICOMP.NE.MAXCMP) THEN WRITE(IOIMP,*) 'Une variable de ddls :' WRITE (IOIMP,2019) (MYLMOT.MOTS(I),I=1,MYLMOT.MOTS(/2)) 2019 FORMAT (10(2X,A8) ) * SEGPRT,MYLMOT WRITE(IOIMP,*) $ 'n''est pas compatible avec la discrétisation : ', $ MYDISC GOTO 9999 ENDIF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine kecom6' RETURN * * End of subroutine KECOM6 * END