[updated 28.Jun.2005]
SUBROUTINE WN (NBL,WL,NCL,NORMAL
& ,ELDIPQ,TYPE,COFVAR,COEFFR,COFVAC,COEFFC,IMP)
Auteur : D.Martin (Septembre 1993)
Derniere modification : D.Martin (28 juin 2005)
Version 2
Calcul de l'integrale elementaire V.n pour inconnue vectorielle
-- Arguments --
NBL nombre de lignes (comptee en noeuds) de la matrice elementaire
WL valeurs de fonctions de base au point de quadrature
NCL nombre de composantes pour l'inconnue
NORMAL vecteur normal a l'image du point de quadrature dans l'elt. courant
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 NBL,NCL,IMP
REAL WL(*),ELDIPQ,NORMAL(*)
& ,COFVAR,COEFFR(*)
COMPLEX COFVAC,COEFFC(*)
INTEGER MCADRS,I,IT
MCADRS=1
IF (TYPE(1:1).EQ.'R') THEN
DO 22 I=1,NBL
DO 21 IT=1,NCL
COEFFR(MCADRS)=COEFFR(MCADRS)
& + COFVAR*ELDIPQ*WL(I)*NORMAL(IT)
MCADRS=MCADRS+1
21 CONTINUE
22 CONTINUE
IF (IMP.GT.0)
& WRITE(IMP,10000) (COEFFR(MCADRS),MCADRS=1,NCL*NBL)
ELSE
DO 42 I=1,NBL
DO 41 IT=1,NCL
COEFFC(MCADRS)=COEFFC(MCADRS)
& + COFVAC*ELDIPQ*WL(I)*NORMAL(IT)
MCADRS=MCADRS+1
41 CONTINUE
42 CONTINUE
IF (IMP.GT.0)
& WRITE(IMP,10001) (COEFFC(MCADRS),MCADRS=1,NCL*NBL)
ENDIF
10000 FORMAT(T6,'Integrand V.n reel (WN)'/(T13,10E11.4))
10001 FORMAT(T6,'Integrand V.n complexe (WN)'/
&/(T13,5(SS,E11.4,SP,E10.4,'*i')))
END !Wn
wn est appelé dans (3 procédures)