[updated 28.Jun.2005]

Librairie integran > Fichier divdiv.f

Qui appelle divdiv ?

line
      SUBROUTINE DIVDIV (MIXTE,NBL,DWL,NBC,DWC,NDIM
     &                  ,ELDIPQ,TYPE,COFVAR,COEFFR,COFVAC,COEFFC,IMP)
line
  Auteur : D.Martin (Fevrier 1988)
  Derniere modification : D.Martin (28 juin 2005)
  Version 2
 
  Calcul de l'integrale elementaire  divU divV pour inconnues vectorielles
 
                  |  dWi/dx1.dWj/dx1   dWi/dx1.dWj/dx2  dWi/dx1.dWj/dx3 |
  a_{i1,i,j1,j} = |  dWi/dx2.dWj/dx1   dWi/dx2.dWj/dx2  dWi/dx2.dWj/dx3 |
                  |  dWi/dx3.dWj/dx1   dWi/dx3.dWj/dx2  dWi/dx3.dWj/dx3 |
 
 -- Arguments --
  MIXTE  indicateur de mixite des interpolations
  NBL    nombre de lignes (comptees en noeuds) de la matrice elementaire
  DWL    derivees des fonctions a l'image du point de quadrature dans
         l'element courant pour l'interpolation en ligne
  NBC    nombre de colonnes (comptees en noeuds) de la matrice elementaire
  DWC    derivees des fonctions a l'image du point quadrature dans
         l'element courant pour l'interpolation en colonne
  NDIM   dimension d'espace
  ELDIPQ poids de quadrature multiplie par l'element differentiel
  TYPE   type (REEL ou COMPLEXE) de la matrice elementaire
  COFVAR coeff. variable (cas REEL)
  COEFFR tableau des valeurs cumulees des integrands elementaires aux points
         de quadrature (cas REEL)
  COFVAC coeff. variable (cas COMPLEXE)
  COEFFC tableau des valeurs cumulees des integrands elementaires aux points
         de quadrature (cas COMPLEXE)
  IMP    numero du fichier d'impression si non nul
line
      CHARACTER*(*) TYPE
      INTEGER       MIXTE,NBL,NBC,NDIM,IMP
      REAL          DWL(NDIM,*),DWC(NDIM,*),ELDIPQ
     &             ,COFVAR,COEFFR(NDIM,NBL,NDIM,*)
      COMPLEX       COFVAC,COEFFC(NDIM,NBL,NDIM,*)
 
      INTEGER       J,J1,I,I1
      REAL          RX,DWCJ
      COMPLEX       CX
line
 
      IF (TYPE(1:1).EQ.'R') THEN
 
         DO 24 J=1,NBC
            DO 23 J1=1,NDIM
               DWCJ=ELDIPQ*DWC(J1,J)
               DO 22 I1=1,NDIM
                  Blocs sous et sur-diagonaux
                  DO 21 I=1,J-1
                     RX=COEFFR(I1,I,J1,J)
                     RX=RX + COFVAR * DWCJ * DWL(I1,I)
                     COEFFR(I1,I,J1,J)=RX
                     COEFFR(J1,J,I1,I)=RX
21                CONTINUE
                  Blocs diagonaux I=J
                  IF (I1.LE.J1) THEN
                     RX=COEFFR(I1,J,J1,J)
                     RX=RX + COFVAR * DWCJ * DWL(I1,J)
                     COEFFR(I1,J,J1,J)=RX
                     COEFFR(J1,J,I1,J)=RX
                  ENDIF
22             CONTINUE
23          CONTINUE
24       CONTINUE
 
      ELSE
 
         DO 44 J=1,NBC
            DO 43 J1=1,NDIM
               DWCJ=ELDIPQ*DWC(J1,J)
               DO 42 I1=1,NDIM
                  DO 41 I=1,J-1
                     CX=COEFFC(I1,I,J1,J)
                     CX=CX + COFVAC * DWCJ * DWL(I1,I)
                     COEFFC(I1,I,J1,J)=CX
                     COEFFC(J1,J,I1,I)=CX
41                CONTINUE
                  IF (I1.LE.J1) THEN
                     CX=COEFFC(I1,J,J1,J)
                     CX=CX + COFVAC * DWCJ * DWL(I1,J)
                     COEFFC(I1,J,J1,J)=CX
                     COEFFC(J1,J,I1,J)=CX
                  ENDIF
42             CONTINUE
43          CONTINUE
44       CONTINUE
 
      ENDIF
 
      IF (IMP.GT.0) THEN
         J=NBC
         IF (MIXTE.EQ.0) J=0
         CALL PRINTV ('DivU DivV (DIVDIV)'
     &               ,NDIM,NBL,NDIM,NBC,J,TYPE,COEFFR,COEFFC,IMP)
      ENDIF
                                                                    END !DivDiv
line
top

divdiv est appelé dans (8 procédures)

calind.f (calelem) calint.f (calelem) divpml.f (integran)
divpml.f (integran).txt intatr.f (integran) intchk.f (integran)
intgroups.h (integran) logfile  

top