[updated 28.Jun.2005]

Librairie integran > Fichier wnwn.f

Qui appelle wnwn ?

line
      SUBROUTINE WNWN (MIXTE,NBL,WL,NCL,NBC,WC,NCC,NORMAL
     &                ,ELDIPQ,TYPE,COFVAR,COEFFR,COFVAC,COEFFC,IMP)
line
  Auteurs : D.Martin & O.DeBayser (Novembre 1992)
  Derniere modification : D.Martin (28 juin 2005)
  Version 2
 
  Calcul de l'integrale elementaire U.n V.n pour inconnues vectorielles
 
 -- Arguments --
  MIXTE  indice de mixite de l'interpolation
  NBL    nombre de lignes (comptees en noeuds) de la matrice elementaire
  NCL    nombre de composantes pour l'inconnue en ligne
  WL     valeurs de fonctions de base pour l'interpolation en ligne
  NBC    nombre de colonnes (comptees en noeuds) de la matrice elementaire
  NCC    nombre de composantes pour l'inconnue en colonne
  WC     valeurs de fonctions de base pour l'interpolation en colonne
  NORMAL composantes du vecteur normal a l'image du point de quadrature
         complete de zeros si NCC > NDIM
  ELDIPQ poids de quadrature multiplie par l'element differentiel
  TYPE   type (REEL ou COMPLEXE) de l'integrand ou du coeff. variable
  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,NCL,NBC,NCC,IMP
      REAL          WC(*),WL(*),ELDIPQ,NORMAL(*)
      REAL          COFVAR,COEFFR(NCL,NBL,NCC,*)
      COMPLEX       COFVAC,COEFFC(NCL,NBL,NCC,*)
 
      INTEGER       J,J1,I,I1
      REAL          DWJDN,RS
      COMPLEX       CS
line
      IF (TYPE(1:1).EQ.'R') THEN
 
         IF (MIXTE.EQ.0) THEN
            DO 24 J=1,NBC
               DO 23 J1=1,NCC
                  DWJDN=ELDIPQ*WC(J)*NORMAL(J1)
                  DO 22 I=1,J
                     DO 21 I1=1,MAX(NCC*MIN(1,J-I),J1)
                        RS=COEFFR(I1,I,J1,J)
                        RS=RS+COFVAR*DWJDN*WL(I)*NORMAL(I1)
                        COEFFR(I1,I,J1,J)=RS
                        COEFFR(J1,J,I1,I)=RS
21                   CONTINUE
22                CONTINUE
23             CONTINUE
24          CONTINUE
 
         ELSE
 
            DO 28 J=1,NBC
               DO 27 J1=1,NCC
                  DWJDN=ELDIPQ*WC(J)*NORMAL(J1)
                  DO 26 I=1,NBL
                     DO 25 I1=1,NCL
                        COEFFR(I1,I,J1,J)=COEFFR(I1,I,J1,J)+COFVAR
     &                                   * DWJDN*WL(I)*NORMAL(I1)
25                   CONTINUE
26                CONTINUE
27             CONTINUE
28          CONTINUE
         ENDIF
      ELSE
         IF (MIXTE.EQ.0) THEN
            DO 44 J=1,NBC
               DO 43 J1=1,NCC
                  DWJDN=ELDIPQ*WC(J)*NORMAL(J1)
                  DO 42 I=1,J
                     DO 41 I1=1,MAX(NCC*MIN(1,J-I),J1)
                        CS=COEFFC(I1,I,J1,J)
                        CS=CS+COFVAC*DWJDN*WC(I)*NORMAL(I1)
                        COEFFC(I1,I,J1,J)=CS
                        COEFFC(J1,J,I1,I)=CS
41                   CONTINUE
42                CONTINUE
43             CONTINUE
44          CONTINUE
         ELSE
            DO 48 J=1,NBC
               DO 47 J1=1,NCC
                  DWJDN=ELDIPQ*WC(J)*NORMAL(J1)
                  DO 46 I=1,NBL
                     DO 45 I1=1,NCL
                        COEFFC(I1,I,J1,J)=COEFFC(I1,I,J1,J)+COFVAC
     &                                   * DWJDN*WL(I)*NORMAL(I1)
45                   CONTINUE
46                CONTINUE
47             CONTINUE
48          CONTINUE
         ENDIF
 
      ENDIF
 
      IF (IMP.GT.0) THEN
         J=NBC
         IF (MIXTE.EQ.0) J=0
         CALL PRINTV ('U.n V.n '
     &               ,NCL,NBL,NCC,NBC,J,TYPE,COEFFR,COEFFC,IMP)
      ENDIF
                                                                    END !WnWn
line
top

wnwn est appelé dans (3 procédures)

calinb.f (calelem) calinb2006-10.f (calelem) intgroups.h (integran)

top