1 : C DIMESH SOURCE CHAT 07/10/29 21:18:08 5940 2 : SUBROUTINE DIMESH(MELEME,IDMESH,IMPR,IRET) 3 : IMPLICIT REAL*8 (A-H,O-Z) 4 : IMPLICIT INTEGER (I-N) 5 : C*********************************************************************** 6 : C NOM : DIMESH 7 : C DESCRIPTION : Renvoie la dimension des éléments du maillage 8 : C ou une erreur si plusieurs dimensions 9 : C Pareil que la procédure DIMM 10 : C 11 : C LANGAGE : ESOPE 12 : C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) 13 : C mél : gounand@semt2.smts.cea.fr 14 : C*********************************************************************** 15 : C APPELES : 16 : C APPELES (E/S) : 17 : C APPELES (BLAS) : 18 : C APPELES (CALCUL) : 19 : C APPELE PAR : 20 : C*********************************************************************** 21 : C SYNTAXE GIBIANE : 22 : C ENTREES : MELEME 23 : C ENTREES/SORTIES : 24 : C SORTIES : IDMESH 25 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 26 : C*********************************************************************** 27 : C VERSION : v1, 14/10/2005, version initiale 28 : C HISTORIQUE : v1, 14/10/2005, création 29 : C HISTORIQUE : 30 : C HISTORIQUE : 31 : C*********************************************************************** 32 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 33 : C en cas de modification de ce sous-programme afin de faciliter 34 : C la maintenance ! 35 : C*********************************************************************** 36 : -INC CCOPTIO 37 : -INC CCGEOME 38 : -INC SMELEME 39 : * 40 : CHARACTER*4 NOMEL 41 : LOGICAL LPART,LFIDIM 42 : INTEGER IMPR,IRET 43 : * 44 : * Executable statements 45 : * 46 : IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans dimesh.eso' 47 : * 48 : LFIDIM=.FALSE. 49 : IDMESH=-1 50 : * 51 : SEGACT MELEME 52 : NBSOUS=LISOUS(/1) 53 : LPART=(NBSOUS.NE.0) 54 : IF (LPART) THEN 55 : NSOUS=NBSOUS 56 : ELSE 57 : NSOUS=1 58 : ENDIF 59 : DO ISOUS=1,NSOUS 60 : IF (LPART) THEN 61 : IPT1=LISOUS(ISOUS) 62 : SEGACT IPT1 63 : ELSE 64 : IPT1=MELEME 65 : ENDIF 66 : ITYP=IPT1.ITYPEL 67 : IF (ITYP.LE.0) THEN 68 : WRITE(IOIMP,*) 'ITYPEL<=0 ?' 69 : GOTO 9999 70 : ENDIF 71 : NOMEL=NOMS(ITYP) 71 : CALL DIMELE(NOMEL,IDIMEL,IMPR,IRET) 72 : IF (IRET.NE.0) GOTO 9999 73 : IF (LFIDIM) THEN 74 : IF (IDIMEL.NE.IDMESH) THEN 75 : WRITE(IOIMP,*) 'Composite mesh not allowed' 76 : GOTO 9999 77 : ENDIF 78 : ELSE 79 : IDMESH=IDIMEL 80 : LFIDIM=.TRUE. 81 : ENDIF 82 : IF (LPART) THEN 83 : SEGDES IPT1 84 : ENDIF 85 : ENDDO 86 : SEGDES MELEME 87 : IF (.NOT.LFIDIM) THEN 88 : WRITE(IOIMP,*) 'No known elements in this mesh' 89 : GOTO 9999 90 : ENDIF 91 : * 92 : * Normal termination 93 : * 94 : IRET=0 95 : RETURN 96 : * 97 : * Format handling 98 : * 99 : * 100 : * Error handling 101 : * 102 : 9999 CONTINUE 103 : IRET=1 104 : WRITE(IOIMP,*) 'An error was detected in subroutine dimesh' 105 : RETURN 106 : * 107 : * End of subroutine DIMESH 108 : * 109 : END 110 : 111 : 112 :
© Cast3M 2003 - All rights reserved.
Disclaimer