[updated 10.Nov.2009]
SUBROUTINE FSPECW (NBL,WL,NCL,NBFPRC
& ,ELDIPQ,TYPE,COFVAR,COEFFR,COFVAC,COEFFC,IMP)
Auteur: C. Chambeyron (Novembre 2002)
Derniere modification : C.Chambeyron & D.Martin (10 novembre 2009)
Version 1
Calcul par quadrature d'un integrand elements finis localises
-- Arguments --
NBL nombre de d.l. de l'inconnue variationnelle
WL valeurs des fonctions de base pour l'interpolation de l'inconnue
(en ligne) variationnelle en un point de quadrature
NCL nombre de composantes de l'inconnue variationnelle en ligne
NBFPRC nombre de fonctions propres (inconnue spectrale)
ELDIPQ poids de quadrature multiplie par l'element differentiel
TYPE type (REEL ou COMPLEXE) de l'integrand ou du coeff. variable
COFVAR tableau des valeurs des fonctions spectrales (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
IMPLICIT NONE
CHARACTER*(*) TYPE
INTEGER NBL,NCL,NBFPRC,IMP
REAL WL(*),ELDIPQ
& ,COFVAR(*),COEFFR(NCL,NBL,*)
COMPLEX COFVAC(*),COEFFC(NCL,NBL,*)
INTEGER J,I,I1
IF (TYPE(1:1).EQ.'R') THEN
DO 22 J=1,NBFPRC
DO 21 I=1,NBL
DO 20 I1=1,NCL
COEFFR(I1,I,J)=COEFFR(I1,I,J) + ELDIPQ*COFVAR(J)*WL(I)
20 CONTINUE
21 CONTINUE
22 CONTINUE
ELSE
DO 42 J=1,NBFPRC
DO 41 I=1,NBL
DO 40 I1=1,NCL
COEFFC(I1,I,J)=COEFFC(I1,I,J) + ELDIPQ*COFVAC(J)*WL(I)
40 CONTINUE
41 CONTINUE
42 CONTINUE
ENDIF
IF (IMP.GT.0) THEN
IF (NCL.GT.1) THEN
CALL PRINTV ('(FspecW)',NCL,NBL,1,NBFPRC,NBFPRC
& ,TYPE,COEFFR,COEFFC,IMP)
ELSE
CALL PRINTG ('(FspecW)',NBL,NBFPRC,NBFPRC
& ,TYPE,COEFFR,COEFFC,IMP)
ENDIF
ENDIF
-- File history
Version 1 : C.Chambeyron & D.Martin (10 novembre 2009)
rajout boucle en 'I1' pour traiter le cas vectoriel (2008)
Version 0 : C.Chambeyron & D.Martin (Juin 2006)
END !FspecW
fspecw est appelé dans (2 procédures)