[updated 8.Apr.2003]
Librairie efloca > Fichier elploc.f |
SUBROUTINE ELPLOC (ITYPTR,MCDGAM,MCDNU,MCDALF,MCDINT,MCPLOC
& ,NBFDEV,NBTFON,THEMIN,THEMAX,TABCOF,NDEGRE
& ,NBDLEL,RST,CST)
Auteurs: M.Lenoir, B.Vigan, C.Politis, M.Rouquette (Octobre 1990)
Derniere modification : D.Martin & C. Chambeyron (11 Mars 2003)
Version 1.0.1
Determination de la matrice locale Elements Finis Localises
-- Arguments d'entree --
ITYPTR type du resultat (reel ou complexe)
MCDGAM adresse des coefficients des termes des fonctions propres e.f.l.
MCDNU adresse des exposants des termes des fonctions propres e.f.l.
MCDALF adresse des exposants sec. des termes des fonctions propres e.f.l.
MCDINT adresse des integrales exactes
MCPLOC adresse du resultat dans le tableau du bon type
NBFDEV nombre de fonctions propres e.f.l.
NBTFON nombre de termes composant chaque fonction propre
THEMIN,THEMAX: extremites du domaine d'integration
TABCOF tableau des coefficients de chaque monomes des fonctions de base
NDEGRE degre des fonctions de base
NBDLEL nombre de degres de liberte par element
RST,CST super-tableau reel ou complexe
-- Remarque --
Les fonctions spectrales sont representees par des combinaisons
d'exponentielles, les calculs les concernant, sont donc effectues
systematiquement en complexe.
Le caractere eventuellement reel n'est considere que dans la matrice
elementaire.
IMPLICIT NONE
INTEGER ITYPTR,MCDGAM,MCDNU,MCDALF,MCDINT,MCPLOC,NBFDEV,NBTFON
& ,NDEGRE,NBDLEL
REAL THEMIN,THEMAX,TABCOF (0:NDEGRE,*)
REAL RST(*)
COMPLEX CST(*)
INTEGER INTTYP
INTEGER IADGAM,IADNU,IADALF,IAPLOC,IAPLO1,IK,IP,IDL,IQ
REAL ECART,ABSEC
COMPLEX VNU,BETA,FAC,SOM
ECART=THEMIN-THEMAX
ABSEC=ABS(ECART)
IADGAM=MCDGAM
IADNU =MCDNU
IADALF=MCDALF
IAPLOC=MCPLOC
IF (ITYPTR.EQ.INTTYP ('COMPLEXE')) THEN
DO 49 IK=1,NBFDEV
DO 47 IP=1,NBTFON
VNU =CST(IADNU)*ECART
BETA=CST(IADNU)*THEMAX+CST(IADALF)
FAC =CST(IADGAM)*ABSEC
CALL EFLINT (VNU,NDEGRE,BETA,CST(MCDINT))
IAPLO1=IAPLOC
DO 43 IDL=1,NBDLEL
SOM=0.
DO 42 IQ=0,NDEGRE
SOM=SOM+TABCOF(NDEGRE-IQ,IDL)*CST(MCDINT+IQ)
42 CONTINUE
CST(IAPLO1)=CST(IAPLO1)+SOM*FAC
IAPLO1=IAPLO1+1
43 CONTINUE
IADNU =IADNU +1
IADALF=IADALF+1
IADGAM=IADGAM+1
47 CONTINUE
IAPLOC=IAPLOC+NBDLEL
49 CONTINUE
ELSE
DO 29 IK=1,NBFDEV
DO 27 IP=1,NBTFON
VNU =CST(IADNU)*ECART
BETA=CST(IADNU)*THEMAX+CST(IADALF)
FAC =CST(IADGAM)*ABSEC
CALL EFLINT (VNU,NDEGRE,BETA,CST(MCDINT))
IAPLO1=IAPLOC
DO 23 IDL=1,NBDLEL
SOM=0.
DO 22 IQ=0,NDEGRE
SOM=SOM+TABCOF(NDEGRE-IQ,IDL)*CST(MCDINT+IQ)
22 CONTINUE
RST(IAPLO1)=RST(IAPLO1)+REAL(SOM*FAC)
IAPLO1=IAPLO1+1
23 CONTINUE
IADNU =IADNU +1
IADALF=IADALF+1
IADGAM=IADGAM+1
27 CONTINUE
IAPLOC=IAPLOC+NBDLEL
29 CONTINUE
ENDIF
END !Elploc
elploc est appelé dans