elpdm1
C ELPDM1 SOURCE PV 22/04/25 21:15:04 11344 & ,XCOIN,ICOIN,NC,NC1 & ,CMA1,CSM,CSOM2 ,NS4 & ,XD,XNU,NTRAP,NTRAP2,PF0,XF0,CB,ISTAT & ,isingu,iregu ) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-B,D-H,O-Z) IMPLICIT COMPLEX*16(C) C Include contenant quelques constantes dont XPI : -INC CCREEL ************************************************************************ * * PLAQUES PAR EQUATION INTEGRALE: * * REMPLISSAGE DES TERMES INTEGRAUX DE LA MATRICE XMA1(NS4,NS4) * ET MISE A 0 DU SECOND MEMBRE * * | A1 B1 C1 D1 A2.............. * | E1 F1 G1 H1 A2............. * | -------C.L.------------ * | -------C.L.------------ * | ... A1 B1 C1 D1 ... * | .... E1 F1 G1 H1.... * | -------C.L.-- * | -------C.L.-- * * * A1 TEL QUE A1 + A2 + .... AN = 0.D0 * * * * * ************************************************************************ DIMENSION XBORD(15,*) DIMENSION IBORD (2 ,*) DIMENSION XCOIN(14,*) DIMENSION ICOIN(4 ,*) DIMENSION CMA1(NS4,*) DIMENSION CSM (*) DIMENSION CSOM2 (*) dimension pf0(*) * DIMENSION P0(2) DIMENSION A (2) DIMENSION B (2) DIMENSION OAB(2) DIMENSION Q (2) * DIMENSION XN (2) DIMENSION XN0(2) DIMENSION XN1(2) DIMENSION XN2(2) * DIMENSION XT (2) DIMENSION XT0(2) DIMENSION XT1(2) DIMENSION XT2(2) * * DIMENSION COP0(8) DIMENSION CS1 (8) DIMENSION CS2 (12) DIMENSION XLCOIN (4) * *--0. MISE A 0 DES LIGNES 1 2 , 5 6 ..DE LA MATRICE * DO 100 I=1,NS DO 110 J=1,NS4 CMA1(4* (I - 1 ) + 1,J) = CMPLX(0D0) CMA1(4* (I - 1 ) + 2,J) = CMPLX(0D0) 110 CONTINUE 100 CONTINUE * *--1. BOUCLE SUR LES BORDS * DO 200 IP=1,NS * *- PREPARATION * IL1 = 4*(IP - 1) + 1 IL2 = 4*(IP - 1) + 2 XN0(1) = XBORD(1,IP) XN0(2) = XBORD(2,IP) XT0(1) = XBORD(3,IP) XT0(2) = XBORD(4,IP) P0(1) = XBORD(9,IP) P0(2) = XBORD(10,IP) XLP0 = XBORD(11,IP) * *- 1.1 TERMES BORDS-BORDS BOUCLE SUR LES AUTRES BORDS * DO 210 JQ=1,NS IF ( JQ.NE.IP) THEN XN (1) = XBORD(1,JQ) XN (2) = XBORD(2,JQ) XT (1) = XBORD(3,JQ) XT (2) = XBORD(4,JQ) A (1) = XBORD(5,JQ) A (2) = XBORD(6,JQ) B (1) = XBORD(7,JQ) B (2) = XBORD(8,JQ) Q (1) = XBORD(9,JQ) Q (2) = XBORD(10,JQ) XLQ = XBORD(11,JQ) OAB(1) = XBORD(12,JQ) OAB(2) = XBORD(13,JQ) R = XBORD(15,JQ) & ,Q,XN,XT,A,B,OAB,TETA,R,XLQ & ,XD,XNU & ,NTRAP,CS1,CB,ISTAT) JCOL= 4* (JQ - 1) CMA1(IL1,JCOL+1) = CS1(4) / XD CMA1(IL1,JCOL+2) =-CS1(3) / XD CMA1(IL1,JCOL+3) = CS1(2) / XD CMA1(IL1,JCOL+4) =-CS1(1) / XD CMA1(IL2,JCOL+1) = CS1(8) / XD CMA1(IL2,JCOL+2) =-CS1(7) / XD CMA1(IL2,JCOL+3) = CS1(6) / XD CMA1(IL2,JCOL+4) =-CS1(5) / XD ENDIF 210 CONTINUE * *- 1.2 TERMES BORDS-COINS * IF ( NC1.NE.0) THEN DO 220 JC=1,NC A (1) = XCOIN(1,JC) A (2) = XCOIN(2,JC) XN1(1) = XCOIN(3,JC) XN1(2) = XCOIN(4,JC) XT1(1) = XCOIN(5,JC) XT1(2) = XCOIN(6,JC) XN2(1) = XCOIN(7,JC) XN2(2) = XCOIN(8,JC) XT2(1) = XCOIN(9,JC) XT2(2) = XCOIN(10,JC) XLCOIN(1) = XCOIN(11,JC) XLCOIN(2) = XCOIN(12,JC) XLCOIN(3) = XCOIN(13,JC) XLCOIN(4) = XCOIN(14,JC) & ,A,XN1,XN2,XT1,XT2,XLCOIN & ,XD,XNU & ,CS2,CB,ISTAT) I1 = ICOIN(1,JC) I3 = ICOIN(3,JC) I4 = ICOIN(4,JC) J1 = 4*(I1 - 1) J3 = 4*(I3 - 1) J4 = 4*(I4 - 1) * * TERMES MULTIPLIANT DES W,N SUR LES 2 LIGNES * CMA1(IL1,J1+2) = CMA1(IL1,J1+2) - CS2(4)/XD CMA1(IL1,J3+2) = CMA1(IL1,J3+2) - CS2(2)/XD CMA1(IL1,J4+2) = CMA1(IL1,J4+2) - CS2(1)/XD CMA1(IL2,J1+2) = CMA1(IL2,J1+2) - CS2(10)/XD CMA1(IL2,J3+2) = CMA1(IL2,J3+2) - CS2(8)/XD CMA1(IL2,J4+2) = CMA1(IL2,J4+2) - CS2(7)/XD * * TERMES MULTIPLIANT DES W SUR LES 2 LIGNES * CMA1(IL1,J3+1) = CMA1(IL1,J3+1) - CS2(5)/XD CMA1(IL2,J3+1) = CMA1(IL2,J3+1) - CS2(11)/XD 220 CONTINUE * * * ENDIF * *- 1.3 TERMES DU BORDS SUR LUI-MEME * * IF ( iregu .eq.1) THEN * methode de kn(wd) - kn(ws) & ,XD,XNU,CB,ISTAT,NTRAP2 & ,CS1) ELSE * methode de kn(wd - ws) & ,XD,XNU,CB,ISTAT,NTRAP2 & ,CS1) ENDIF JCOL= 4* (IP - 1) CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + CS1(4) / XD CMA1(IL1,JCOL+2) = CMA1(IL1,JCOL+2) - CS1(3) / XD CMA1(IL1,JCOL+3) = CMA1(IL1,JCOL+3) + CS1(2) / XD CMA1(IL1,JCOL+4) = CMA1(IL1,JCOL+4) - CS1(1) / XD CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CS1(8) / XD CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) - CS1(7) / XD CMA1(IL2,JCOL+3) = CMA1(IL2,JCOL+3) + CS1(6) / XD CMA1(IL2,JCOL+4) = CMA1(IL2,JCOL+4) - CS1(5) / XD * parti singuliere du terme le plus singulier IF ( ISingu.EQ. 1) THEN * CALCUL DU knn0/xd PAR LA PROPRIETE DE SOLIDE RIGIDE * AU PASSAGE STATIQUE, PUIS ON SE LE GARDE * ATTENTION LE PREMIER PAS DOIT ETRE STATIQUE * ------------------------------------------ IF ( ISTAT .EQ. 1) THEN CSOM1=0D0 CSOM2(IP)=0D0 DO 300 IPP=1,NS CSOM1 = CSOM1 + CMA1(IL1,4*(IPP - 1) +1) CSOM2(IP) = CSOM2(IP) + CMA1(IL2,4*(IPP - 1) +1) 300 CONTINUE ENDIF CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) - CSOM2(IP) ELSE * * CALCUL DU KNN0/XD exact * csing = -1 * XD * (1 + xnu ) / (XPI * xlp0) CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CSING / XD ENDIF * *-- RAJOUT DU 1/2 SUR LES DIAGONALES * CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + CMPLX(.5D0) CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) + CMPLX(.5D0) *-1.4 SECOND MEMBRE * CSM (IL1) = COP0(1) *XF0 / XD CSM (IL2) = COP0(5) *XF0 / XD 200 CONTINUE * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales