mv0202.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\mv0202.f
00002 !
00083                      SUBROUTINE MV0202
00084 !                    *****************
00085 !
00086      &(OP, X , DA,TYPDIA,XA12,XA21,TYPEXT, Y,C,
00087      & IKLE1,IKLE2,NPOIN,NELEM,W1,W2)
00088 !
00089 !***********************************************************************
00090 ! BIEF   V6P1                                   21/08/2010
00091 !***********************************************************************
00092 !
00093 !
00094 !
00095 !
00096 !
00097 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00098 !| C              |-->| A GIVEN CONSTANT
00099 !| DA             |-->| MATRIX DIAGONAL
00100 !| IKLE1          |-->| FIRST POINT OF SEGMENT
00101 !| IKLE2          |-->| SECOND POINT OF SEGMENT
00102 !| NELEM          |-->| NUMBER OF ELEMENTS
00103 !| NPOIN          |-->| NUMBER OF POINTS
00104 !| OP             |-->| OPERATION TO BE DONE (SEE ABOVE)
00105 !| TYPDIA         |-->| TYPE OF DIAGONAL:
00106 !|                |   | TYPDIA = 'Q' : ANY VALUE
00107 !|                |   | TYPDIA = 'I' : IDENTITY
00108 !|                |   | TYPDIA = '0' : ZERO
00109 !| TYPEXT         |-->| TYPE OF OFF-DIAGONAL TERMS
00110 !|                |   | TYPEXT = 'Q' : ANY VALUE
00111 !|                |   | TYPEXT = 'S' : SYMMETRIC
00112 !|                |   | TYPEXT = '0' : ZERO
00113 !| W1             |<->| RESULT IN NON ASSEMBLED FORM
00114 !| W2             |<->| RESULT IN NON ASSEMBLED FORM
00115 !| X              |<->| RESULT IN ASSEMBLED FORM
00116 !| XA12           |-->| OFF-DIAGONAL TERM OF MATRIX
00117 !| XA21           |-->| OFF-DIAGONAL TERM OF MATRIX
00118 !| Y              |-->| VECTOR USED IN THE OPERATION
00119 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00120 !
00121       USE BIEF, EX_MV0202 => MV0202
00122 !
00123       IMPLICIT NONE
00124       INTEGER LNG,LU
00125       COMMON/INFO/LNG,LU
00126 !
00127 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00128 !
00129       INTEGER, INTENT(IN) :: NELEM,NPOIN
00130       INTEGER, INTENT(IN) :: IKLE1(*),IKLE2(*)
00131 !
00132       DOUBLE PRECISION, INTENT(INOUT) :: W1(*),W2(*)
00133       DOUBLE PRECISION, INTENT(INOUT) :: X(*)
00134       DOUBLE PRECISION, INTENT(IN) :: Y(*),DA(*)
00135       DOUBLE PRECISION, INTENT(IN) :: XA12(*),XA21(*)
00136       DOUBLE PRECISION, INTENT(IN) :: C
00137 !
00138       CHARACTER*(*), INTENT(IN) :: OP,TYPDIA,TYPEXT
00139 !
00140 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00141 !
00142       INTEGER IELEM
00143       DOUBLE PRECISION Z(1)
00144 !
00145 !-----------------------------------------------------------------------
00146 !
00147       IF(OP(1:8).EQ.'X=AY    ') THEN
00148 !
00149 !   CONTRIBUTION OF EXTRADIAGONAL TERMS:
00150 !
00151         IF(TYPEXT(1:1).EQ.'S') THEN
00152 !
00153           DO IELEM = 1 , NELEM
00154             W1(IELEM) =     XA12(IELEM) * Y(IKLE2(IELEM))
00155             W2(IELEM) =     XA12(IELEM) * Y(IKLE1(IELEM))
00156           ENDDO ! IELEM
00157 !
00158         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00159 !
00160           DO IELEM = 1 , NELEM
00161             W1(IELEM) =     XA12(IELEM) * Y(IKLE2(IELEM))
00162             W2(IELEM) =     XA21(IELEM) * Y(IKLE1(IELEM))
00163           ENDDO ! IELEM
00164 !
00165         ELSEIF(TYPEXT(1:1).EQ.'0') THEN
00166 !
00167           CALL OV ('X=C     ', W1 , Y , Z , 0.D0 , NELEM )
00168           CALL OV ('X=C     ', W2 , Y , Z , 0.D0 , NELEM )
00169 !
00170         ELSE
00171 !
00172           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00173           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00174           CALL PLANTE(1)
00175           STOP
00176 !
00177         ENDIF
00178 !
00179 !   CONTRIBUTION OF THE DIAGONAL:
00180 !
00181         IF(TYPDIA(1:1).EQ.'Q') THEN
00182           CALL OV ('X=YZ    ', X , Y , DA , C  , NPOIN )
00183         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00184           CALL OV ('X=Y     ', X , Y , Z  , C  , NPOIN )
00185         ELSEIF(TYPDIA(1:1).EQ.'0') THEN
00186           CALL OV ('X=C     ', X , Y , DA , 0.D0 , NPOIN )
00187         ELSE
00188           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00189           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00190           CALL PLANTE(1)
00191           STOP
00192         ENDIF
00193 !
00194 !-----------------------------------------------------------------------
00195 !
00196       ELSEIF(OP(1:8).EQ.'X=-AY   ') THEN
00197 !
00198 !   CONTRIBUTION OF EXTRADIAGONAL TERMS:
00199 !
00200         IF(TYPEXT(1:1).EQ.'S') THEN
00201 !
00202           DO IELEM = 1 , NELEM
00203             W1(IELEM) =   - XA12(IELEM) * Y(IKLE2(IELEM))
00204             W2(IELEM) =   - XA12(IELEM) * Y(IKLE1(IELEM))
00205           ENDDO ! IELEM
00206 !
00207         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00208 !
00209           DO IELEM = 1 , NELEM
00210             W1(IELEM) =   - XA12(IELEM) * Y(IKLE2(IELEM))
00211             W2(IELEM) =   - XA21(IELEM) * Y(IKLE1(IELEM))
00212           ENDDO ! IELEM
00213 !
00214         ELSEIF(TYPEXT(1:1).EQ.'0') THEN
00215 !
00216           CALL OV ('X=C     ', W1 , Y , Z , 0.D0 , NELEM )
00217           CALL OV ('X=C     ', W2 , Y , Z , 0.D0 , NELEM )
00218 !
00219         ELSE
00220 !
00221           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00222           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00223           CALL PLANTE(1)
00224           STOP
00225 !
00226         ENDIF
00227 !
00228 !   CONTRIBUTION OF THE DIAGONAL:
00229 !
00230         IF(TYPDIA(1:1).EQ.'Q') THEN
00231           CALL OV ('X=-YZ   ', X , Y , DA , C  , NPOIN )
00232         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00233           CALL OV ('X=-Y    ', X , Y , Z  , C  , NPOIN )
00234         ELSEIF(TYPDIA(1:1).EQ.'0') THEN
00235           CALL OV ('X=C     ', X , Y , DA , 0.D0 , NPOIN )
00236         ELSE
00237           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00238           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00239           CALL PLANTE(1)
00240           STOP
00241         ENDIF
00242 !
00243 !-----------------------------------------------------------------------
00244 !
00245       ELSEIF(OP(1:8).EQ.'X=X+AY  ') THEN
00246 !
00247 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00248 !
00249         IF(TYPEXT(1:1).EQ.'S') THEN
00250 !
00251           DO IELEM = 1 , NELEM
00252             W1(IELEM) = W1(IELEM)  + XA12(IELEM) * Y(IKLE2(IELEM))
00253             W2(IELEM) = W2(IELEM)  + XA12(IELEM) * Y(IKLE1(IELEM))
00254           ENDDO ! IELEM
00255 !
00256         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00257 !
00258           DO IELEM = 1 , NELEM
00259             W1(IELEM) = W1(IELEM)   + XA12(IELEM) * Y(IKLE2(IELEM))
00260             W2(IELEM) = W2(IELEM)   + XA21(IELEM) * Y(IKLE1(IELEM))
00261           ENDDO ! IELEM
00262 !
00263         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00264 !
00265           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00266           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00267           CALL PLANTE(1)
00268           STOP
00269 !
00270         ENDIF
00271 !
00272 !   CONTRIBUTION OF THE DIAGONAL:
00273 !
00274         IF(TYPDIA(1:1).EQ.'Q') THEN
00275           CALL OV ('X=X+YZ  ', X , Y , DA , C , NPOIN )
00276         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00277           CALL OV ('X=X+Y   ', X , Y , Z  , C  , NPOIN )
00278         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00279           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00280           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00281           CALL PLANTE(1)
00282           STOP
00283         ENDIF
00284 !
00285 !-----------------------------------------------------------------------
00286 !
00287       ELSEIF(OP(1:8).EQ.'X=X-AY  ') THEN
00288 !
00289 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00290 !
00291         IF(TYPEXT(1:1).EQ.'S') THEN
00292 !
00293           DO IELEM = 1 , NELEM
00294             W1(IELEM) = W1(IELEM)  - XA12(IELEM) * Y(IKLE2(IELEM))
00295             W2(IELEM) = W2(IELEM)  - XA12(IELEM) * Y(IKLE1(IELEM))
00296           ENDDO ! IELEM
00297 !
00298         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00299 !
00300           DO IELEM = 1 , NELEM
00301             W1(IELEM) = W1(IELEM)   - XA12(IELEM) * Y(IKLE2(IELEM))
00302             W2(IELEM) = W2(IELEM)   - XA21(IELEM) * Y(IKLE1(IELEM))
00303           ENDDO ! IELEM
00304 !
00305         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00306 !
00307           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00308           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00309           CALL PLANTE(1)
00310           STOP
00311 !
00312         ENDIF
00313 !
00314 !   CONTRIBUTION OF THE DIAGONAL:
00315 !
00316         IF(TYPDIA(1:1).EQ.'Q') THEN
00317           CALL OV ('X=X-YZ  ', X , Y , DA , C , NPOIN )
00318         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00319           CALL OV ('X=X-Y   ', X , Y , Z  , C  , NPOIN )
00320         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00321           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00322           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00323           CALL PLANTE(1)
00324           STOP
00325         ENDIF
00326 !
00327 !-----------------------------------------------------------------------
00328 !
00329       ELSEIF(OP(1:8).EQ.'X=X+CAY ') THEN
00330 !
00331 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00332 !
00333         IF(TYPEXT(1:1).EQ.'S') THEN
00334 !
00335           DO IELEM = 1 , NELEM
00336             W1(IELEM)=W1(IELEM) + C * (XA12(IELEM) * Y(IKLE2(IELEM)))
00337             W2(IELEM)=W2(IELEM) + C * (XA12(IELEM) * Y(IKLE1(IELEM)))
00338           ENDDO ! IELEM
00339 !
00340         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00341 !
00342           DO IELEM = 1 , NELEM
00343             W1(IELEM)=W1(IELEM) + C * (XA12(IELEM) * Y(IKLE2(IELEM)))
00344             W2(IELEM)=W2(IELEM) + C * (XA21(IELEM) * Y(IKLE1(IELEM)))
00345           ENDDO ! IELEM
00346 !
00347         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00348 !
00349           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00350           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00351           CALL PLANTE(1)
00352           STOP
00353 !
00354         ENDIF
00355 !
00356 !   CONTRIBUTION OF THE DIAGONAL:
00357 !
00358         IF(TYPDIA(1:1).EQ.'Q') THEN
00359           CALL OV ('X=X+CYZ  ', X , Y , DA , C , NPOIN )
00360         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00361           CALL OV ('X=X+CY   ', X , Y , Z  , C  , NPOIN )
00362         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00363           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00364           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00365           CALL PLANTE(1)
00366           STOP
00367         ENDIF
00368 !
00369 !-----------------------------------------------------------------------
00370 !
00371       ELSEIF(OP(1:8).EQ.'X=TAY   ') THEN
00372 !
00373 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00374 !
00375         IF(TYPEXT(1:1).EQ.'S') THEN
00376 !
00377           DO IELEM = 1 , NELEM
00378             W1(IELEM) =     XA12(IELEM) * Y(IKLE2(IELEM))
00379             W2(IELEM) =     XA12(IELEM) * Y(IKLE1(IELEM))
00380           ENDDO ! IELEM
00381 !
00382         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00383 !
00384           DO IELEM = 1 , NELEM
00385             W1(IELEM) =   + XA21(IELEM) * Y(IKLE2(IELEM))
00386             W2(IELEM) =   + XA12(IELEM) * Y(IKLE1(IELEM))
00387           ENDDO ! IELEM
00388 !
00389         ELSEIF(TYPEXT(1:1).EQ.'0') THEN
00390 !
00391           CALL OV ('X=C     ', W1 , Y , Z , 0.D0 , NELEM )
00392           CALL OV ('X=C     ', W2 , Y , Z , 0.D0 , NELEM )
00393 !
00394         ELSE
00395 !
00396           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00397           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00398           CALL PLANTE(1)
00399           STOP
00400 !
00401         ENDIF
00402 !
00403 !   CONTRIBUTION OF THE DIAGONAL
00404 !
00405         IF(TYPDIA(1:1).EQ.'Q') THEN
00406           CALL OV ('X=YZ    ', X , Y , DA , C  , NPOIN )
00407         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00408           CALL OV ('X=Y     ', X , Y , Z  , C  , NPOIN )
00409         ELSEIF(TYPDIA(1:1).EQ.'0') THEN
00410           CALL OV ('X=C     ', X , Y , DA , 0.D0 , NPOIN )
00411         ELSE
00412           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00413           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00414           CALL PLANTE(1)
00415           STOP
00416         ENDIF
00417 !
00418 !-----------------------------------------------------------------------
00419 !
00420       ELSEIF(OP(1:8).EQ.'X=-TAY   ') THEN
00421 !
00422 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00423 !
00424         IF(TYPEXT(1:1).EQ.'S') THEN
00425 !
00426           DO IELEM = 1 , NELEM
00427             W1(IELEM) =   - XA12(IELEM) * Y(IKLE2(IELEM))
00428             W2(IELEM) =   - XA12(IELEM) * Y(IKLE1(IELEM))
00429           ENDDO ! IELEM
00430 !
00431         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00432 !
00433           DO IELEM = 1 , NELEM
00434             W1(IELEM) =   - XA21(IELEM) * Y(IKLE2(IELEM))
00435             W2(IELEM) =   - XA12(IELEM) * Y(IKLE1(IELEM))
00436           ENDDO ! IELEM
00437 !
00438         ELSEIF(TYPEXT(1:1).EQ.'0') THEN
00439 !
00440           CALL OV ('X=C     ', W1 , Y , Z , 0.D0 , NELEM )
00441           CALL OV ('X=C     ', W2 , Y , Z , 0.D0 , NELEM )
00442 !
00443         ELSE
00444 !
00445           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00446           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00447           CALL PLANTE(1)
00448           STOP
00449 !
00450         ENDIF
00451 !
00452 !   CONTRIBUTION OF THE DIAGONAL
00453 !
00454         IF(TYPDIA(1:1).EQ.'Q') THEN
00455           CALL OV ('X=-YZ   ', X , Y , DA , C  , NPOIN )
00456         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00457           CALL OV ('X=-Y    ', X , Y , Z  , C  , NPOIN )
00458         ELSEIF(TYPDIA(1:1).EQ.'0') THEN
00459           CALL OV ('X=C     ', X , Y , DA , 0.D0 , NPOIN )
00460         ELSE
00461           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00462           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00463           CALL PLANTE(1)
00464           STOP
00465         ENDIF
00466 !
00467 !-----------------------------------------------------------------------
00468 !
00469       ELSEIF(OP(1:8).EQ.'X=X+TAY ') THEN
00470 !
00471 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00472 !
00473         IF(TYPEXT(1:1).EQ.'S') THEN
00474 !
00475           DO IELEM = 1 , NELEM
00476             W1(IELEM) = W1(IELEM) + XA12(IELEM) * Y(IKLE2(IELEM))
00477             W2(IELEM) = W2(IELEM) + XA12(IELEM) * Y(IKLE1(IELEM))
00478           ENDDO ! IELEM
00479 !
00480         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00481 !
00482           DO IELEM = 1 , NELEM
00483             W1(IELEM) = W1(IELEM) + XA21(IELEM) * Y(IKLE2(IELEM))
00484             W2(IELEM) = W2(IELEM) + XA12(IELEM) * Y(IKLE1(IELEM))
00485           ENDDO ! IELEM
00486 !
00487         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00488 !
00489           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00490           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00491           CALL PLANTE(1)
00492           STOP
00493 !
00494         ENDIF
00495 !
00496 !   CONTRIBUTION OF THE DIAGONAL
00497 !
00498         IF(TYPDIA(1:1).EQ.'Q') THEN
00499           CALL OV ('X=X+YZ  ', X , Y , DA , C , NPOIN )
00500         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00501           CALL OV ('X=X+Y   ', X , Y , Z  , C  , NPOIN )
00502         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00503           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00504           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00505           CALL PLANTE(1)
00506           STOP
00507         ENDIF
00508 !
00509 !-----------------------------------------------------------------------
00510 !
00511       ELSEIF(OP(1:8).EQ.'X=X-TAY ') THEN
00512 !
00513 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00514 !
00515         IF(TYPEXT(1:1).EQ.'S') THEN
00516 !
00517           DO IELEM = 1 , NELEM
00518             W1(IELEM) = W1(IELEM) - XA12(IELEM) * Y(IKLE2(IELEM))
00519             W2(IELEM) = W2(IELEM) - XA12(IELEM) * Y(IKLE1(IELEM))
00520           ENDDO ! IELEM
00521 !
00522         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00523 !
00524           DO IELEM = 1 , NELEM
00525             W1(IELEM) = W1(IELEM) - XA21(IELEM) * Y(IKLE2(IELEM))
00526             W2(IELEM) = W2(IELEM) - XA12(IELEM) * Y(IKLE1(IELEM))
00527           ENDDO ! IELEM
00528 !
00529         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00530 !
00531           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00532           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00533           CALL PLANTE(1)
00534           STOP
00535 !
00536         ENDIF
00537 !
00538 !   CONTRIBUTION OF THE DIAGONAL
00539 !
00540         IF(TYPDIA(1:1).EQ.'Q') THEN
00541           CALL OV ('X=X-YZ  ', X , Y , DA , C , NPOIN )
00542         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00543           CALL OV ('X=X-Y   ', X , Y , Z  , C  , NPOIN )
00544         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00545           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00546           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00547           CALL PLANTE(1)
00548           STOP
00549         ENDIF
00550 !
00551 !-----------------------------------------------------------------------
00552 !
00553       ELSEIF(OP(1:8).EQ.'X=X+CTAY') THEN
00554 !
00555 !   CONTRIBUTION OF EXTRADIAGONAL TERMS
00556 !
00557         IF(TYPEXT(1:1).EQ.'S') THEN
00558 !
00559           DO IELEM = 1 , NELEM
00560             W1(IELEM) = W1(IELEM) + C*(XA12(IELEM) * Y(IKLE2(IELEM)))
00561             W2(IELEM) = W2(IELEM) + C*(XA12(IELEM) * Y(IKLE1(IELEM)))
00562           ENDDO ! IELEM
00563 !
00564         ELSEIF(TYPEXT(1:1).EQ.'Q') THEN
00565 !
00566           DO IELEM = 1 , NELEM
00567             W1(IELEM) = W1(IELEM) + C*(XA21(IELEM) * Y(IKLE2(IELEM)))
00568             W2(IELEM) = W2(IELEM) + C*(XA12(IELEM) * Y(IKLE1(IELEM)))
00569           ENDDO ! IELEM
00570 !
00571         ELSEIF(TYPEXT(1:1).NE.'0') THEN
00572 !
00573           IF (LNG.EQ.1) WRITE(LU,1000) TYPEXT
00574           IF (LNG.EQ.2) WRITE(LU,1001) TYPEXT
00575           CALL PLANTE(1)
00576           STOP
00577 !
00578         ENDIF
00579 !
00580 !   CONTRIBUTION OF THE DIAGONAL
00581 !
00582         IF(TYPDIA(1:1).EQ.'Q') THEN
00583           CALL OV ('X=X+CYZ ', X , Y , DA , C , NPOIN )
00584         ELSEIF(TYPDIA(1:1).EQ.'I') THEN
00585           CALL OV ('X=X+CY  ', X , Y , Z  , C  , NPOIN )
00586         ELSEIF(TYPDIA(1:1).NE.'0') THEN
00587           IF (LNG.EQ.1) WRITE(LU,2000) TYPDIA
00588           IF (LNG.EQ.2) WRITE(LU,2001) TYPDIA
00589           CALL PLANTE(1)
00590           STOP
00591         ENDIF
00592 !
00593 !-----------------------------------------------------------------------
00594 !
00595       ELSE
00596 !
00597         IF (LNG.EQ.1) WRITE(LU,3000) OP
00598         IF (LNG.EQ.2) WRITE(LU,3001) OP
00599         CALL PLANTE(1)
00600         STOP
00601 !
00602 !-----------------------------------------------------------------------
00603 !
00604       ENDIF
00605 !
00606 !-----------------------------------------------------------------------
00607 !
00608       RETURN
00609 !
00610 1000  FORMAT(1X,'MV0202 (BIEF) : TERMES EXTRADIAG. TYPE INCONNU: ',A1)
00611 1001  FORMAT(1X,'MV0202 (BIEF) : EXTRADIAG. TERMS  UNKNOWN TYPE : ',A1)
00612 2000  FORMAT(1X,'MV0202 (BIEF) : DIAGONALE : TYPE INCONNU: ',A1)
00613 2001  FORMAT(1X,'MV0202 (BIEF) : DIAGONAL : UNKNOWN TYPE : ',A1)
00614 3000  FORMAT(1X,'MV0202 (BIEF) : OPERATION INCONNUE : ',A8)
00615 3001  FORMAT(1X,'MV0202 (BIEF) : UNKNOWN OPERATION : ',A8)
00616 !
00617       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0