1 : C SIMPSN SOURCE CHAT 05/01/13 03:18:58 5004 2 : SUBROUTINE SIMPSN(NNAPPE,NBG,IOP,POIGAU) 3 : * 4 : ************************************************************************ 5 : * CALCUL DES POIDS (DES POINTS A TRAVERS L'EPAISSEUR) PAR LA METHODE * 6 : * D'INTEGRATION DE SIMPSON * 7 : * MULTIPLICATION PAR LES POIDS DES POINTS DANS LE PLAN * 8 : ************************************************************************ 9 : * * 10 : * ENTREE : * 11 : * * 12 : * NNAPPE = NOMBRE DE NAPPES DANS L'EPAISSEUR * 13 : * NBG = NOMBRE DE POINTS DANS LE PLAN * 14 : * IOP = 1 CALCULE LES POIDS TOTAUX (W(QSI,ETA,ZETA))A PARTIR DES * 15 : * POIDS DE SURFACE(W(QSI,ETA) * 16 : * = 2 CALCULE LES POIDS DE SURFACE (W(QSI,ETA)A PARTIR DES * 17 : * POIDS TOTAUX(W(QSI,ETA,ZETA)) * 18 : * POIGAU = TABLEAU CONTENANT LES POIDS CORRESPONDANT A L'INTEGRATION * 19 : * DANS LE PLAN * 20 : * SORTIE : * 21 : * * 22 : * POIGAU = POIDS TENANT COMPTE DE L'INTEGRATION DANS L'EPAISSEUR * 23 : * * 24 : ************************************************************************ 25 : * 26 : IMPLICIT INTEGER(I-N) 27 : IMPLICIT REAL*8 (A-H,O-Z) 28 : * 29 : DIMENSION POIGAU(*),W(100) 30 : * 31 : * 32 : PAS = 2.D0/(3.D0*(DBLE(NNAPPE)-1.D0)) 33 : * 34 : DO 1 IZ = 1,NNAPPE 35 : ITS = MOD(IZ,2) 36 : IF (IZ.EQ.1.OR.IZ.EQ.NNAPPE) THEN 37 : COEF = 1.D0 38 : ELSE IF (ITS.NE.0.) THEN 39 : COEF = 2.D0 40 : ELSE 41 : COEF = 4.D0 42 : ENDIF 43 : W(IZ) = COEF * PAS 44 : 1 CONTINUE 45 : * 46 : IF(IOP.EQ.1) THEN 47 : DO 10 IA=1,NNAPPE 48 : NP=(IA-1)*NBG 49 : DO 20 IG=1,NBG 50 : POIGAU(NP+IG)=POIGAU(NP+IG)*W(IA) 51 : 20 CONTINUE 52 : 10 CONTINUE 53 : ELSE 54 : DO 30 IG=1,NBG 55 : POIGAU(IG) = POIGAU(IG)/W(1) 56 : 30 CONTINUE 57 : ENDIF 58 : * 59 : * WRITE(*,*) ' matrice B elem =',IB 60 : * WRITE(*,1191) (POIGAU(IA),IA=1,3) 61 : *1191 FORMAT(12(1X,E8.2)) 62 : C 63 : RETURN 64 : END 65 : 66 : 67 :
© Cast3M 2003 - All rights reserved.
Disclaimer