Download elpdm1.eso

Back to the list

   1 : C ELPDM1    SOURCE    CHAT      05/01/12    23:37:02     5004           
   2 :       SUBROUTINE ELPDM1(XBORD,IBORD,NS
   3 :      &     ,XCOIN,ICOIN,NC,NC1
   4 :      &     ,CMA1,CSM,CSOM2 ,NS4
   5 :      &     ,XD,XNU,NTRAP,NTRAP2,PF0,XF0,CB,ISTAT
   6 :      &     ,isingu,iregu )
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8(A-B,D-H,O-Z)
   9 :       IMPLICIT COMPLEX*16(C)
  10 : C    Include contenant quelques constantes dont XPI :
  11 : -INC CCREEL
  12 : ************************************************************************
  13 : *     
  14 : *    PLAQUES  PAR EQUATION INTEGRALE:
  15 : *     
  16 : *       REMPLISSAGE DES TERMES INTEGRAUX DE LA MATRICE XMA1(NS4,NS4)
  17 : *       ET MISE A 0 DU SECOND MEMBRE
  18 : *     
  19 : *   |  A1 B1 C1 D1 A2..............
  20 : *   |  E1 F1 G1 H1 A2.............
  21 : *   |  -------C.L.------------
  22 : *   |  -------C.L.------------
  23 : *   |                    ...  A1 B1 C1 D1 ...
  24 : *   |                    .... E1 F1 G1 H1....
  25 : *   |                        -------C.L.--
  26 : *   |                        -------C.L.--
  27 : *     
  28 : *     
  29 : *   A1  TEL QUE A1 + A2 + .... AN = 0.D0
  30 : *     
  31 : *     
  32 : *     
  33 : *     
  34 : *     
  35 : ************************************************************************
  36 :       DIMENSION XBORD(15,*)
  37 :       DIMENSION IBORD (2 ,*)
  38 :       DIMENSION XCOIN(14,*)
  39 :       DIMENSION ICOIN(4 ,*)
  40 :       DIMENSION CMA1(NS4,*)
  41 :       DIMENSION CSM (*)
  42 :       DIMENSION CSOM2 (*)
  43 : *     
  44 :       DIMENSION P0(2)
  45 :       DIMENSION A (2)
  46 :       DIMENSION B (2)
  47 :       DIMENSION OAB(2)
  48 :       DIMENSION Q (2)
  49 : *     
  50 :       DIMENSION XN (2)
  51 :       DIMENSION XN0(2)
  52 :       DIMENSION XN1(2)
  53 :       DIMENSION XN2(2)
  54 : *     
  55 :       DIMENSION XT (2)
  56 :       DIMENSION XT0(2)
  57 :       DIMENSION XT1(2)
  58 :       DIMENSION XT2(2)
  59 : *     
  60 : *     
  61 :       DIMENSION COP0(8)
  62 :       DIMENSION CS1 (8)
  63 :       DIMENSION CS2 (12)
  64 :       DIMENSION XLCOIN  (4)
  65 : *     
  66 : *--0.  MISE A 0 DES LIGNES 1 2 , 5 6 ..DE LA MATRICE
  67 : *     
  68 :       DO 100 I=1,NS
  69 :          DO 110 J=1,NS4
  70 :             CMA1(4* (I - 1 ) + 1,J) = 0D0
  71 :             CMA1(4* (I - 1 ) + 2,J) = 0D0
  72 :  110     CONTINUE
  73 :  100  CONTINUE
  74 : *     
  75 : *--1.  BOUCLE SUR LES BORDS
  76 : *     
  77 :       DO 200 IP=1,NS
  78 : *     
  79 : *-          PREPARATION
  80 : *     
  81 :          IL1 = 4*(IP  - 1) + 1
  82 :          IL2 = 4*(IP  - 1) + 2
  83 :          XN0(1) = XBORD(1,IP)
  84 :          XN0(2) = XBORD(2,IP)
  85 :          XT0(1) = XBORD(3,IP)
  86 :          XT0(2) = XBORD(4,IP)
  87 :          P0(1) = XBORD(9,IP)
  88 :          P0(2) = XBORD(10,IP)
  89 :          XLP0  = XBORD(11,IP)
  90 : *     
  91 : *- 1.1       TERMES BORDS-BORDS BOUCLE SUR LES AUTRES BORDS
  92 : *     
  93 :          DO 210 JQ=1,NS
  94 :             IF ( JQ.NE.IP) THEN
  95 :                XN (1) = XBORD(1,JQ)
  96 :                XN (2) = XBORD(2,JQ)
  97 :                XT (1) = XBORD(3,JQ)
  98 :                XT (2) = XBORD(4,JQ)
  99 :                A  (1) = XBORD(5,JQ)
 100 :                A  (2) = XBORD(6,JQ)
 101 :                B  (1) = XBORD(7,JQ)
 102 :                B  (2) = XBORD(8,JQ)
 103 :                Q  (1) = XBORD(9,JQ)
 104 :                Q  (2) = XBORD(10,JQ)
 105 :                XLQ   = XBORD(11,JQ)
 106 :                OAB(1) = XBORD(12,JQ)
 107 :                OAB(2) = XBORD(13,JQ)
 108 :                TETA   = XBORD(14,JQ)
 109 :                R      = XBORD(15,JQ)
 109 :                CALL ELPDI1(P0,XN0,XT0
 110 :      &              ,Q,XN,XT,A,B,OAB,TETA,R,XLQ
 111 :      &              ,XD,XNU
 112 :      &              ,NTRAP,CS1,CB,ISTAT)
 113 :                JCOL= 4* (JQ - 1)
 114 : 
 115 :                CMA1(IL1,JCOL+1) = CS1(4) / XD
 116 :                CMA1(IL1,JCOL+2) =-CS1(3) / XD
 117 :                CMA1(IL1,JCOL+3) = CS1(2) / XD
 118 :                CMA1(IL1,JCOL+4) =-CS1(1) / XD
 119 : 
 120 :                CMA1(IL2,JCOL+1) = CS1(8) / XD
 121 :                CMA1(IL2,JCOL+2) =-CS1(7) / XD
 122 :                CMA1(IL2,JCOL+3) = CS1(6) / XD
 123 :                CMA1(IL2,JCOL+4) =-CS1(5) / XD
 124 :             ENDIF
 125 :  210     CONTINUE
 126 : *     
 127 : *- 1.2       TERMES BORDS-COINS
 128 : *     
 129 :          IF ( NC1.NE.0) THEN
 130 :             DO 220 JC=1,NC
 131 :                A  (1) = XCOIN(1,JC)
 132 :                A  (2) = XCOIN(2,JC)
 133 :                XN1(1) = XCOIN(3,JC)
 134 :                XN1(2) = XCOIN(4,JC)
 135 :                XT1(1) = XCOIN(5,JC)
 136 :                XT1(2) = XCOIN(6,JC)
 137 :                XN2(1) = XCOIN(7,JC)
 138 :                XN2(2) = XCOIN(8,JC)
 139 :                XT2(1) = XCOIN(9,JC)
 140 :                XT2(2) = XCOIN(10,JC)
 141 :                XLCOIN(1) = XCOIN(11,JC)
 142 :                XLCOIN(2) = XCOIN(12,JC)
 143 :                XLCOIN(3) = XCOIN(13,JC)
 144 :                XLCOIN(4) = XCOIN(14,JC)
 144 :                CALL ELPDI3(P0,XN0
 145 :      &              ,A,XN1,XN2,XT1,XT2,XLCOIN
 146 :      &              ,XD,XNU
 147 :      &              ,CS2,CB,ISTAT)
 148 : 
 149 : 
 150 : 
 151 : 
 152 :                I1 = ICOIN(1,JC)
 153 :                I2 = ICOIN(2,JC)
 154 :                I3 = ICOIN(3,JC)
 155 :                I4 = ICOIN(4,JC)
 156 :                J1 = 4*(I1 - 1)
 157 :                J2 = 4*(I2 - 1)
 158 :                J3 = 4*(I3 - 1)
 159 :                J4 = 4*(I4 - 1)
 160 : 
 161 : *     
 162 : *      TERMES MULTIPLIANT DES W,N SUR LES 2 LIGNES
 163 : *     
 164 :                CMA1(IL1,J1+2) = CMA1(IL1,J1+2) - CS2(4)/XD
 165 :                CMA1(IL1,J2+2) = CMA1(IL1,J2+2) - CS2(3)/XD
 166 :                CMA1(IL1,J3+2) = CMA1(IL1,J3+2) - CS2(2)/XD
 167 :                CMA1(IL1,J4+2) = CMA1(IL1,J4+2) - CS2(1)/XD
 168 : 
 169 :                CMA1(IL2,J1+2) = CMA1(IL2,J1+2) - CS2(10)/XD
 170 :                CMA1(IL2,J2+2) = CMA1(IL2,J2+2) - CS2(9)/XD
 171 :                CMA1(IL2,J3+2) = CMA1(IL2,J3+2) - CS2(8)/XD
 172 :                CMA1(IL2,J4+2) = CMA1(IL2,J4+2) - CS2(7)/XD
 173 : *     
 174 : *      TERMES MULTIPLIANT DES W   SUR LES 2 LIGNES
 175 : *     
 176 :                CMA1(IL1,J2+1) = CMA1(IL1,J2+1) - CS2(6)/XD
 177 :                CMA1(IL1,J3+1) = CMA1(IL1,J3+1) - CS2(5)/XD
 178 : 
 179 :                CMA1(IL2,J2+1) = CMA1(IL2,J2+1) - CS2(12)/XD
 180 :                CMA1(IL2,J3+1) = CMA1(IL2,J3+1) - CS2(11)/XD
 181 :  220        CONTINUE
 182 : *     
 183 : *     
 184 : *     
 185 :          ENDIF
 186 : 
 187 : *     
 188 : *- 1.3       TERMES DU BORDS SUR LUI-MEME
 189 : *     
 190 : *     
 191 :          IF ( iregu  .eq.1) THEN
 192 : *           methode de kn(wd) - kn(ws)
 192 :             CALL ELPDJ2(XLP0
 193 :      &           ,XD,XNU,CB,ISTAT,NTRAP2
 194 :      &           ,CS1)
 195 :          ELSE
 196 : *           methode de kn(wd - ws)
 196 :             CALL ELPDK2(XLP0
 197 :      &           ,XD,XNU,CB,ISTAT,NTRAP2
 198 :      &           ,CS1)
 199 :          ENDIF
 200 :          JCOL= 4* (IP - 1)
 201 : 
 202 :          CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + CS1(4) / XD
 203 :          CMA1(IL1,JCOL+2) = CMA1(IL1,JCOL+2) - CS1(3) / XD
 204 :          CMA1(IL1,JCOL+3) = CMA1(IL1,JCOL+3) + CS1(2) / XD
 205 :          CMA1(IL1,JCOL+4) = CMA1(IL1,JCOL+4) - CS1(1) / XD
 206 : 
 207 :          CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CS1(8) / XD
 208 :          CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) - CS1(7) / XD
 209 :          CMA1(IL2,JCOL+3) = CMA1(IL2,JCOL+3) + CS1(6) / XD
 210 :          CMA1(IL2,JCOL+4) = CMA1(IL2,JCOL+4) - CS1(5) / XD
 211 : 
 212 : *            parti singuliere du terme le plus singulier
 213 :          IF ( ISingu.EQ. 1) THEN
 214 : *             CALCUL DU knn0/xd  PAR LA PROPRIETE DE SOLIDE RIGIDE
 215 : *                   AU PASSAGE STATIQUE, PUIS ON SE LE GARDE
 216 : *                ATTENTION LE PREMIER PAS DOIT ETRE STATIQUE
 217 : *                 ------------------------------------------
 218 :             IF ( ISTAT .EQ. 1) THEN
 219 :                CSOM1=0D0
 220 :                CSOM2(IP)=0D0
 221 :                DO 300 IPP=1,NS
 222 :                   CSOM1 = CSOM1 + CMA1(IL1,4*(IPP - 1) +1)
 223 :                   CSOM2(IP) = CSOM2(IP) + CMA1(IL2,4*(IPP - 1) +1)
 224 :  300           CONTINUE
 225 :             ENDIF
 226 :             CMA1(IL2,JCOL+1)  = CMA1(IL2,JCOL+1) - CSOM2(IP)
 227 : 
 228 :          ELSE
 229 : *     
 230 : *             CALCUL DU KNN0/XD exact
 231 : *     
 232 :             csing = -1 * XD * (1 + xnu ) / (XPI * xlp0)
 233 :             CMA1(IL2,JCOL+1) = CMA1(IL2,JCOL+1) + CSING  / XD
 234 :          ENDIF
 235 : 
 236 : *     
 237 : *--           RAJOUT DU 1/2 SUR LES DIAGONALES
 238 : *     
 239 :          CMA1(IL1,JCOL+1) = CMA1(IL1,JCOL+1) + .5D0
 240 :          CMA1(IL2,JCOL+2) = CMA1(IL2,JCOL+2) + .5D0
 241 : 
 242 : *-1.4     SECOND MEMBRE
 243 : *     
 243 :          CALL ELPDOP ( P0,XN0,PF0,XN0,XT0,XD,XNU,COP0,CB,ISTAT)
 244 :          CSM (IL1) = COP0(1) *XF0 / XD
 245 :          CSM (IL2) = COP0(5) *XF0 / XD
 246 :  200  CONTINUE
 247 : *     
 248 :       RETURN
 249 :       END
 250 : 
 251 : 
 252 :  
 253 :  
 254 :  

© Cast3M 2003 - All rights reserved.
Disclaimer