kaxc
C KAXC SOURCE CHAT 05/01/13 00:51:51 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C Include contenant quelques constantes dont XPI : -INC CCREEL C********************************************************************* C CALCUL DE S1.F12 EN GEOMETRIE CONVEXE C entree C A1 : COORDONNEES FACE 1 C A2 : COORDONNEES FACE 2 C NG0 : NOMBRE DE POINTS DE GAUSS (cas standard) C NP0 : NOMBRE DE POINTS D INTEGRATION (elements proches) C KIMP : paramete d'impression C EXTINC: coefficient d'extinction de la cavite si absorbante C RAD : dimension du pb (le calcul est fait en coor.reduites) C resultat C FF : S1.F12 C********************************************************************* DIMENSION A1(2,2),A2(2,2) DIMENSION AL(2,20) DIMENSION AG(11,10),YA(10),HA(10),YB(10),HB(10) C LES INTERVALLES D INTEGRATION SONT AL(I,I+1),I=1,NAL C C estimation du mode d'integration NS=2 IF(KIMP.GE.3) write(6,*) ' kaxc NG NP ',NG,NP NM=20 NAL=1 AL(1,1) = 0.D0 AL(2,1) = XPI RI1=A1(1,1) ZI1=A1(2,1) RI2=A1(1,2) ZI2=A1(2,2) RJ1=A2(1,1) ZJ1=A2(2,1) RJ2=A2(1,2) ZJ2=A2(2,2) DRI=RI2-RI1 DRJ=RJ2-RJ1 DZI=ZI2-ZI1 DZJ=ZJ2-ZJ1 C>> MODE D INTEGRATION IF(NG.EQ.0) THEN NA = NP NB = NP C>> INTEGRATION SUR I : A FF=0.D0 DA=1.D0/NA DO 3 IA=1,NA A = DA/2.D0 + DA*(IA-1) RI=(1.D0-A)*RI1+A*RI2 ZI=(1.D0-A)*ZI1+A*ZI2 DA=1.D0/NA C>> INTEGRATION SUR J : B F=0.D0 DB=1.D0/NB DO 30 IB=1,NB G=0.D0 B = DB/2.D0 + DB*(IB-1) RJ=(1.D0-B)*RJ1+B*RJ2 ZJ=(1.D0-B)*ZJ1+B*ZJ2 IF(KIMP.GE.4)WRITE(6,*) ' INTEGRATION IA IB ',IA,IB C C>> CALCUL C ------- & ,EXTINC,RAD) F= F + 4.D0*G*DB IF(KIMP.GE.4)WRITE(6,*) ' IA IB G F ',IA,IB,G,F 30 CONTINUE FF = FF + F*DA IF(KIMP.GE.4) WRITE(6,*) ' IA FF ',IA,FF 3 CONTINUE IF(KIMP.GE.4) WRITE(6,*) ' TOTAL FF ',FF ELSE C>> POINTS DE GAUSS NA = 1 NB = 1 NGA= NG NGA2=(NGA+1)/2 NGB= NG NGB2=(NGB+1)/2 IF (AG(1,NGA).LT.1.D-5) THEN YA(1)=AG(1,NGA) HA(1)=AG(2,NGA) IF(NGA2.GE.2) THEN DO 100 I=1,NGA2-1 YA(I+1)=AG(2*I+1,NGA) YA(NGA2+I)=-YA(I+1) HA(I+1)=AG(2*I+2,NGA) HA(NGA2+I)=HA(I+1) 100 CONTINUE ENDIF ELSE DO 101 I=1,NGA2 YA(I)=AG(2*I-1,NGA) YA(NGA2+I)=-YA(I) HA(I)=AG(2*I,NGA) HA(NGA2+I)=HA(I) 101 CONTINUE ENDIF IF (AG(1,NGB).LT.1.D-5) THEN YB(1)=AG(1,NGB) HB(1)=AG(2,NGB) IF(NGB2.GE.2) THEN DO 200 I=1,NGB2-1 YB(I+1)=AG(2*I+1,NGB) YB(NGB2+I)=-YA(I+1) HB(I+1)=AG(2*I+2,NGB) HB(NGB2+I)=HA(I+1) 200 CONTINUE ENDIF ELSE DO 201 I=1,NGB2 YB(I)=AG(2*I-1,NGB) YB(NGA2+I)=-YB(I) HB(I)=AG(2*I,NGB) HB(NGA2+I)=HB(I) 201 CONTINUE ENDIF C>> INTEGRATION SUR I : A FF=0.D0 DA=1.D0/NA DO 1 IA=1,NA A = DA/2.D0 + DA*(IA-1) DA=1.D0/NA C bornes AL1=A-DA/2.D0 AL2=A+DA/2.D0 C>> GAUSS SUR I : A FA=0.D0 DO 11 IGA=1,NGA C YA varie entre -1 et 1.D0 ALL= (YA(IGA)+1.D0)*(AL2-AL1)/2.D0 + AL1 RI=(1.D0-ALL)*RI1+ALL*RI2 ZI=(1.D0-ALL)*ZI1+ALL*ZI2 C>> INTEGRATION SUR J : B F=0.D0 DB=1.D0/NB DO 2 IB=1,NB B = DB/2.D0 + DB*(IB-1) C bornes BL1=B-DB/2.D0 BL2=B+DB/2.D0 C>> GAUSS SUR J : B FB=0.D0 DO 21 IGB=1,NGB C YB varie entre -1 et 1.D0 BLL=(YB(IGB)+1.D0)*(BL2-BL1)/2.D0 + BL1 RJ=(1.D0-BLL)*RJ1+BLL*RJ2 ZJ=(1.D0-BLL)*ZJ1+BLL*ZJ2 G=0.D0 C C>> CALCUL C ------- $ ,KIMP,EXTINC,RAD) FB = FB + 4.D0*G*HB(IGB)*(BL2-BL1)/2.D0 21 CONTINUE F= F + FB*DB 2 CONTINUE FA = FA + F*HA(IGA)*(AL2-AL1)/2.D0 11 CONTINUE FF = FF + FA*DA 1 CONTINUE ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales