Download intgra.eso

Back to the list

   1 : C INTGRA    SOURCE    PV        09/03/12    21:25:26     6325           
   2 : 
   3 : C---------------------------------------------------------------------
   4 : C Integration d'une composante d'un MCHAML sur le domaine ou elle est
   5 : C definie. Le resultat est soit global, soit local (i.e. sur chaque
   6 : C element, option ELEM).
   7 : C-------------------------
   8 : C Phrase d'appel gibiane :
   9 : C-------------------------
  10 : C RESU1 = INTG ('ELEM') MODE1 CHAM1 ( MOT2 ) ( CHAM2 )
  11 : C-------------------------
  12 : C Operandes et resultat :
  13 : C-------------------------
  14 : C ELEM  : Option precisant que le resultat est donne elt par elt (MOT)
  15 : C MODE1 : Modele de calcul (MMODEL)
  16 : C CHAM1 : Champ par element (MCHAML)
  17 : C MOT2  : Nom de la composante a integrer (MOT, facultatif si 1 comp.)
  18 : C CHAM2 : Champ par element de CARACTERISTIQUE (MCHAML, facultatif)
  19 : C RESU1 : FLOTTANT si l'option 'ELEM' n'est pas precisee,
  20 : C         Champ par element (objet MCHAML) sinon.
  21 : C---------------------------------------------------------------------
  22 : 
  23 :       SUBROUTINE INTGRA
  24 : 
  25 :       IMPLICIT INTEGER(I-N)
  26 :       IMPLICIT REAL*8 (A-H,O-Z)
  27 : 
  28 : -INC CCOPTIO
  29 : -INC SMCHAML
  30 : 
  31 :       CHARACTER*4 MACOMP,MOT1
  32 : 
  33 : C- Lecture eventuelle du mot cle 'ELEM'
  33 :       CALL LIRMOT('ELEM',1,IELEM,0)
  34 :       IF (IERR.NE.0) RETURN
  35 : 
  36 : C- Lecture du modele
  36 :       CALL LIROBJ('MMODEL',IPMODL,1,IRET)
  37 :       IF (IERR.NE.0) RETURN
  38 : 
  39 : C- Lecture du MCHAML
  39 :       CALL LIROBJ('MCHAML',IPCHB1,1,IRET)
  40 :       IF (IERR.NE.0) RETURN
  41 : 
  42 : C- Lecture eventuelle du nom de la composante du MCHAML a considerer
  42 :       CALL LIRCHA(MACOMP,0,IRT3)
  43 :       IF (IERR.NE.0) RETURN
  44 : 
  45 : C- Lecture facultative du MCHAML de CARACTERISTIQUES
  45 :       CALL LIROBJ('MCHAML',IPCHE2,0,IRET)
  46 :       IF (IERR.NE.0) RETURN
  47 : 
  48 : C- Dans le cas ou le MCHAML a plus d'une composante
  49 : C- on impose la donnee du nom de la composante a traiter.
  50 :       IF (IRT3.EQ.0) THEN
  51 :         MCHELM=IPCHB1
  52 :         SEGACT,MCHELM
  53 :         N1=ICHAML(/1)
  54 :         DO i=1,N1
  55 :           MCHAML=ICHAML(I)
  56 :           SEGACT,MCHAML
  57 :           N2=IELVAL(/1)
  58 :           SEGDES,MCHAML
  59 :           IF (N2.GT.1) THEN
  60 :             MOTERR(1:8)=' MCHAML '
  61 :             INTERR(1)=N2
  61 :             CALL ERREUR(761)
  62 :             SEGDES,MCHELM
  63 :             RETURN
  64 :           ENDIF
  65 :         ENDDO
  66 :         SEGDES,MCHELM
  67 :       ENDIF
  68 : 
  69 : C- Dans le cas ou le nom de la composante du MCHAML
  70 : C- a considerer est precise, on l'extrait du MCHAML.
  71 :       IPCHE1=IPCHB1
  72 :       IF (IRT3.NE.0) THEN
  73 :         MOT1='SCAL'
  73 :         CALL EXCOC1(IPCHB1,MACOMP,IPCHE1,MOT1,0)
  74 :         IF (IERR.NE.0) RETURN
  75 :       ENDIF
  76 : 
  77 : C- Calcul de l'integrale
  77 :       CALL INTGCA(IPMODL,IPCHE1,IPCHE2,IELEM,IRET,XRET,IPINT)
  78 :       IF (IERR.NE.0) RETURN
  79 : 
  80 : C- Ecriture du resultat et menage
  81 :       IF (IPINT.EQ.0) THEN
  81 :         CALL ECRREE(XRET)
  82 :       ELSE
  82 :         CALL ECROBJ('MCHAML',IPINT)
  83 :       ENDIF
  83 :       IF (IRT3.NE.0) CALL DTCHAM(IPCHE1)
  84 : 
  85 :       RETURN
  86 :       END
  87 : 
  88 :  
  89 :  
  90 :  
  91 :  

© Cast3M 2003 - All rights reserved.
Disclaimer