cv2mc9
C CV2MC9 SOURCE GOUNAND 24/11/06 21:15:06 12073 $ MYFALS,LCHAM, $ MATLS9,CHPLS9, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : CV2MC9 C DESCRIPTION : Transforme un MCHAEL (mon champ par éléments) C représentant un ensemble de matrices élémentaires en C RIGIDITE... 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 APPELES (E/S) : ECROBJ, PRLIST (écriture entier, objet, C impression) C APPELE PAR : PRLS92 C*********************************************************************** C ENTREES : C ENTREES/SORTIES : - C SORTIES : C TRAVAIL : * MYMEL (type MELEME) : maillage élémentaire. C * JMTLS9 (type MCHEVA) : valeurs du champ IMTLS9 C sur le maillage élémentaire. C Structure (cf.include SMCHAEL) : C (nb. ddl dual, nb. ddl primal, C nb. comp. duales, nb. comp. primales, C 1, nb. éléments) C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 26/09/03, version initiale C HISTORIQUE : v1, 26/09/03, création C HISTORIQUE : 21/05/2021 : ajout sortie de MCHAMLs 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 SMLMOTS POINTEUR MYLMOT.MLMOTS POINTEUR NCVARP.MLMOTS POINTEUR NCVARD.MLMOTS -INC SMRIGID POINTEUR MATLS9.MRIGID POINTEUR MATTMP.MRIGID POINTEUR MATTM2.MRIGID -INC SMELEME POINTEUR CGEOMQ.MELEME -INC SMCHPOI POINTEUR CHPLS9.MCHPOI POINTEUR CHPTMP.MCHPOI POINTEUR CHPTM2.MCHPOI * * Includes persos * -INC TNLIN *-INC SMCHAEL POINTEUR MYMCHA.MCHAEL *-INC SFALRF POINTEUR MYFALS.FALRFS *-INC SMTNLIN INTEGER NUMVPR,NUMVDU * CHARACTER*4 MDISCP,MDISCD,MYDISC INTEGER IMPR,IRET * LOGICAL MVVPR,MVVDU * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans cv2mc9' * WRITE(IOIMP,*) '<' MATLS9=0 CHPLS9=0 MATTMP=0 CHPTMP=0 SEGACT TABVDC SEGACT TABMAT * SEGPRT,TABMAT DO IVARPR=1,NUMVPR DO IVARDU=1,NUMVDU IJVARP=TABVDC.VVARPR(IVARPR) IJVARD=TABVDC.VVARDU(IVARDU) MVVPR=(TABVDC.MVD(IJVARP).NE.0) MVVDU=(TABVDC.MVD(IJVARD).NE.0) IKVARP=TABVDC.DJSVD(IJVARP) MDISCP=TABVDC.DISVD(IKVARP) NCVARP=TABVDC.NOMVD(IJVARP) IKVARD=TABVDC.DJSVD(IJVARD) MDISCD=TABVDC.DISVD(IKVARD) NCVARD=TABVDC.NOMVD(IJVARD) IF (MYMCHA.NE.0) THEN IF ((.NOT.MVVPR).AND.(.NOT.MVVDU)) THEN * In cv2ma9 : SEGINI MATTMP $ MYMCHA, $ MYFALS, $ MATTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ELSEIF ((.NOT.MVVPR).AND.MVVDU) THEN MYDISC=MDISCP MYLMOT=NCVARP IF (LCHAM.EQ.1) THEN $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ELSE $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ENDIF ELSEIF (MVVPR.AND.(.NOT.MVVDU)) THEN MYDISC=MDISCD MYLMOT=NCVARD IF (LCHAM.EQ.1) THEN $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ELSE $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ENDIF ELSEIF (MVVPR.AND.MVVDU) THEN MYDISC='CSTE' JGN=4 JGM=1 SEGINI,MYLMOT * MYLMOT.MOTS(1)='RES2' * In CV2CP9 : SEGINI CHPTMP IF (LCHAM.EQ.1) THEN $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ELSE $ MYFALS, $ CHPTMP, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 ENDIF SEGSUP,MYLMOT ENDIF IF (CHPTMP.NE.0) THEN IF (CHPLS9.EQ.0) THEN CHPLS9=CHPTMP CHPTMP=0 ELSE IF (LCHAM.EQ.1) THEN ELSE * In ADCHPO : SEGINI CHPTM2 ENDIF IF (CHPTM2.EQ.0) THEN WRITE(IOIMP,*) $ 'Pas pu faire le ET des champs...' GOTO 9999 ENDIF IF (LCHAM.EQ.1) THEN ELSE * In DTCHPO : SEGSUP CHPLS9 * In DTCHPO : SEGSUP CHPTMP ENDIF CHPLS9=CHPTM2 CHPTMP=0 ENDIF ENDIF IF (MATTMP.NE.0) THEN IF (MATLS9.EQ.0) THEN MATLS9=MATTMP MATTMP=0 ELSE * In FUSRIG : SEGINI MATTM2 IF (MATTM2.EQ.0) THEN WRITE(IOIMP,*) $ 'Pas pu faire le ET des rigidites...' GOTO 9999 ENDIF SEGSUP MATLS9 SEGSUP MATTMP MATLS9=MATTM2 MATTMP=0 ENDIF ENDIF ENDIF ENDDO ENDDO SEGDES TABMAT SEGDES TABVDC * WRITE(IOIMP,*) '>' IF (IMPR.GT.3) THEN IF (MATLS9.NE.0) THEN CALL PRLIST ENDIF IF (CHPLS9.NE.0) THEN IF (LCHAM.EQ.1) THEN ELSE ENDIF CALL PRLIST ENDIF ENDIF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine cv2mc9' RETURN * * End of subroutine CV2MC9 * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales