[updated 3.Jan.2011]

Librairie integran > Fichier intatr.f

Qui appelle intatr ?

line
      SUBROUTINE INTATR (NUINTG,KDERIC,INDEXC,KDERIL,INDEXL,INSYME)
line
  Auteur : D.Martin (Novembre 1990)
  Derniere modification : D.Martin (03 janvier 2011)
  Version 6
   
  Recherche des attributs d'un integrand :  
   - rangs des derivees en colonne et ligne
   - indices d'extension en colonne et ligne
     (a confirmer selon la dimension du domaine de calcul)
   - indicateur de symetrie pour l'integrand
     (a confirmer quand les interpolations en ligne / colonne sont egales)
   
 -- Argument d'entree --  
  NUINTG numero d'integrand
 -- Arguments de sortie --
  KDERIC rang de la derivee en colonne (=-1 pour un terme unicolonne)
  INDEXC indice d'extension en colonne
        (presence de derivees non tangentielles pour une integrale de bord)
  KDERIL rang de la derivee en ligne (=-1 pour un terme uniligne)
  INDEXL indice d'extension en ligne
        (presence de derivees non tangentielles pour une integrale de bord)
  INSYME indicateur de symetrie : 1 integrand symetrique
                                 -1 integrand antisymetrique
                                  0 ni symetrique, ni antisymetrique
line
      IMPLICIT NONE
      INTEGER  NUINTG,KDERIC,INDEXC,KDERIL,INDEXL,INSYME
 
      INTEGER  ALPHA,BETA,GAMMA,DELTA
line
      KDERIC=0 
      INDEXC=0
      KDERIL=0 
      INDEXL=0
      INSYME=0 
 
      IF (NUINTG.LE.12) THEN
         IF (NUINTG.LE.1) THEN
            KDERIC=-1 
         ELSEIF (NUINTG.LE.4) THEN 
            D1V D2V D3V 
            KDERIC=-1  
            KDERIL=1
            INDEXL=1
         ELSEIF (NUINTG.EQ.5) THEN
            UV
            INSYME=1
         ELSEIF (NUINTG.EQ.6) THEN
            U.AV (symetrique si et seulement si A symetrique)
            INSYME=0
         ELSEIF (NUINTG.LE.9) THEN
            UD1V UD2V UD3V
            KDERIL=1
            INDEXL=1
         ELSE 
            D1UV D2UV D3UV
            KDERIC=1
            INDEXC=1
         ENDIF
      ELSEIF (NUINTG.LE.26) THEN
         D1UD1V D1UD2V D1UD3V D2UD1V D2UD2V D2UD3V D3UD1V D3UD2V D3UD3V
         GRADGRAD ROTROT DIVDIV EIJEIJ AIJDIDJ
         KDERIC=1
         INDEXC=1  
         KDERIL=1
         INDEXL=1
         CALL INTNOS (NUINTG,ALPHA,BETA,GAMMA,DELTA)
         IF (GAMMA.EQ.DELTA) INSYME=1
      ELSEIF (NUINTG.LE.29) THEN
         GRADUV DIVUV ROTUV
         KDERIC=1
         INDEXC=1
      ELSEIF (NUINTG.LE.32) THEN
         UDIVV UGRADV UROTV
         IF (NUINTG.EQ.32) INSYME=-1 (SUREMENT PAS ANTISYMETRIQUE !!!)
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.LE.39) THEN
         ROTROTBT0 ROTROTBT1 ROTROTBT2 DIVDIVBT0 DIVDIVBT1 DIVDIVBT2 EIJEIJBT0
         IF (NUINTG.EQ.33.OR.NUINTG.EQ.36.OR.NUINTG.EQ.39) THEN
            KDERIC=1
            INDEXC=1
            KDERIL=1
            INDEXL=1
         ELSEIF (NUINTG.EQ.34) THEN
            KDERIC=1
            INDEXC=1
         ELSEIF (NUINTG.EQ.37) THEN
            KDERIL=1
            INDEXL=1
         ENDIF
         INSYME=1
      ELSEIF (NUINTG.EQ.40) THEN
         U^V
         INSYME=-1
      ELSEIF (NUINTG.EQ.41) THEN
         DIV (??????)
         KDERIC=-1
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.LE.50) THEN
         UaVb ( 1<= a,b <= 3 )
         CALL INTNOS (NUINTG,ALPHA,BETA,GAMMA,DELTA)
         IF (ALPHA.EQ.BETA) INSYME=1
      ELSEIF (NUINTG.LE.131) THEN
         Ua,gVb,d ( 1<= a,g,b,d <= 3 )
         KDERIC=1
         KDERIL=1
         INDEXL=1
         INDEXC=1
         CALL INTNOS (NUINTG,ALPHA,BETA,GAMMA,DELTA)
         IF (ALPHA.EQ.BETA.AND.GAMMA.EQ.DELTA) INSYME=1
      ELSEIF (NUINTG.LE.133) THEN
         UI,IVJ,J UI,JVJ,I
         KDERIC=1
         KDERIL=1
         INDEXL=1
         INDEXC=1
         INSYME=1
      ELSEIF (NUINTG.LE.160) THEN
         Ua,gVb ( 1<= a,b,g <= 3 )
         KDERIC=1
         INDEXC=1
      ELSEIF (NUINTG.LE.187) THEN
         UaVb,g ( 1<= a,b,g <= 3 )
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.LE.201) THEN
         ROTROTP1 ROTROTP2 ROTROTP3 ROTROTP12 ROTROTP23 ROTROTP13 ROTROTP123
         DIVDIVP1 DIVDIVP2 DIVDIVP3 DIVDIVP12 DIVDIVP23 DIVDIVP13 DIVDIVP123
         : ROTROT et DIVDIV dans les methodes PML (G. Legendre)
         KDERIC=1
         INDEXC=1
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.LE.208) THEN
         EIJEIJP1 EIJEIJP2 EIJEIJP3 EIJEIJP12 EIJEIJP23 EIJEIJP13 EIJEIJP123
         : EIJEIJ dans la methode PML (G. Legendre)
         KDERIC=1
         KDERIL=1
         INDEXL=1
         INDEXC=1
         INSYME=1
      ELSEIF (NUINTG.LE.225) THEN
         UROTVP1 UROTVP2 UROTVP3 UROTVP12 UROTVP23 UROTVP13 UROTVP123
         protV / URotV dans la methode PML  (G. Legendre)
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.LE.228) THEN
         ROTUVP1 ROTUVP2 ROTUVP2 ROTUVP12 ROTUVP23 ROTUVP13 ROTUVP123
         rotUq / RotUV dans la methode PML  (G. Legendre)
         KDERIC=1
         INDEXC=1
      ELSEIF (NUINTG.LE.284) THEN
         GOTO 90001
