chalvm
C CHALVM SOURCE CB215821 24/04/12 21:15:14 11897 C======================================================================= C= C H A L V M = C= ----------- = C= = C= OPERATEUR CAST3M "SOURCE" : = C= --------------------------- = C= VERIFICATIONS SUR LE MODELE = C= Le MODELE doit contenir exclusivement un seul type = C= d'elements, soit MASSIFs, soit COQUEs, soit BARREs. = C= = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLMOTS -INC SMMODEL C ---------- C= IMASSI Tableau contenant les numeros dans NOMTP des elements = C= thermiques de type MASSIF (dont l'element BARR) = C= LMASSI Longueur du tableau IMASSI = C= ICOQUE Tableau contenant les numeros dans NOMTP des elements = C= thermiques de type COQUE = C= LCOQUE Longueur du tableau ICOQUE = C= IBARTY Tableau contenant les numeros dans NOMTP des elements = C= thermiques de type BARRE ou TUYAU = C= LBARTY Longueur du tableau IBARTY = C ---------- PARAMETER (LMASSI=16, LCOQUE=5, LBARTY=3) INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE),IBARTY(LBARTY) C ---------- C Elements TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10 C MASSIFs PYR5 PY13 T1D2 T1D3 M1D2 M1D3 C ---------- DATA IMASSI / 4, 6, 8, 10, 14, 15, 16, 17, 23, 24, & 25, 26, 191, 192, 193, 194 / C ------------- C Elts COQUEs COQ2 COQ3 COQ8 COQ4 COQ6 C ------------- DATA ICOQUE / 44, 27, 41, 49, 56 / C ------------- C Elts BARRE/TUYA BARR TUYm TUYn C ------------- DATA IBARTY / 46, 269, 270 / C ------------- IPMOD1 = 0 IFORMU = 0 ITYPEF = 0 C ====================================================== C 1 - EXTRACTION DE LA FORMULATION A TRAITER DU MODELE C ====================================================== C 1.1 - Verification de la formulation (unique) du modele C 1.2 - Recuperation du modele de la formulation retenue C 1.3 - Verification sur unicite de type EF retenu C ===== iTHER = 0 iTHHY = 0 iDIFF = 0 iELEC = 0 iCHPH = 0 * jMASSi = 0 jCOQUe = 0 jBARRe = 0 * * IGAU non nul : presence d'une source gaussienne de chaleur * Si IGAU non nul, uniquement massifs IGAU = 0 * MMODEL = IPMODL SEGACT,MMODEL NSOUS = KMODEL(/1) SEGINI,MMODE1=MMODEL N1 = 0 DO isou = 1, NSOUS IMODEL = mmodel.KMODEL(isou) SEGACT,IMODEL MELE = imodel.NEFMOD i_mod1 = 0 IF (imodel.FORMOD(/2).EQ.1) THEN IF (imodel.FORMOD(1).EQ.'THERMIQUE') THEN NMAT = imodel.MATMOD(/2) IF (iga1.NE.0) IGAU = 1 IF (icov+iray.EQ.0) THEN iTHER = 1 i_mod1 = 1 ENDIF ELSEIF (imodel.FORMOD(1).EQ.'THERMOHYDRIQUE ') THEN iTHHY = 1 i_mod1 = 1 ELSEIF (imodel.FORMOD(1).EQ.'DIFFUSION ') THEN iDIFF = 1 i_mod1 = 1 ELSEIF (imodel.FORMOD(1).EQ.'ELECTROSTATIQUE ') THEN iELEC = 1 i_mod1 = 1 ELSEIF (imodel.FORMOD(1).EQ.'CHANGEMENT_PHASE') THEN iCHPH = 1 i_mod1 = 1 ENDIF ENDIF IF (i_mod1.NE.0) THEN N1 = N1 + 1 MMODE1.KMODEL(N1) = IMODEL IF (iok.NE.0) THEN jBARRe = jBARRe+1 ELSE IF (iok.NE.0) THEN jMASSi = jMASSi+1 ELSE IF (iok.NE.0) jCOQUe = jCOQUe+1 ENDIF ENDIF ENDIF ENDDO IF ((iTHER+iTHHY+iELEC+iDIFF+iCHPH) .NE.1 ) THEN write(ioimp,*) 'Une seule formulation dans le modele !' GOTO 9900 ENDIF IF (iTHER .EQ. 1) THEN IFORMU = 1 ELSE IF (iTHHY .EQ. 1) THEN IFORMU = 2 ELSE IF (iDIFF .EQ. 1) THEN IFORMU = 3 ELSE IF (iELEC .EQ. 1) THEN IFORMU = 4 ELSE IF (iCHPH .EQ. 1) THEN IFORMU = 1 ELSE IFORMU = 0 GOTO 9900 ENDIF IF (jMASSi.EQ.N1) THEN ITYPEF = 1 ELSE IF (jCOQUe.EQ.N1) THEN ITYPEF = 2 ELSE IF (jBARRe.EQ.N1) THEN ITYPEF = 3 ELSE ITYPEF = 0 GOTO 9900 ENDIF IF (IGAU.NE.0.AND.ITYPEF.NE.1) THEN MOTERR(1:16) = 'SOURCE ' MOTERR(17:32) = 'GAUSSIENNE ' GOTO 9900 ENDIF C Dimensionnement final IF (N1.EQ.0) THEN write(ioimp,*) 'Modele vide ??' GOTO 9900 ELSEIF (N1 .EQ. NSOUS) THEN MMODE1 = MMODEL ELSE SEGADJ,MMODE1 ENDIF IPMOD1 = MMODE1 9900 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales