C CHALEU SOURCE CB215821 23/04/28 21:15:05 11660 C======================================================================= C= C H A L E U = C= ----------- = C= = C= OPERATEUR CAST3M "SOURCE" : = C= --------------------------- = C= FF1 = 'SOURCE' MODL1 | S1 MAIL1 | ( CARA1 ) ( 'ELEM' ) ; = C= | CHP1 | = C= | CHEL1 | = C= = C= Cet operateur sert a calculer les flux nodaux equivalents a une = C= source volumique de chaleur (CHPOINT au second membre) = C= = C= ARGUMENTS : = C= ----------- = C= MODL1 (MMODEL) Modele (global) associe a la structure = C= S1 (FLOTTANT) Valeur algebrique de la source (constante) = C= MAI1 (MAILLAGE) Partie de la structure ou on impose la source = C= de chaleur de valeur S1. = C= CHP1 (CHPOINT) Valeurs algebriques des sources aux NOEUDS = C= CHEL1 (MCHAML) Valeurs algebriques des sources par ELEMENT = C= CARA1 (MCHAML) Caracteristiques geometriques (utilisees dans = C= le cas des elements de type COQUE et BARRe) = C= Sous-type 'CARACTERISTIQUES' = C= = C= RESULTAT : = C= ---------- = C= FF1 (CHPOINT) Flux nodaux equivalents = C= = C= Remarques : = C= ----------- = C= Le CHPOINT resultat FF1 est de nature DISCRETE. = C= Si le MOT 'ELEM' (facultatif) est present, le champ resultat FF1 = C= est alors un MCHAML aux NOEUDS. = C= = C= Denis ROBERT, le 26 fevrier 1988. = C======================================================================= SUBROUTINE CHALEU IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC SMMODEL -INC SMCHAML CHARACTER*4 MOTELE(1) CHARACTER*(LOCOMP) MOCOMP DATA MOTELE / 'ELEM' / segact mcoord C 1 - LECTURE DES ARGUMENTS DE L'OPERATEUR C ========================================== C 1.1 - Lecture FACULTATIVE du mot 'ELEM' C ===== ICLE = 0 CALL LIRMOT(MOTELE,1,ICLE,0) C ===== C 1.2 - Lecture OBLIGATOIRE du modele (IPMODL) C ===== MOTERR(1:8)='MODELE' CALL MESLIR(-137) CALL LIROBJ('MMODEL ',IPMODL,1,IRet) CALL ACTOBJ('MMODEL ',IPMODL,1) IF (IERR.NE.0) RETURN C ===== C 1.3 - Lecture OBLIGATOIRE des sources volumiques donnees par : C 1) un CHPOINT (IPCHPO) C ou 2) d'un maillage (IPGEOM) et d'un flottant (S1) C ou 3) d'un MCHAML (IPCHEL) C ===== IPCHPO = 0 S1 = 0.D0 IPGEOM = 0 IPCHEL = 0 CALL MESLIR(-138) CALL LIROBJ('CHPOINT ',IPCHPO,0,iret) IF (iret.EQ.0) THEN CALL MESLIR(-139) CALL LIRREE(S1,0,iret) IF (iret.NE.0) THEN MOTERR(1:8)='MAILLAGE' CALL MESLIR(-137) CALL LIROBJ('MAILLAGE',IPGEOM,1,iret) CALL ACTOBJ('MAILLAGE',IPGEOM,1) ELSE CALL LIROBJ('MCHAML ',IPCHEL,1,iret) CALL ACTOBJ('MCHAML ',IPCHEL,1) ENDIF ELSE CALL ACTOBJ('CHPOINT ',IPCHPO,1) ENDIF IF (IERR.NE.0) RETURN C ===== C 1.4 - Lecture FACULTATIVE du champ de caracteristiques (IPCARA) C ===== IPCARA = 0 IPCAR1 = 0 CALL MESLIR(-145) CALL LIROBJ('MCHAML ',IPCARA,0,iret) IF (iret .EQ. 1) CALL ACTOBJ('MCHAML ',IPCARA,1) IF (IERR.NE.0) RETURN C ===== C 1.5 - Lecture de la composante de la source (MOCOMP) C ===== MOCOMP = ' ' CALL LIRCHA(MOCOMP,0,iret) IF(iret .EQ. 1)THEN PRINT *,'Syntaxe non presente dans la notice !' CALL ERREUR(5) ENDIF IF (IERR.NE.0) RETURN C 2 - VERIFICATION DU MODELE A TRAITER C ====================================== IPMOD1 = 0 C IPMOD1 : Modele a traiter C IFORMU : indice correspondant a la formulation C ITYPEF : indicateur du type d'elements (massif, coque ou barre) CALL CHALVM(IPMODL,IPMOD1,IFORMU,ITYPEF) IF (IERR.NE.0) GOTO 9900 C 3 - ANALYSE DU TERME SOURCE C ============================= C Reduction du MCHAML de sources si fourni IF (IPCHEL.NE.0) THEN IPCHMZ = IPCHEL CALL REDUAF(IPCHMZ,IPMOD1,IPCHEL,0,iok,kerre) IF (iok.NE.1) CALL ERREUR(kerre) IF (IERR.NE.0) GOTO 9900 C Si IPCHEL, verif. si caracteristiques sont dans MCHAML source IF (IPCARA.EQ.0.AND.(ITYPEF.EQ.2.OR.ITYPEF.EQ.3)) THEN CALL ECRCHA('GEOM') CALL ECROBJ('MMODEL ',IPMOD1) CALL EXTRAI IF (IERR.NE.0) GOTO 9900 CALL LIROBJ('LISTMOTS',MLMOT1,1,IRET) IF (IERR.NE.0) GOTO 9900 CALL EXCOC2(IPCHEL,MLMOT1,IPCAR1,MLMOT1,1) IF (IERR.NE.0) GOTO 9900 IPCARA = IPCAR1 ENDIF ENDIF C Mise sous forme de MCHAML des donnees d'entrees et C Determination du support du MCHAML de sources CALL CHALVS(IPMOD1,IFORMU,ITYPEF, IPCHPO,S1,IPGEOM,IPCHEL, & IPCHSO,ISUPSO) IF (IERR.NE.0) GOTO 9900 C 4 - ANALYSE DU CHAMP DE CARACTERISTIQUES C ========================================== C Verification de l'existence des caracteristiques C dans le cas d'elements COQUEs et BARREs. C Si IPCHEL, verif. si caracteristiques sont dans MCHAML source IF (IPCARA.EQ.0) THEN IF (ITYPEF.EQ.2) THEN CALL ERREUR(514) ELSE IF (ITYPEF.EQ.3) THEN CALL ERREUR(518) ENDIF IF (IERR.NE.0) GOTO 9900 ELSE C En elements MASSIFs, aucune caracteristique n'est necessaire. IF (ITYPEF.EQ.1) IPCARA = 0 ENDIF IF (IPCARA.NE.0) THEN IPCHMZ = IPCARA CALL REDUAF(IPCHMZ,IPMOD1,IPCARA,0,iok,kerre) IF (iok.NE.1) CALL ERREUR(kerre) IF (IERR.NE.0) GOTO 9900 C mchelm = IPCARA SEGACT,mchelm IF (mchelm.titche.NE.'CARACTERISTIQUES') THEN MOTERR(1:16) = 'CARACTERISTIQUES' CALL ERREUR(291) C SEGDES,mchelm GOTO 9900 ENDIF ENDIF C 5 - CALCUL DES FLUX NODAUX EQUIVALENTS C ======================================== CALL CHAL1(IPMOD1,IFORMU,ITYPEF, IPCHSO,ISUPSO, IPCARA, IPCHAL) IF (IERR.NE.0 .OR. IPCHAL.EQ.0) GOTO 9900 C 6 - ECRITURE DE L'OBJET RESULTAT (CHPOINT OU MCHAML) C ====================================================== IF (ICLE.EQ.0) THEN CALL CHAMPO(IPCHAL,0,IPCHAP,iret) C= Le resultat est un CHPOINT de nature DISCRETE. MCHEL1=IPCHAL SEGSUP,MCHEL1 IF (iret.NE.1 .OR. IERR.NE.0) RETURN CALL ACTOBJ('CHPOINT ',IPCHAP,1) CALL ECROBJ('CHPOINT ',IPCHAP) ELSE CALL ACTOBJ('MCHAML ',IPCHAL,1) CALL ECROBJ('MCHAML ',IPCHAL) ENDIF C 7 - FIN C ========= 9900 CONTINUE IF (IPMOD1.NE.0 .AND. IPMOD1 .NE. IPMODL) THEN MMODE1 = IPMOD1 SEGSUP,MMODE1 ENDIF IF (IPCAR1.NE.0 .AND. IPCAR1 .NE. IPCHEL) THEN MCHEL1 = IPCAR1 SEGSUP,MCHEL1 ENDIF END