line
 -----C'est la ZONE ! (pour introduire de nouveaux integrands)
 
      ELSEIF (NUINTG.......) THEN
line
      ELSEIF (NUINTG.LE.300) THEN
         GOTO 90001
 
      Integrands de bord, contenant la normale
 
      ELSEIF (NUINTG.LE.302) THEN
         VN V^N
         KDERIC=-1
      ELSEIF (NUINTG.EQ.303) THEN
         DNV
         KDERIC=-1 
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.EQ.304) THEN
         UDNV
         KDERIL=1
         INDEXL=1
      ELSEIF (NUINTG.EQ.305) THEN
         DNUV
         KDERIC=1
         INDEXC=1
      ELSEIF (NUINTG.LE.306) THEN
         DNUDNV
         KDERIC=1
         INDEXC=1  
         KDERIL=1
         INDEXL=1  
         INSYME=1
      ELSEIF (NUINTG.EQ.307) THEN
         DTUDTV
         KDERIC=1
         KDERIL=1 
         INSYME=1
      ELSEIF (NUINTG.LE.309) THEN
         NROTUV NDIVUV
         KDERIC=1 
         INDEXC=1
      ELSEIF (NUINTG.LE.311) THEN
         U^N.V^N U.NV.N
         INSYME=1
      ELSEIF (NUINTG.EQ.312) THEN
         U.NV
         INSYME=0
      ELSEIF (NUINTG.EQ.313) THEN
         GRADGRADTG gradgrad tangentiel
         KDERIC=1 
         KDERIL=1
         INSYME=1
      ELSE 
         GOTO 90001
      ENDIF
      RETURN
line
90001 CALL ERINTG (0,NUINTG)
line
 -- File History
  Version 6 : D.Martin (3 janiver 2011)
  - ajout des integrand PML 3d (ROTROTP/DIVDIVP/EIJEIJ/UROTP/ROTUVP[23/13/123]
  - et de l'integrand NON antisymetrique RotUV
  Version 5 : D.Martin & G. Legendre (30 octobre 2008)
  - ajout des integrands PML generaux por l'elasticite 2D :
    EIJEIJP1  EIJEIJP2  EIJEIJP12
  Version 4 : D.Martin (18 octobre 2006)
  - ajout des integrands PML generaux 2D :
    ROTROTP1  ROTROTP2  ROTROTP12 DIVDIVP1  DIVDIVP2  DIVDIVP12
  Version 3 : D.Martin (03 octobre 2005)
line
                                                                    END !IntAtr
line
top

intatr est appelé dans (8 procédures)

dskniv.f (caltrm) inttay.f (integran) klindx.f (sdexplo)
mkdomk.f (sdexplo) mkterm.f (sdexplo) nastdo.f (caltrm)
pastdo.f (caltrm) trmdom.f (caltrm)  

top