etoil1
C ETOIL1 SOURCE GOUNAND 21/03/31 21:15:05 10931 $ IPT2) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : ETOIL1 C C DESCRIPTION : Etant donné un maillage simple IPT1 constitue C d'elements de type POI1, SEG2, TRI3 ou QUA4 et un noeud NODE, on C construit IPT2 le maillage obtenu par étoilement de IPT1 avec C NODE. C L'étoilement est fait avec les éléments de IPT1 qui ne C contiennent pas NODE. C IPT1 est supposé actif. IPT2 est rendu actif*MOD. C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C VERSION : v1, 05/02/2013, version initiale C HISTORIQUE : v1, 05/05/2013, création C HISTORIQUE : v2, gestion correcte du ITYPEL C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMELEME PARAMETER(NLICIT=4) INTEGER LTENT(NLICIT) INTEGER LTSOR(NLICIT) * Type d'éléments en entrée * POI1 SEG2 TRI3 QUA4 DATA LTENT/ 1, 2, 4, 8/ * Type d'éléments en sortie * SEG2 TRI3 TET4 PYR5 DATA LTSOR/ 2, 4, 23, 25/ LOGICAL LNODE * * Executable statements * ITENT=IPT1.ITYPEL DO i=1,nlicit if (itent.eq.ltent(i)) then ident=i goto 666 endif enddo 666 continue * 44 2 * Type d'element inconnu %m1:4 MOTERR(1:4)=NOMS(ITENT) RETURN endif * On extrait les éléments du bord qui ne s'appuient pas * sur NODE * +1 car ce seront des éléments volumiques NBNN=IPT1.NUM(/1)+1 NBELEM=IPT1.NUM(/2) NBSOUS=0 NBREF=0 SEGINI IPT2 NBELE2=0 DO IBELE1=1,IPT1.NUM(/2) LNODE=.FALSE. DO IBNN1=1,IPT1.NUM(/1) INO=IPT1.NUM(IBNN1,IBELE1) IF (INO.EQ.NODE) LNODE=.TRUE. IPT2.NUM(IBNN1,NBELE2+1)=INO ENDDO IPT2.NUM(NBNN,NBELE2+1)=NODE IPT2.ICOLOR(NBELE2+1)=IPT1.ICOLOR(IBELE1) IF (.NOT.LNODE) NBELE2=NBELE2+1 ENDDO NBELEM=NBELE2 SEGADJ IPT2 RETURN * * End of subroutine ETOIL1 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales