[updated 28.Jun.2005]
SUBROUTINE WNWN (MIXTE,NBL,WL,NCL,NBC,WC,NCC,NORMAL
& ,ELDIPQ,TYPE,COFVAR,COEFFR,COFVAC,COEFFC,IMP)
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
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
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
wnwn est appelé dans (3 procédures)