matriy.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\matriy.f
00002 !
00112                      SUBROUTINE MATRIY
00113 !                    *****************
00114 !
00115      &(FORMUL,XM,TYPDIA,TYPEXT,
00116      & XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,T,LEGO,
00117      & XEL,YEL,ZEL,XPT,YPT,ZPT,SURFAC,LGSEG,IKLE,IKLBOR,NBOR,NELBOR,
00118      & NULONE,NELEM,NELMAX,NELEB,NELEBX,IELM1,IELM2,S,NPLAN,MESH,
00119      & SIZEXMT)
00120 !
00121 !***********************************************************************
00122 ! BIEF   V7P0                                   21/08/2010
00123 !***********************************************************************
00124 !
00125 !
00126 !
00127 !
00128 !
00129 !
00130 !
00131 !
00132 !
00133 !
00134 !
00135 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00136 !| F              |-->| FUNCTION USED IN THE FORMULA
00137 !| FORMUL         |-->| FORMULA DESCRIBING THE RESULTING MATRIX
00138 !| G              |-->| FUNCTION USED IN THE FORMULA
00139 !| H              |-->| FUNCTION USED IN THE FORMULA
00140 !| IELM1          |-->| TYPE OF ELEMENT FOR LINES
00141 !| IELM2          |-->| TYPE OF ELEMENT FOR COLUMNS
00142 !| IKLBOR         |-->| BOUNDARY ELEMENTS CONNECTIVITY TABLE.
00143 !| IKLE           |-->| CONNECTIVITY TABLE.
00144 !| LEGO           |-->| IF YES: ASSEMBLE THE DIAGONAL
00145 !| LGSEG          |-->| LENGTH OF SEGMENTS ON 2D BOUNDARIES
00146 !| NBOR           |-->| GLOBAL NUMBER OF BOUNDARY POINTS
00147 !| NELBOR         |-->| ADJACENT ELEMENT NUMBER
00148 !| NELEB          |-->| NUMBER OF BOUNDARY ELEMENTS
00149 !| NELEBX         |-->| MAXIMUM NUMBER OF BOUNDARY ELEMENTS
00150 !| NELEM          |-->| NUMBER OF ELEMENTS
00151 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS
00152 !| NULONE         |-->| LOCAL NUMBERING OF BOUNDARY ELEMENT IN ADJACENT
00153 !|                |   | ELEMENT.
00154 !| S              |-->| TYPE OF MATRIX STORAGE
00155 !| SF             |-->| STRUCTURE OF FUNCTIONS F
00156 !| SG             |-->| STRUCTURE OF FUNCTIONS G
00157 !| SH             |-->| STRUCTURE OF FUNCTIONS H
00158 !| SU             |-->| STRUCTURE OF FUNCTIONS U
00159 !| SV             |-->| STRUCTURE OF FUNCTIONS V
00160 !| SW             |-->| STRUCTURE OF FUNCTIONS W
00161 !| SURFAC         |-->| AREA OF 2D ELEMENTS
00162 !| T              |<->| WORK ARRAY FOR ELEMENT BY ELEMENT DIAGONAL
00163 !| TYPDIA         |<--| TYPE OF DIAGONAL
00164 !| TYPEXT         |<--| TYPE OF OFF-DIAGONAL TERMS
00165 !| U              |-->| FUNCTION USED IN THE FORMULA (COMPONENT OF VECTOR)
00166 !| V              |-->| FUNCTION USED IN THE FORMULA (COMPONENT OF VECTOR)
00167 !| W              |-->| FUNCTION USED IN THE FORMULA (COMPONENT OF VECTOR)
00168 !| XEL            |-->| ABSCISSAE OF POINTS, PER ELEMENT
00169 !| YEL            |-->| ORDINATES OF POINTS, PER ELEMENT
00170 !| ZEL            |-->| ELEVATIONS OF POINTS, PER ELEMENT
00171 !| XM             |<->| OFF-DIAGONAL TERMS
00172 !| XMUL           |-->| COEFFICIENT FOR MULTIPLICATION
00173 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00174 !
00175       USE BIEF, EX_MATRIY => MATRIY
00176 !
00177       IMPLICIT NONE
00178       INTEGER LNG,LU
00179       COMMON/INFO/LNG,LU
00180 !
00181 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00182 !
00183       INTEGER, INTENT(IN)             :: NELMAX,NELEM,IELM1,IELM2,S
00184       INTEGER, INTENT(IN)             :: NPLAN,NELEB,NELEBX,SIZEXMT
00185       INTEGER, INTENT(IN)             :: IKLE(NELMAX,*),NBOR(*)
00186       INTEGER, INTENT(IN)             :: IKLBOR(NELEBX,*)
00187       INTEGER, INTENT(IN)             :: NELBOR(NELEBX)
00188       INTEGER, INTENT(IN)             :: NULONE(NELEBX,*)
00189       LOGICAL, INTENT(INOUT)          :: LEGO
00190       TYPE(BIEF_OBJ), INTENT(IN)      :: SF,SG,SH,SU,SV,SW
00191       DOUBLE PRECISION, INTENT(IN)    :: F(*),G(*),H(*),U(*),V(*),W(*)
00192       DOUBLE PRECISION, INTENT(IN)    :: SURFAC(NELMAX),LGSEG(NELEBX)
00193       DOUBLE PRECISION, INTENT(IN)    :: XEL(*),YEL(*),ZEL(*)
00194       DOUBLE PRECISION, INTENT(IN)    :: XPT(*),YPT(*),ZPT(*)
00195       DOUBLE PRECISION, INTENT(IN)    :: XMUL
00196       DOUBLE PRECISION, INTENT(INOUT) :: XM(SIZEXMT,*),T(SIZEXMT,*)
00197       CHARACTER(LEN=16), INTENT(IN)   :: FORMUL
00198       CHARACTER(LEN=1), INTENT(INOUT) :: TYPDIA,TYPEXT
00199       TYPE(BIEF_MESH), INTENT(INOUT)  :: MESH
00200 !
00201 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00202 !
00203       LOGICAL SIGMAG,INCHYD,SPECAD
00204 !
00205       CHARACTER(LEN=1) TDIA,TEXT
00206 !
00207 !-----------------------------------------------------------------------
00208 !
00209       INTEGER ICOORD
00210 !
00211       INTEGER AAQ(3,3,2),BBQ(4,4,2),ABQ(3,4,2),BAQ(4,3,2),PPQ(6,6,2)
00212       INTEGER AAS(3,3,2),BBS(4,4,2),OOS(2,2,2),FFS(4,4,2),PPS(6,6,2)
00213       INTEGER ACQ(3,6,2),CAQ(6,3,2),OOQ(2,2,2)
00214 !
00215 !  BEWARE: SHOULD TRANSPOSE THE FOLLOWING MATRICES IN NON-SPECIAL
00216 !  CASES, BECAUSE OF THE FORTRAN NOTATION OF DATA
00217 !
00218 !  BEWARE: OM WAS NOT PARAMETERISED WITH THESE ARRAYS
00219 !          THESE DATA ALSO APPEAR IN MATVCT
00220 !
00221       DATA OOS/  0 ,  1 ,
00222      &           1 ,  0 ,
00223 ! S=2 NOT IMPLEMENTED
00224      &           0 ,  0 ,
00225      &           0 ,  0 /
00226 !
00227       DATA OOQ/  0 ,  2 ,
00228      &           1 ,  0 ,
00229 ! S=2 NOT IMPLEMENTED
00230      &           0 ,  0 ,
00231      &           0 ,  0 /
00232 !
00233 !     SYMMETRICAL P1-P1 EBE (S=1)
00234       DATA AAS/  0 ,  1 ,  2 ,
00235      &           1 ,  0 ,  3 ,
00236      &           2 ,  3 ,  0 ,
00237 !     SYMMETRICAL P1-P1 PRE-ASSEMBLED EBE (S=2)
00238      &           0 ,  1 ,  3 ,
00239      &           1 ,  0 ,  2 ,
00240      &           3 ,  2 ,  0 /
00241 !
00242 !     NONSYMMETRICAL P1-P1 EBE (S=1)
00243       DATA AAQ/  0 ,  4 ,  5 ,
00244      &           1 ,  0 ,  6 ,
00245      &           2 ,  3 ,  0 ,
00246 !     NONSYMMETRICAL P1-P1 PRE-ASSEMBLED EBE (S=2)
00247      &           0 ,  4 ,  3 ,
00248      &           1 ,  0 ,  5 ,
00249      &           6 ,  2 ,  0 /
00250 !
00251 !     SYMMETRICAL QUASI-BUBBLE QUASI-BUBBLE EBE (S=1)
00252       DATA BBS/  0 ,  1 ,  2 ,  3 ,
00253      &           1 ,  0 ,  4 ,  5 ,
00254      &           2 ,  4 ,  0 ,  6 ,
00255      &           3 ,  5 ,  6 ,  0 ,
00256 !     SYMMETRICAL QUASI-BUBBLE QUASI-BUBBLE PRE-ASSEMBLED EBE (S=2)
00257      &           0 ,  4 ,  6 ,  1 ,
00258      &           4 ,  0 ,  5 ,  2 ,
00259      &           6 ,  5 ,  0 ,  3 ,
00260      &           1 ,  2 ,  3 ,  0 /
00261 !
00262 !     NONSYMMETRICAL QUASI-BUBBLE QUASI-BUBBLE EBE (S=1)
00263       DATA BBQ/  0 ,  7 ,  8 ,  9 ,
00264      &           1 ,  0 , 10 , 11 ,
00265      &           2 ,  4 ,  0 , 12 ,
00266      &           3 ,  5 ,  6 ,  0 ,
00267 !     NONSYMMETRICAL QUASI-BUBBLE QUASI-BUBBLE PRE-ASSEMBLED EBE (S=2)
00268      &           0 , 10 ,  6 ,  7 ,
00269      &           4 ,  0 , 11 ,  8 ,
00270      &          12 ,  5 ,  0 ,  9 ,
00271      &           1 ,  2 ,  3 ,  0 /
00272 !
00273 !     NONSYMMETRICAL P1 QUASI-BUBBLE EBE (S=1)
00274       DATA ABQ/  0 ,  4 ,  7 ,
00275      &           1 ,  0 ,  8 ,
00276      &           2 ,  5 ,  0 ,
00277      &           3 ,  6 ,  9 ,
00278 !     NONSYMMETRICAL P1 QUASI-BUBBLE PRE-ASSEMBLED EBE (S=2)
00279      &           0 ,  7 ,  3 ,
00280      &           1 ,  0 ,  8 ,
00281      &           9 ,  2 ,  0 ,
00282      &           4 ,  5 ,  6 /
00283 !
00284 !     NONSYMMETRICAL QUASI-BUBBLE P1 EBE (S=1)
00285       DATA BAQ/  0 ,  3 ,  5 ,  7 ,
00286      &           1 ,  0 ,  6 ,  8 ,
00287      &           2 ,  4 ,  0 ,  9 ,
00288 !     NONSYMMETRICAL QUASI-BUBBLE P1 PRE-ASSEMBLED EBE (S=2)
00289      &           0 ,  7 ,  3 ,  4 ,
00290      &           1 ,  0 ,  8 ,  5 ,
00291      &           9 ,  2 ,  0 ,  6 /
00292 !     NONSYMMETRICAL P1 P2 EBE (S=1)
00293       DATA ACQ/   0 ,  6  , 11 ,
00294      &            1 ,  0  , 12 ,
00295      &            2 ,  7  ,  0 ,
00296      &            3 ,  8  , 13 ,
00297      &            4 ,  9  , 14 ,
00298      &            5 ,  10 , 15 ,
00299 ! S=2 NOT IMPLEMENTED
00300      &            0 ,  0 ,  0  ,
00301      &            0 ,  0 ,  0  ,
00302      &            0 ,  0 ,  0  ,
00303      &            0 ,  0 ,  0  ,
00304      &            0 ,  0 ,  0  ,
00305      &            0 ,  0 ,  0  /
00306 !     NONSYMMETRICAL P2 P1 EBE (S=1)
00307       DATA CAQ/  0 ,  3 ,  5 ,  7 , 10 , 13 ,
00308      &           1 ,  0 ,  6 ,  8 , 11 , 14 ,
00309      &           2 ,  4 ,  0 ,  9 , 12 , 15 ,
00310 !     NONSYMMETRICAL P2 P1 PRE-ASSEMBLED EBE (S=2)
00311 !     - NOT IMPLEMENTED
00312      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00313      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00314      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 /
00315 !
00316 !     ADDED BY JMJ BUT NOT USED
00317 !     SYMMETRICAL P1-P1 PRISMS AND P2 TRIANGLES EBE (S=1)
00318       DATA PPS/  0 ,  1 ,  2 ,  3 ,  4 ,  5 ,
00319      &           1 ,  0 ,  6 ,  7 ,  8 ,  9 ,
00320      &           2 ,  6 ,  0 , 10 , 11 , 12 ,
00321      &           3 ,  7 , 10 ,  0 , 13 , 14 ,
00322      &           4 ,  8 , 11 , 13 ,  0 , 15 ,
00323      &           5 ,  9 , 12 , 14 , 15 ,  0 ,
00324 !     SYMMETRICAL P1-P1 PRISMS PRE-ASSEMBLED EBE (S=2) - NOT IMPLEMENTED
00325      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00326      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00327      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00328      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00329      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00330      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 /
00331 !
00332 !     NONSYMMETRICAL P1-P1 PRISMS EBE (S=1)
00333       DATA PPQ/  0 , 16 , 17 , 18 , 19 , 20 ,
00334      &           1 ,  0 , 21 , 22 , 23 , 24 ,
00335      &           2 ,  6 ,  0 , 25 , 26 , 27 ,
00336      &           3 ,  7 , 10 ,  0 , 28 , 29 ,
00337      &           4 ,  8 , 11 , 13 ,  0 , 30 ,
00338      &           5 ,  9 , 12 , 14 , 15 ,  0 ,
00339 !     NONSYMMETRICAL P1-P1 PRISMS PRE-ASSEMBLED EBE (S=2) - NOT IMPLEMENTED
00340      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00341      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00342      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00343      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00344      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 ,
00345      &           0 ,  0 ,  0 ,  0 ,  0 ,  0 /
00346 !
00347 !     SYMMETRICAL Q1-Q1 QUADRANGLES EBE (S=1)
00348       DATA FFS/  0 ,  1 ,  2 ,  3 ,
00349      &           1 ,  0 ,  4 ,  5 ,
00350      &           2 ,  4 ,  0 ,  6 ,
00351      &           3 ,  5 ,  6 ,  0 ,
00352 !     SYMMETRICAL Q1-Q1 QUADRANGLES PRE-ASSEMBLED EBE (S=2) - NOT IMPLEMENTED
00353      &           0 ,  0 ,  0 ,  0 ,
00354      &           0 ,  0 ,  0 ,  0 ,
00355      &           0 ,  0 ,  0 ,  0 ,
00356      &           0 ,  0 ,  0 ,  0 /
00357 !
00358 !-----------------------------------------------------------------------
00359 !
00360 !  TESTS THE TYPE OF MATRIX
00361 !
00362 !=======================================================================
00363 !     MASS MATRIX
00364 !=======================================================================
00365 !
00366       IF(FORMUL(1:16).EQ.'MATMAS          ') THEN
00367 !
00368 !-----------------------------------------------------------------------
00369 !       P1 TRIANGLE ROW ELEMENT
00370         IF(IELM1.EQ.11) THEN
00371 !
00372 !.......................................................................
00373 !         P1 TRIANGLE COLUMN ELEMENT
00374           IF(IELM2.EQ.11) THEN
00375              CALL MT01AA(   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
00376      &                                       T(1,2)   ,XM(1,AAS(2,3,S)),
00377      &                                                        T(1,3)   ,
00378      &                   XMUL,SURFAC,NELEM,NELMAX)
00379 !
00380             TYPDIA='Q'
00381             TYPEXT='S'
00382 !
00383 !.......................................................................
00384 !         OTHER
00385 !.......................................................................
00386 !
00387 !         ELSEIF
00388 !
00389 !.......................................................................
00390 !         ERROR ON THE COLUMN ELEMENT
00391 !.......................................................................
00392           ELSE
00393             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00394             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00395             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00396             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00397             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00398             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00399             CALL PLANTE(1)
00400             STOP
00401           ENDIF
00402 !
00403 !-----------------------------------------------------------------------
00404 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
00405         ELSEIF(IELM1.EQ.12) THEN
00406 !
00407 !.......................................................................
00408 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
00409           IF(IELM2.EQ.12) THEN
00410           CALL MT01BB
00411      & (   T(1,1)   ,XM(1,BBS(1,2,S)),XM(1,BBS(1,3,S)),XM(1,BBS(1,4,S)),
00412      &                      T(1,2)   ,XM(1,BBS(2,3,S)),XM(1,BBS(2,4,S)),
00413      &                                       T(1,3)   ,XM(1,BBS(3,4,S)),
00414      &                                                        T(1,4)   ,
00415      &      XMUL,SURFAC,NELEM,NELMAX)
00416 !
00417             TYPDIA='Q'
00418             TYPEXT='S'
00419 !
00420 !.......................................................................
00421 !         OTHER
00422 !.......................................................................
00423 !
00424 !         ELSEIF
00425 !
00426 !.......................................................................
00427 !         ERROR ON THE COLUMN ELEMENT
00428 !.......................................................................
00429           ELSE
00430             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00431             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00432             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00433             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00434             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00435             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00436             CALL PLANTE(1)
00437             STOP
00438           ENDIF
00439 !
00440 !-----------------------------------------------------------------------
00441 !       P2 TRIANGLE
00442 !-----------------------------------------------------------------------
00443 !
00444         ELSEIF(IELM1.EQ.13) THEN
00445 !
00446 !       TESTS THE COLUMN ELEMENT
00447 !
00448 !.......................................................................
00449 !         P2 TRIANGLE
00450 !.......................................................................
00451 !
00452           IF(IELM2.EQ.13) THEN
00453              CALL MT01CC
00454      & (   T(1,1)   ,XM(1,PPS(1,2,S)),XM(1,PPS(1,3,S)),
00455      &   XM(1,PPS(1,4,S)),XM(1,PPS(1,5,S)),XM(1,PPS(1,6,S)),
00456      &     T(1,2)   ,XM(1,PPS(2,3,S)),XM(1,PPS(2,4,S)),
00457      &   XM(1,PPS(2,5,S)),XM(1,PPS(2,6,S)),
00458      &     T(1,3)   ,XM(1,PPS(3,4,S)),XM(1,PPS(3,5,S)),
00459      &   XM(1,PPS(3,6,S)),
00460      &     T(1,4)   ,XM(1,PPS(4,5,S)),XM(1,PPS(4,6,S)),
00461      &     T(1,5)   ,XM(1,PPS(5,6,S)),T(1,6),
00462      &     XMUL,SURFAC,NELEM,NELMAX)
00463 !
00464              TYPDIA='Q'
00465              TYPEXT='S'
00466 !
00467 !.......................................................................
00468 !         OTHER
00469 !.......................................................................
00470 !
00471 !         ELSEIF
00472 !
00473 !-----------------------------------------------------------------------
00474 !         ERROR ON THE COLUMN ELEMENT
00475 !-----------------------------------------------------------------------
00476 !
00477           ELSE
00478             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00479             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00480             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00481             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00482             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00483             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00484             CALL PLANTE(1)
00485             STOP
00486           ENDIF
00487 !
00488 !-----------------------------------------------------------------------
00489 !       P1 SEGMENT ROW ELEMENT
00490         ELSEIF(IELM1.EQ.1) THEN
00491 !.......................................................................
00492 !         P1 SEGMENT COLUMN ELEMENT
00493           IF(IELM2.EQ.1.AND.S.EQ.1) THEN
00494              CALL MT01OO(   T(1,1)   ,XM(1,OOS(1,2,S)),
00495      &                                       T(1,2)   ,
00496      &                   XMUL,LGSEG,NELEB,NELEBX)
00497 !
00498              TYPDIA='Q'
00499              TYPEXT='S'
00500 !
00501 !.......................................................................
00502 !         OTHER COLUMN ELEMENT
00503 !.......................................................................
00504 !
00505 !         ELSEIF
00506 !
00507 !-----------------------------------------------------------------------
00508 !         ERROR ON THE COLUMN ELEMENT
00509 !-----------------------------------------------------------------------
00510 !
00511           ELSE
00512             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00513             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00514             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00515             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00516             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00517             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00518             CALL PLANTE(1)
00519             STOP
00520           ENDIF
00524         ELSEIF(IELM1.EQ.41) THEN
00525 !
00526 !.......................................................................
00527 !         P1 PRISM COLUMN ELEMENT
00528           IF(IELM2.EQ.41) THEN
00529              CALL MT01PP(T,XM,XMUL,ZPT,SURFAC,IKLE,NELEM,NELMAX)
00530 !
00531              TYPDIA='Q'
00532              TYPEXT='S'
00533 !
00534 !.......................................................................
00535 !         OTHER
00536 !.......................................................................
00537 !
00538 !         ELSEIF
00539 !
00540 !-----------------------------------------------------------------------
00541 !         ERROR ON THE COLUMN ELEMENT
00542 !-----------------------------------------------------------------------
00543 !
00544           ELSE
00545             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00546             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00547             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00548             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00549             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00550             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00551             CALL PLANTE(1)
00552             STOP
00553           ENDIF
00554 !
00555 !-----------------------------------------------------------------------
00556 !       T1 TETRAHEDRON ROW ELEMENT
00557         ELSEIF(IELM1.EQ.31.OR.IELM1.EQ.51) THEN
00558 !
00559 !.......................................................................
00560 !         P1 PRISM COLUMN ELEMENT
00561           IF(IELM2.EQ.31.OR.IELM2.EQ.51) THEN
00562              CALL MT01TT(T,XM,XMUL,XPT,YPT,ZPT,IKLE,NELEM,NELMAX)
00563 !
00564              TYPDIA='Q'
00565              TYPEXT='S'
00566 !
00567 !.......................................................................
00568 !         OTHER
00569 !.......................................................................
00570 !
00571 !         ELSEIF
00572 !
00573 !-----------------------------------------------------------------------
00574 !         ERROR ON THE COLUMN ELEMENT
00575 !-----------------------------------------------------------------------
00576 !
00577           ELSE
00578             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00579             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00580             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00581             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00582             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00583             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00584             CALL PLANTE(1)
00585             STOP
00586           ENDIF
00587 !
00588 !-----------------------------------------------------------------------
00589 !       OTHER ROW ELEMENT
00590 !-----------------------------------------------------------------------
00591 !
00592 !       ELSEIF
00593 !
00594 !-----------------------------------------------------------------------
00595 !       ERROR ON THE ROW ELEMENT
00596 !-----------------------------------------------------------------------
00597 !
00598         ELSE
00599           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00600           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00601           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00602           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00603           CALL PLANTE(1)
00604           STOP
00605         ENDIF
00606 !
00607 !=======================================================================
00608 !     DIFFUSION MATRIX
00609 !=======================================================================
00610 !
00611       ELSEIF(FORMUL(1:6).EQ.'MATDIF') THEN
00612 !
00613 !     CHARACTER 7 INFORMS WHETHER INCHYD OR NOT
00614 !
00615       INCHYD = .FALSE.
00616       IF(FORMUL(7:7).EQ.'2') INCHYD = .TRUE.
00617 !
00618 !     TESTS THE ROW ELEMENT
00619 !
00620 !-----------------------------------------------------------------------
00621 !       P1 TRIANGLE
00622         IF(IELM1.EQ.11) THEN
00623 !
00624 !.......................................................................
00625 !         P1 TRIANGLE COLUMN ELEMENT
00626           IF(IELM2.EQ.11) THEN
00627 !
00628 !     CHARACTER 7 ALSO INFORMS WHETHER THE DIFFUSION TERM IS REQUIRED
00629 !     FOR ESTEL
00630 !
00631       IF(FORMUL(7:7).NE.'3') THEN
00632 !
00633              CALL MT02AA(  T(1,1),XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
00634      &                                   T(1,2)   ,XM(1,AAS(2,3,S)),
00635      &                                                      T(1,3) ,
00636      &                         XMUL,SU,U,SV,V,XEL,YEL,SURFAC,
00637      &             IKLE(1,1),IKLE(1,2),IKLE(1,3),NELEM,NELMAX,FORMUL)
00638 !
00639       ELSE
00640 !
00641              CALL MT02AA_2( T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
00642      &                                       T(1,2)   ,XM(1,AAS(2,3,S)),
00643      &                                                        T(1,3)   ,
00644      &                   XMUL,SU,SV,U,V,XEL,YEL,SURFAC,NELEM,NELMAX)
00645 !
00646       ENDIF
00647 !
00648       TYPDIA='Q'
00649       TYPEXT='S'
00650 !
00651 !.......................................................................
00652 !         OTHER
00653 !.......................................................................
00654 !
00655 !         ELSEIF
00656 !
00657 !-----------------------------------------------------------------------
00658 !         ERROR ON THE COLUMN ELEMENT
00659 !-----------------------------------------------------------------------
00660 !
00661           ELSE
00662             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00663             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00664             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00665             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00666             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00667             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00668             CALL PLANTE(1)
00669             STOP
00670           ENDIF
00671 !
00672 !-----------------------------------------------------------------------
00673 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
00674         ELSEIF(IELM1.EQ.12) THEN
00675 !
00676 !.......................................................................
00677 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
00678           IF(IELM2.EQ.12) THEN
00679              CALL MT02BB
00680      & (   T(1,1)   ,XM(1,BBS(1,2,S)),XM(1,BBS(1,3,S)),XM(1,BBS(1,4,S)),
00681      &                      T(1,2)   ,XM(1,BBS(2,3,S)),XM(1,BBS(2,4,S)),
00682      &                                       T(1,3)   ,XM(1,BBS(3,4,S)),
00683      &                                                        T(1,4)   ,
00684      &          XMUL,SU,U,XEL,YEL,SURFAC,
00685      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),NELEM,NELMAX)
00686 !
00687              TYPDIA='Q'
00688              TYPEXT='S'
00689 !
00690 !.......................................................................
00691 !         OTHER
00692 !.......................................................................
00693 !
00694 !         ELSEIF
00695 !
00696 !-----------------------------------------------------------------------
00697 !         ERROR ON THE COLUMN ELEMENT
00698 !-----------------------------------------------------------------------
00699 !
00700           ELSE
00701             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00702             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00703             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00704             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00705             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00706             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00707             CALL PLANTE(1)
00708             STOP
00709           ENDIF
00710 !
00711 !-----------------------------------------------------------------------
00712 !       P2 TRIANGLE ROW ELEMENT
00713 !
00714         ELSEIF(IELM1.EQ.13) THEN
00715 !
00716 !.......................................................................
00717 !         P2 TRIANGLE COLUMN ELEMENT
00718 !         USES MATRIX PPS BECAUSE WILL BE A 6X6 SYMMETRICAL MATRIX
00719 !
00720           IF(IELM2.EQ.13) THEN
00721              CALL MT02CC
00722      & (   T(1,1)   ,XM(1,PPS(1,2,S)),XM(1,PPS(1,3,S)),
00723      &   XM(1,PPS(1,4,S)),XM(1,PPS(1,5,S)),XM(1,PPS(1,6,S)),
00724      &     T(1,2)   ,XM(1,PPS(2,3,S)),XM(1,PPS(2,4,S)),
00725      &   XM(1,PPS(2,5,S)),XM(1,PPS(2,6,S)),
00726      &     T(1,3)   ,XM(1,PPS(3,4,S)),XM(1,PPS(3,5,S)),
00727      &   XM(1,PPS(3,6,S)),
00728      &     T(1,4)   ,XM(1,PPS(4,5,S)),XM(1,PPS(4,6,S)),
00729      &     T(1,5)   ,XM(1,PPS(5,6,S)),T(1,6),
00730      &          XMUL,SU,U,XEL,YEL,SURFAC,
00731      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
00732      &          NELEM,NELMAX)
00733 !
00734              TYPDIA='Q'
00735              TYPEXT='S'
00736 !
00737 !.......................................................................
00738 !         OTHER
00739 !.......................................................................
00740 !
00741 !         ELSEIF
00742 !
00743 !-----------------------------------------------------------------------
00744 !         ERROR ON THE COLUMN ELEMENT
00745 !-----------------------------------------------------------------------
00746 !
00747           ELSE
00748             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00749             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00750             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00751             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00752             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00753             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00754             CALL PLANTE(1)
00755             STOP
00756           ENDIF
00757 !
00758 !-----------------------------------------------------------------------
00759 !       P1 PRISM ROW ELEMENT
00760         ELSEIF(IELM1.EQ.41) THEN
00761 !
00762 !.......................................................................
00763 !         P1 PRISM COLUMN ELEMENT
00764           IF(IELM2.EQ.41) THEN
00765 !
00766           IF(FORMUL(7:7).EQ.'*') THEN
00767 !           COMPUTATION BASED ON THE TRANSFORMED MESH
00768             CALL MT02PP_STAR(T,XM,XMUL,SF,SG,SH,F,G,H,
00769      &                      XEL,YEL,ZPT,SURFAC,IKLE,NELEM,NELMAX,INCHYD,
00770      &                      FORMUL,NPLAN)
00771             IF(FORMUL(10:13).EQ.'1234') THEN
00772               TYPEXT='S'
00773             ELSEIF(FORMUL(10:13).EQ.'1 3 ') THEN
00774               TYPEXT='Q'
00775             ELSEIF(FORMUL(10:13).EQ.' 2 4') THEN
00776               TYPEXT='Q'
00777             ELSE
00778               WRITE(LU,*) 'ERROR ON FORMULA=',FORMUL
00779               CALL PLANTE(1)
00780               STOP
00781             ENDIF
00782           ELSE
00783 !           COMPUTATION IN REAL MESH
00784 !           CALL MT02PT(T,XM,XMUL,SF,SG,SH,F,G,H,
00785 !    *                  XPT,YPT,ZPT,IKLE,NELEM,NELMAX,INCHYD)
00786             CALL MT02PP(T,XM,XMUL,SF,SG,SH,F,G,H,
00787      &                  XEL,YEL,ZPT,SURFAC,IKLE,NELEM,NELMAX,INCHYD,
00788      &                  FORMUL,NPLAN)
00789             TYPEXT='S'
00790           ENDIF
00791           TYPDIA='Q'
00792 !
00793 !.......................................................................
00794 !         OTHER
00795 !.......................................................................
00796 !
00797 !         ELSEIF
00798 !
00799 !-----------------------------------------------------------------------
00800 !         ERROR ON THE COLUMN ELEMENT
00801 !-----------------------------------------------------------------------
00802 !
00803           ELSE
00804             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00805             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00806             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00807             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00808             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00809             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00810             CALL PLANTE(1)
00811             STOP
00812           ENDIF
00813 !
00814 !-----------------------------------------------------------------------
00815 !       TETRAHEDRON ROW ELEMENT
00816         ELSEIF(IELM1.EQ.31.OR.IELM1.EQ.51) THEN
00817 !
00818 !.......................................................................
00819 !         P1 PRISM COLUMN ELEMENT
00820           IF(IELM2.EQ.31.OR.IELM2.EQ.51) THEN
00821 !
00822           CALL MT02TT(T,XM,XMUL,SF,SG,SH,F,G,H,
00823      &                XPT,YPT,ZPT,IKLE,NELEM,NELMAX,INCHYD,
00824      &                BIEF_NBPTS(11,MESH))
00825 !
00826           TYPDIA='Q'
00827           TYPEXT='S'
00828 !
00829 !.......................................................................
00830 !         OTHER
00831 !.......................................................................
00832 !
00833 !         ELSEIF
00834 !
00835 !-----------------------------------------------------------------------
00836 !         ERROR ON THE COLUMN ELEMENT
00837 !-----------------------------------------------------------------------
00838 !
00839           ELSE
00840             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00841             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00842             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00843             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00844             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00845             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00846             CALL PLANTE(1)
00847             STOP
00848           ENDIF
00849 !
00850 !-----------------------------------------------------------------------
00851 !       OTHER ROW ELEMENT
00852 !-----------------------------------------------------------------------
00853 !
00854 !       ELSEIF
00855 !
00856 !-----------------------------------------------------------------------
00857 !       ERROR ON THE ROW ELEMENT
00858 !-----------------------------------------------------------------------
00859 !
00860         ELSE
00861           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00862           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00863           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00864           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00865           CALL PLANTE(1)
00866           STOP
00867         ENDIF
00868 !
00869 !=======================================================================
00870 !     CONTRIBUTION OF SUPG TO THE MASS MATRIX
00871 !=======================================================================
00872 !
00873       ELSEIF(FORMUL(1:16).EQ.'MASUPG          ') THEN
00874 !
00875 !-----------------------------------------------------------------------
00876 !       P1 TRIANGLE ROW ELEMENT
00877         IF(IELM1.EQ.11) THEN
00878 !
00879 !.......................................................................
00880 !         P1 TRIANGLE COLUMN ELEMENT
00881           IF(IELM2.EQ.11) THEN
00882              CALL MT03AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
00883      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
00884      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
00885      &                   XMUL,SF,SG,SU,SV,F,G,U,V,XEL,YEL,SURFAC,
00886      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
00887      &                   NELEM,NELMAX)
00888 !
00889              TYPDIA='Q'
00890              TYPEXT='Q'
00891 !
00892 !.......................................................................
00893 !         OTHER
00894 !.......................................................................
00895 !
00896 !         ELSEIF
00897 !
00898 !-----------------------------------------------------------------------
00899 !         ERROR ON THE COLUMN ELEMENT
00900 !-----------------------------------------------------------------------
00901 !
00902           ELSE
00903             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00904             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00905             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00906             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00907             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00908             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00909             CALL PLANTE(1)
00910             STOP
00911           ENDIF
00912 !
00913 !-----------------------------------------------------------------------
00914 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
00915         ELSEIF(IELM1.EQ.12) THEN
00916 !
00917 !.......................................................................
00918 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
00919           IF(IELM2.EQ.12) THEN
00920              CALL MT03BB
00921      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
00922      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
00923      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
00924      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
00925      &          XMUL,SF,SG,SU,SV,F,G,U,V,
00926      &          XEL,YEL,IKLE(1,1),IKLE(1,2),IKLE(1,3),NELEM,NELMAX)
00927 !
00928              TYPDIA='Q'
00929              TYPEXT='Q'
00930 !
00931 !.......................................................................
00932 !         OTHER
00933 !.......................................................................
00934 !
00935 !         ELSEIF
00936 !
00937 !-----------------------------------------------------------------------
00938 !         ERROR ON THE COLUMN ELEMENT
00939 !-----------------------------------------------------------------------
00940 !
00941           ELSE
00942             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00943             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00944             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00945             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00946             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00947             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00948             CALL PLANTE(1)
00949             STOP
00950           ENDIF
00951 !
00952 !-----------------------------------------------------------------------
00953 !       P2 TRIANGLE ROW ELEMENT
00954         ELSEIF(IELM1.EQ.13) THEN
00955 !
00956 !.......................................................................
00957 !         P2 TRIANGLE COLUMN ELEMENT
00958           IF(IELM2.EQ.13) THEN
00959              CALL MT03CC
00960      & (   T(1,1)   ,XM(1,PPQ(1,2,S)),XM(1,PPQ(1,3,S)),
00961      &   XM(1,PPQ(1,4,S)),XM(1,PPQ(1,5,S)),XM(1,PPQ(1,6,S)),
00962      &   XM(1,PPQ(2,1,S)),T(1,2),XM(1,PPQ(2,3,S)),XM(1,PPQ(2,4,S)),
00963      &   XM(1,PPQ(2,5,S)),XM(1,PPQ(2,6,S)),XM(1,PPQ(3,1,S)),
00964      &   XM(1,PPQ(3,2,S)),T(1,3),XM(1,PPQ(3,4,S)),XM(1,PPQ(3,5,S)),
00965      &   XM(1,PPQ(3,6,S)),XM(1,PPQ(4,1,S)),XM(1,PPQ(4,2,S)),
00966      &   XM(1,PPQ(4,3,S)),T(1,4),XM(1,PPQ(4,5,S)),XM(1,PPQ(4,6,S)),
00967      &   XM(1,PPQ(5,1,S)),XM(1,PPQ(5,2,S)),XM(1,PPQ(5,3,S)),
00968      &   XM(1,PPQ(5,4,S)),  T(1,5)   ,XM(1,PPQ(5,6,S)),
00969      &   XM(1,PPQ(6,1,S)),XM(1,PPQ(6,2,S)) ,XM(1,PPQ(6,3,S)),
00970      &   XM(1,PPQ(6,4,S)),XM(1,PPQ(6,5,S)),T(1,6),
00971      &          XMUL,SF,SG,SU,SV,F,G,U,V,XEL,YEL,
00972      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
00973      &          IKLE(1,4),IKLE(1,5),IKLE(1,6),
00974      &          NELEM,NELMAX)
00975 !
00976              TYPDIA='Q'
00977              TYPEXT='Q'
00978 !.......................................................................
00979 !         OTHER
00980 !.......................................................................
00981 !
00982 !         ELSEIF
00983 !
00984 !-----------------------------------------------------------------------
00985 !         ERROR ON THE COLUMN ELEMENT
00986 !-----------------------------------------------------------------------
00987 !
00988           ELSE
00989             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
00990             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
00991             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
00992             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
00993             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
00994             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
00995             CALL PLANTE(1)
00996             STOP
00997           ENDIF
00998 !
00999 !-----------------------------------------------------------------------
01000 !       OTHER
01001 !-----------------------------------------------------------------------
01002 !
01003 !       ELSEIF
01004 !
01005 !-----------------------------------------------------------------------
01006 !       ERROR ON THE ROW ELEMENT
01007 !-----------------------------------------------------------------------
01008 !
01009         ELSE
01010           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01011           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01012           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01013           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01014           CALL PLANTE(1)
01015           STOP
01016         ENDIF
01017 !
01018 !=======================================================================
01019 !     U.GRAD U.GRAD MATRIX
01020 !=======================================================================
01021 !
01022       ELSEIF(FORMUL(1:6).EQ.'MAUGUG') THEN
01023 !
01024 !-----------------------------------------------------------------------
01025 !       P1 TRIANGLE ROW ELEMENT
01026         IF(IELM1.EQ.11) THEN
01027 !
01028 !.......................................................................
01029 !         P1 TRIANGLE COLUMN ELEMENT
01030           IF(IELM2.EQ.11) THEN
01031              CALL MT04AA(   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01032      &                                       T(1,2)   ,XM(1,AAS(2,3,S)),
01033      &                                                        T(1,3)   ,
01034      &                   XMUL,SU,SV,U,V,XEL,YEL,SURFAC,IKLE,
01035      &                   NELEM,NELMAX)
01036 !
01037              TYPDIA='Q'
01038              TYPEXT='S'
01039 !
01040 !.......................................................................
01041 !         OTHER
01042 !.......................................................................
01043 !
01044 !         ELSEIF
01045 !
01046 !-----------------------------------------------------------------------
01047 !         ERROR ON THE COLUMN ELEMENT
01048 !-----------------------------------------------------------------------
01049 !
01050           ELSE
01051             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01052             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01053             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01054             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01055             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01056             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01057             CALL PLANTE(1)
01058             STOP
01059           ENDIF
01060 !
01061 !-----------------------------------------------------------------------
01062 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
01063         ELSEIF(IELM1.EQ.12) THEN
01064 !
01065 !.......................................................................
01066 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
01067           IF(IELM2.EQ.12) THEN
01068              CALL MT04BB
01069      & (   T(1,1)   ,XM(1,BBS(1,2,S)),XM(1,BBS(1,3,S)),XM(1,BBS(1,4,S)),
01070      &                      T(1,2)   ,XM(1,BBS(2,3,S)),XM(1,BBS(2,4,S)),
01071      &                                       T(1,3)   ,XM(1,BBS(3,4,S)),
01072      &                                                        T(1,4)   ,
01073      &          XMUL,SU,SV,U,V,XEL,YEL,
01074      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),NELEM,NELMAX)
01075 !
01076              TYPDIA='Q'
01077              TYPEXT='S'
01078 !
01079 !.......................................................................
01080 !         OTHER
01081 !.......................................................................
01082 !
01083 !         ELSEIF
01084 !
01085 !-----------------------------------------------------------------------
01086 !         ERROR ON THE COLUMN ELEMENT
01087 !-----------------------------------------------------------------------
01088 !
01089           ELSE
01090             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01091             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01092             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01093             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01094             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01095             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01096             CALL PLANTE(1)
01097             STOP
01098           ENDIF
01099 !
01100 !-----------------------------------------------------------------------
01101 !       P2 TRIANGLE ROW ELEMENT
01102         ELSEIF(IELM1.EQ.13) THEN
01103 !
01104 !.......................................................................
01105 !         P2 TRIANGLE COLUMN ELEMENT
01106           IF(IELM2.EQ.13) THEN
01107              CALL MT04CC
01108      & (   T(1,1)   ,XM(1,PPS(1,2,S)),XM(1,PPS(1,3,S)),
01109      &   XM(1,PPS(1,4,S)),XM(1,PPS(1,5,S)),XM(1,PPS(1,6,S)),
01110      &     T(1,2)   ,XM(1,PPS(2,3,S)),XM(1,PPS(2,4,S)),
01111      &   XM(1,PPS(2,5,S)),XM(1,PPS(2,6,S)),
01112      &     T(1,3)   ,XM(1,PPS(3,4,S)),XM(1,PPS(3,5,S)),
01113      &   XM(1,PPS(3,6,S)),
01114      &     T(1,4)   ,XM(1,PPS(4,5,S)),XM(1,PPS(4,6,S)),
01115      &     T(1,5)   ,XM(1,PPS(5,6,S)),T(1,6),
01116      &          XMUL,SU,SV,U,V,XEL,YEL,
01117      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
01118      &          IKLE(1,4),IKLE(1,5),IKLE(1,6),NELEM,NELMAX)
01119 !
01120              TYPDIA='Q'
01121              TYPEXT='S'
01122 !
01123 !.......................................................................
01124 !         OTHER
01125 !.......................................................................
01126 !
01127 !         ELSEIF
01128 !
01129 !-----------------------------------------------------------------------
01130 !         ERROR ON THE COLUMN ELEMENT
01131 !-----------------------------------------------------------------------
01132 !
01133           ELSE
01134             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01135             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01136             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01137             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01138             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01139             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01140             CALL PLANTE(1)
01141             STOP
01142           ENDIF
01143 !
01144 !-----------------------------------------------------------------------
01145 !       P1 PRISM ROW ELEMENT
01146         ELSEIF(IELM1.EQ.41) THEN
01147 !
01148 !.......................................................................
01149 !         P1 PRISM COLUMN ELEMENT
01150           IF(IELM2.EQ.41) THEN
01151             CALL MT04PP(T,XM,XMUL,SU,SV,SW,U,V,W,
01152      &                  XEL,YEL,ZPT,SURFAC,IKLE,NELEM,NELMAX,FORMUL)
01153 !
01154             TYPDIA='Q'
01155             IF(FORMUL(7:7).EQ.'2') THEN
01156               TYPEXT='S'
01157             ELSE
01158               TYPEXT='Q'
01159             ENDIF
01160 !
01161 !.......................................................................
01162 !         OTHER
01163 !.......................................................................
01164 !
01165 !         ELSEIF
01166 !
01167 !-----------------------------------------------------------------------
01168 !         ERROR ON THE COLUMN ELEMENT
01169 !-----------------------------------------------------------------------
01170 !
01171           ELSE
01172             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01173             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01174             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01175             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01176             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01177             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01178             CALL PLANTE(1)
01179             STOP
01180           ENDIF
01181 !
01182 !-----------------------------------------------------------------------
01183 !       TETRAHEDRON ROW ELEMENT
01184         ELSEIF(IELM1.EQ.31.OR.IELM1.EQ.51) THEN
01185 !
01186 !.......................................................................
01187 !         P1 PRISM COLUMN ELEMENT
01188           IF(IELM2.EQ.31.OR.IELM2.EQ.51) THEN
01189             CALL MT04TT(T,XM,XMUL,SU,SV,SW,U,V,W,
01190      &                  XPT,YPT,ZPT,IKLE,NELEM,NELMAX,FORMUL)
01191 !
01192             TYPDIA='Q'
01193             IF(FORMUL(7:7).EQ.'2') THEN
01194               TYPEXT='S'
01195             ELSE
01196               TYPEXT='Q'
01197             ENDIF
01198 !
01199 !.......................................................................
01200 !         OTHER
01201 !.......................................................................
01202 !
01203 !         ELSEIF
01204 !
01205 !-----------------------------------------------------------------------
01206 !         ERROR ON THE COLUMN ELEMENT
01207 !-----------------------------------------------------------------------
01208 !
01209           ELSE
01210             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01211             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01212             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01213             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01214             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01215             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01216             CALL PLANTE(1)
01217             STOP
01218           ENDIF
01219 !
01220 !-----------------------------------------------------------------------
01221 !       OTHER ROW ELEMENT
01222 !-----------------------------------------------------------------------
01223 !
01224 !       ELSEIF
01225 !
01226 !-----------------------------------------------------------------------
01227 !       ERROR ON THE ROW ELEMENT
01228 !-----------------------------------------------------------------------
01229 !
01230         ELSE
01231           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01232           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01233           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01234           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01235           CALL PLANTE(1)
01236           STOP
01237         ENDIF
01238 !
01239 !=======================================================================
01240 !     U.GRAD MATRIX
01241 !=======================================================================
01242 !
01243       ELSEIF(FORMUL(1:6).EQ.'MATVGR') THEN
01244 !
01245       SIGMAG = .FALSE.
01246       IF(FORMUL(7:7).EQ.'2') SIGMAG = .TRUE.
01247       SPECAD = .FALSE.
01248       IF(FORMUL(8:8).EQ.'2') SPECAD = .TRUE.
01249 !
01250 !-----------------------------------------------------------------------
01251 !       P1 TRIANGLE ROW ELEMENT
01252         IF(IELM1.EQ.11) THEN
01253 !
01254 !.......................................................................
01255 !         P1 TRIANGLE COLUMN ELEMENT
01256           IF(IELM2.EQ.11) THEN
01257              CALL MT05AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
01258      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
01259      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
01260      &                   XMUL,SU,SV,U,V,XEL,YEL,IKLE,
01261      &                   NELEM,NELMAX,FORMUL)
01262 !
01263              TYPDIA='Q'
01264              TYPEXT='Q'
01265 !
01266 !.......................................................................
01267 !         OTHER
01268 !.......................................................................
01269 !
01270 !         ELSEIF
01271 !
01272 !-----------------------------------------------------------------------
01273 !         ERROR ON THE COLUMN ELEMENT
01274 !-----------------------------------------------------------------------
01275 !
01276           ELSE
01277             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01278             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01279             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01280             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01281             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01282             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01283             CALL PLANTE(1)
01284             STOP
01285           ENDIF
01286 !
01287 !-----------------------------------------------------------------------
01288 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
01289         ELSEIF(IELM1.EQ.12) THEN
01290 !
01291 !.......................................................................
01292 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
01293           IF(IELM2.EQ.12) THEN
01294              CALL MT05BB
01295      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
01296      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
01297      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
01298      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
01299      &          XMUL,SU,SV,U,V,XEL,YEL,
01300      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
01301      &          NELEM,NELMAX,FORMUL)
01302 !
01303              TYPDIA='Q'
01304              TYPEXT='Q'
01305 !
01306 !.......................................................................
01307 !         OTHER
01308 !.......................................................................
01309 !
01310 !         ELSEIF
01311 !
01312 !-----------------------------------------------------------------------
01313 !         ERROR ON THE COLUMN ELEMENT
01314 !-----------------------------------------------------------------------
01315 !
01316           ELSE
01317             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01318             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01319             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01320             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01321             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01322             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01323             CALL PLANTE(1)
01324             STOP
01325           ENDIF
01326 !
01327 !-----------------------------------------------------------------------
01328 !       P2 TRIANGLE ROW ELEMENT
01329         ELSEIF(IELM1.EQ.13) THEN
01330 !
01331 !.......................................................................
01332 !         P2 TRIANGLE COLUMN ELEMENT
01333           IF(IELM2.EQ.13) THEN
01334              CALL MT05CC
01335      & (   T(1,1)   ,XM(1,PPQ(1,2,S)),XM(1,PPQ(1,3,S)),
01336      &   XM(1,PPQ(1,4,S)),XM(1,PPQ(1,5,S)),XM(1,PPQ(1,6,S)),
01337      &   XM(1,PPQ(2,1,S)),T(1,2),XM(1,PPQ(2,3,S)),XM(1,PPQ(2,4,S)),
01338      &   XM(1,PPQ(2,5,S)),XM(1,PPQ(2,6,S)),XM(1,PPQ(3,1,S)),
01339      &   XM(1,PPQ(3,2,S)),T(1,3),XM(1,PPQ(3,4,S)),XM(1,PPQ(3,5,S)),
01340      &   XM(1,PPQ(3,6,S)),XM(1,PPQ(4,1,S)),XM(1,PPQ(4,2,S)),
01341      &   XM(1,PPQ(4,3,S)),T(1,4),XM(1,PPQ(4,5,S)),XM(1,PPQ(4,6,S)),
01342      &   XM(1,PPQ(5,1,S)),XM(1,PPQ(5,2,S)),XM(1,PPQ(5,3,S)),
01343      &   XM(1,PPQ(5,4,S)),  T(1,5)   ,XM(1,PPQ(5,6,S)),
01344      &   XM(1,PPQ(6,1,S)),XM(1,PPQ(6,2,S)) ,XM(1,PPQ(6,3,S)),
01345      &   XM(1,PPQ(6,4,S)),XM(1,PPQ(6,5,S)),T(1,6),
01346      &          XMUL,SU,SV,U,V,XEL,YEL,
01347      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
01348      &          IKLE(1,4),IKLE(1,5),IKLE(1,6),
01349      &          NELEM,NELMAX,FORMUL)
01350 !
01351              TYPDIA='Q'
01352              TYPEXT='Q'
01353 !
01354 !.......................................................................
01355 !         OTHER
01356 !.......................................................................
01357 !
01358 !         ELSEIF
01359 !
01360 !-----------------------------------------------------------------------
01361 !         ERROR ON THE COLUMN ELEMENT
01362 !-----------------------------------------------------------------------
01363 !
01364           ELSE
01365             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01366             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01367             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01368             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01369             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01370             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01371             CALL PLANTE(1)
01372             STOP
01373           ENDIF
01374 !
01375 !-----------------------------------------------------------------------
01376 !       P1 PRISM ROW ELEMENT
01377         ELSEIF(IELM1.EQ.41) THEN
01378 !
01379 !.......................................................................
01380 !         P1 PRISM COLUMN ELEMENT
01381           IF(IELM2.EQ.41) THEN
01382              CALL MT05PP(T,XM,XMUL,SU,SV,SW,U,V,W,SF,SG,SH,F,G,H,
01383      &                   XEL,YEL,ZPT,IKLE,NELEM,NELMAX,SURFAC,SIGMAG,
01384      &                   SPECAD,NPLAN)
01385 !
01386              TYPDIA='Q'
01387              TYPEXT='Q'
01388 !
01389 !.......................................................................
01390 !         OTHER
01391 !.......................................................................
01392 !
01393 !         ELSEIF
01394 !
01395 !-----------------------------------------------------------------------
01396 !         ERROR ON THE COLUMN ELEMENT
01397 !-----------------------------------------------------------------------
01398 !
01399           ELSE
01400             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01401             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01402             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01403             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01404             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01405             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01406             CALL PLANTE(1)
01407             STOP
01408           ENDIF
01409 !
01410 !-----------------------------------------------------------------------
01411 !       TETRAHEDRON ROW ELEMENT
01412         ELSEIF(IELM1.EQ.31.OR.IELM1.EQ.51) THEN
01413 !
01414 !.......................................................................
01415 !         P1 PRISM COLUMN ELEMENT
01416           IF(IELM2.EQ.31.OR.IELM2.EQ.51) THEN
01417              CALL MT05TT(T,XM,XMUL,SU,SV,SW,U,V,W,
01418      &                   XPT,YPT,ZPT,IKLE,NELEM,NELMAX)
01419 !
01420              TYPDIA='Q'
01421              TYPEXT='Q'
01422 !
01423 !.......................................................................
01424 !         OTHER
01425 !.......................................................................
01426 !
01427 !         ELSEIF
01428 !
01429 !-----------------------------------------------------------------------
01430 !         ERROR ON THE COLUMN ELEMENT
01431 !-----------------------------------------------------------------------
01432 !
01433           ELSE
01434             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01435             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01436             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01437             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01438             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01439             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01440             CALL PLANTE(1)
01441             STOP
01442           ENDIF
01443 !
01444 !-----------------------------------------------------------------------
01445 !       ERROR ON THE ROW ELEMENT
01446 !-----------------------------------------------------------------------
01447 !
01448         ELSE
01449           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01450           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01451           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01452           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01453           CALL PLANTE(1)
01454           STOP
01455         ENDIF
01456 !
01457 !=======================================================================
01458 !     F PSI PSJ MATRIX
01459 !=======================================================================
01460 !
01461       ELSEIF(FORMUL(1:6).EQ.'FMATMA') THEN
01462 !
01463 !-----------------------------------------------------------------------
01464 !       P1 TRIANGLE ROW ELEMENT
01465         IF(IELM1.EQ.11) THEN
01466 !
01467 !.......................................................................
01468 !         P1 TRIANGLE COLUMN ELEMENT
01469           IF(IELM2.EQ.11) THEN
01470 !
01471              CALL MT06AA(   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01472      &                                       T(1,2)   ,XM(1,AAS(2,3,S)),
01473      &                                                        T(1,3)   ,
01474      &                   XMUL,SF,F,SURFAC,
01475      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),NELEM,NELMAX)
01476 !
01477             TYPDIA='Q'
01478             TYPEXT='S'
01479 !
01480 !.......................................................................
01481 !         OTHER
01482 !.......................................................................
01483 !
01484 !         ELSEIF
01485 !
01486 !-----------------------------------------------------------------------
01487 !         ERROR ON THE COLUMN ELEMENT
01488 !-----------------------------------------------------------------------
01489 !
01490           ELSE
01491             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01492             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01493             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01494             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01495             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01496             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01497             CALL PLANTE(1)
01498             STOP
01499           ENDIF
01500 !
01501 !-----------------------------------------------------------------------
01502 !       P1 TRIANGLE ROW ELEMENT
01503 !       (LATERAL SIDE OF PRISM SPLIT IN TETRAHEDRONS)
01504 !
01505         ELSEIF(IELM1.EQ.61.OR.IELM1.EQ.81) THEN
01506 !
01507 !.......................................................................
01508 !         P1 TRIANGLE COLUMN ELEMENT
01509           IF(IELM2.EQ.61.OR.IELM1.EQ.81) THEN
01510 !
01511 !     CHARACTER 7 ALSO INFORMS WHETHER THE ADDITIONAL TERM IS REQUIRED
01512 !     FOR ESTEL-3D
01513 !
01514       IF(FORMUL(7:7).NE.'2') THEN
01515 !
01516                 CALL MT06FT
01517      & (   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01518      &                      T(1,2)   ,XM(1,AAS(2,3,S)),
01519      &                                       T(1,3)   ,
01520      &          XMUL,SF,F,XPT,YPT,ZPT,
01521      &          IKLBOR(1,1),IKLBOR(1,2),IKLBOR(1,3),
01522      &          NBOR,NELEB,NELEBX)
01523 !
01524       ELSE
01525                 CALL MT06FT2
01526      & (   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01527      &                      T(1,2)   ,XM(1,AAS(2,3,S)),
01528      &                                       T(1,3)   ,
01529      &          XMUL,SF,F,SU,U,XPT,YPT,ZPT,
01530      &          IKLBOR(1,1),IKLBOR(1,2),IKLBOR(1,3),
01531      &          NBOR,NELEB,NELEBX)
01532       ENDIF
01533             TYPDIA='Q'
01534             TYPEXT='S'
01535 !
01536 !.......................................................................
01537 !         OTHER
01538 !.......................................................................
01539 !
01540 !         ELSEIF
01541 !
01542 !-----------------------------------------------------------------------
01543 !         ERROR ON THE COLUMN ELEMENT
01544 !-----------------------------------------------------------------------
01545 !
01546           ELSE
01547             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01548             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01549             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01550             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01551             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01552             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01553             CALL PLANTE(1)
01554             STOP
01555           ENDIF
01556 !
01557 !-----------------------------------------------------------------------
01558 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
01559 !
01560         ELSEIF(IELM1.EQ.12) THEN
01561 !
01562 !.......................................................................
01563 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
01564           IF(IELM2.EQ.12) THEN
01565              CALL MT06BB
01566      & (   T(1,1)   ,XM(1,BBS(1,2,S)),XM(1,BBS(1,3,S)),XM(1,BBS(1,4,S)),
01567      &                      T(1,2)   ,XM(1,BBS(2,3,S)),XM(1,BBS(2,4,S)),
01568      &                                       T(1,3)   ,XM(1,BBS(3,4,S)),
01569      &                                                        T(1,4)   ,
01570      &          XMUL,SF,F,SURFAC,
01571      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),NELEM,NELMAX)
01572 !
01573              TYPDIA='Q'
01574              TYPEXT='S'
01575 !
01576 !.......................................................................
01577 !         OTHER
01578 !.......................................................................
01579 !
01580 !         ELSEIF
01581 !
01582 !-----------------------------------------------------------------------
01583 !         ERROR ON THE COLUMN ELEMENT
01584 !-----------------------------------------------------------------------
01585 !
01586           ELSE
01587             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01588             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01589             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01590             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01591             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01592             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01593             CALL PLANTE(1)
01594             STOP
01595           ENDIF
01596 !
01597 !-----------------------------------------------------------------------
01598 !       QUADRATIC TRIANGLE ROW ELEMENT
01599 !
01600         ELSEIF(IELM1.EQ.13) THEN
01601 !
01602 !.......................................................................
01603 !         QUADRATIC TRIANGLE COLUMN ELEMENT
01604           IF(IELM2.EQ.13) THEN
01605              CALL MT06CC
01606      & ( T(1,1)   ,XM(1,PPS(1,2,S)),XM(1,PPS(1,3,S)),
01607      &   XM(1,PPS(1,4,S)),XM(1,PPS(1,5,S)),XM(1,PPS(1,6,S)),
01608      &   T(1,2)   ,XM(1,PPS(2,3,S)),XM(1,PPS(2,4,S)),
01609      &   XM(1,PPS(2,5,S)),XM(1,PPS(2,6,S)),
01610      &   T(1,3)   ,XM(1,PPS(3,4,S)),XM(1,PPS(3,5,S)),XM(1,PPS(3,6,S)),
01611      &   T(1,4)   ,XM(1,PPS(4,5,S)),XM(1,PPS(4,6,S)),
01612      &   T(1,5)   ,XM(1,PPS(5,6,S)),T(1,6)          ,
01613      &          XMUL,SF,F,SURFAC,
01614      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
01615      &          IKLE(1,4),IKLE(1,5),IKLE(1,6),NELEM,NELMAX)
01616 !
01617              TYPDIA='Q'
01618              TYPEXT='S'
01619 !
01620 !.......................................................................
01621 !         OTHER
01622 !.......................................................................
01623 !
01624 !         ELSEIF
01625 !
01626 !-----------------------------------------------------------------------
01627 !         ERROR ON THE COLUMN ELEMENT
01628 !-----------------------------------------------------------------------
01629 !
01630           ELSE
01631             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01632             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01633             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01634             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01635             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01636             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01637             CALL PLANTE(1)
01638             STOP
01639           ENDIF
01640 !
01641 !-----------------------------------------------------------------------
01642 !       QUADRILATERAL ROW ELEMENT (LATERAL SIDE OF PRISM)
01643         ELSEIF(IELM1.EQ.71) THEN
01644 !
01645 !.......................................................................
01646 !
01647 !         BEWARE !!!!!!!!!!
01648 !         QUADRANGLE COLUMN ELEMENT FOR TELEMAC-3D PRISMS
01649           IF(IELM2.EQ.71) THEN
01650 !
01651             CALL MT06FF
01652      & (   T(1,1)   ,XM(1,FFS(1,2,S)),XM(1,FFS(1,3,S)),XM(1,FFS(1,4,S)),
01653      &                      T(1,2)   ,XM(1,FFS(2,3,S)),XM(1,FFS(2,4,S)),
01654      &                                       T(1,3)   ,XM(1,FFS(3,4,S)),
01655      &                                                        T(1,4)   ,
01656      &      XMUL,SF,F,XEL,YEL,ZPT,
01657      &      IKLBOR(1,1),IKLBOR(1,2),IKLBOR(1,3),IKLBOR(1,4),
01658      &      NBOR,NELBOR,NULONE,NELEB,NELEBX,NELMAX)
01659 !
01660             TYPDIA='Q'
01661             TYPEXT='S'
01662 !
01663 !.......................................................................
01664 !         OTHER
01665 !.......................................................................
01666 !
01667 !         ELSEIF
01668 !
01669 !-----------------------------------------------------------------------
01670 !         ERROR ON THE COLUMN ELEMENT
01671 !-----------------------------------------------------------------------
01672 !
01673           ELSE
01674             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01675             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01676             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01677             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01678             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01679             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01680             CALL PLANTE(1)
01681             STOP
01682           ENDIF
01683 !<<<<
01684 !-----------------------------------------------------------------------
01685 !       P1 SEGMENT ROW ELEMENT
01686         ELSEIF(IELM1.EQ.1) THEN
01687 !.......................................................................
01688 !         P1 SEGMENT COLUMN ELEMENT
01689           IF(IELM2.EQ.1.AND.S.EQ.1) THEN
01690              CALL MT06OO(   T(1,1)   ,XM(1,OOS(1,2,S)),
01691      &                                       T(1,2)   ,
01692      &                   XMUL,SF,F,LGSEG,IKLBOR(1,1),IKLBOR(1,2),
01693      &                   NBOR,NELEB,NELEBX)
01694 !
01695              TYPDIA='Q'
01696              TYPEXT='S'
01697 !.......................................................................
01698 !         OTHER
01699 !.......................................................................
01700 !
01701 !         ELSEIF
01702 !
01703 !-----------------------------------------------------------------------
01704 !         ERROR ON THE COLUMN ELEMENT
01705 !-----------------------------------------------------------------------
01706 !
01707           ELSE
01708             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01709             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01710             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01711             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01712             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01713             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01714             CALL PLANTE(1)
01715             STOP
01716           ENDIF
01717 !
01718 !-----------------------------------------------------------------------
01719 !<<<<
01720 !-----------------------------------------------------------------------
01721 !       P2 SEGMENT ROW ELEMENT
01722         ELSEIF(IELM1.EQ.2) THEN
01723 !.......................................................................
01724 !         P2 SEGMENT COLUMN ELEMENT
01725           IF(IELM2.EQ.2.AND.S.EQ.1) THEN
01726             CALL MT06OC
01727      & (   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01728      &                      T(1,2)   ,XM(1,AAS(2,3,S)),
01729      &                                       T(1,3)   ,
01730      &        XMUL,SF,F,LGSEG,IKLBOR(1,1),IKLBOR(1,2),IKLBOR(1,3),
01731      &                   NBOR,NELEB,NELEBX)
01732 !
01733             TYPDIA='Q'
01734             TYPEXT='S'
01735 !.......................................................................
01736 !         OTHER
01737 !.......................................................................
01738 !
01739 !         ELSEIF
01740 !
01741 !-----------------------------------------------------------------------
01742 !         ERROR ON THE COLUMN ELEMENT
01743 !-----------------------------------------------------------------------
01744 !
01745           ELSE
01746             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01747             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01748             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01749             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01750             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01751             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01752             CALL PLANTE(1)
01753             STOP
01754           ENDIF
01755 !
01756 !-----------------------------------------------------------------------
01757 !       P1 PRISM ROW ELEMENT
01758 !
01759         ELSE IF (IELM1.EQ.41) THEN
01760 !.......................................................................
01761 !         P1 PRISM COLUMN ELEMENT
01762           IF (IELM2.EQ.41) THEN
01763              CALL MT06PP(T,XM,XMUL,SF,F,ZPT,SURFAC,IKLE,NELEM,NELMAX)
01764 !
01765              TYPDIA='Q'
01766              TYPEXT='S'
01767 !
01768 !.......................................................................
01769 !         OTHER
01770 !.......................................................................
01771 !
01772 !         ELSEIF
01773 !
01774 !-----------------------------------------------------------------------
01775 !         ERROR ON THE COLUMN ELEMENT
01776 !-----------------------------------------------------------------------
01777 !
01778           ELSE
01779             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01780             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01781             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01782             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01783             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01784             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01785             CALL PLANTE(1)
01786             STOP
01787           ENDIF
01788 !
01789 !-----------------------------------------------------------------------
01790 !       OTHER
01791 !-----------------------------------------------------------------------
01792 !
01793 !       ELSEIF
01794 !
01795 !
01796 !-----------------------------------------------------------------------
01797 !       TETRAHEDRON ROW ELEMENT
01798 !
01799         ELSE IF (IELM1.EQ.31.OR.IELM1.EQ.51) THEN
01800 !.......................................................................
01801 !         P1 PRISM COLUMN ELEMENT
01802           IF (IELM2.EQ.31.OR.IELM2.EQ.51) THEN
01803              CALL MT06TT(T,XM,
01804      &                   XMUL,SF,F,
01805      &                   XPT,YPT,ZPT,IKLE,NELEM,NELMAX)
01806 !
01807              TYPDIA='Q'
01808              TYPEXT='S'
01809 !
01810 !.......................................................................
01811 !         OTHER
01812 !.......................................................................
01813 !
01814 !         ELSEIF
01815 !
01816 !-----------------------------------------------------------------------
01817 !         ERROR ON THE COLUMN ELEMENT
01818 !-----------------------------------------------------------------------
01819 !
01820           ELSE
01821             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01822             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01823             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01824             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01825             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01826             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01827             CALL PLANTE(1)
01828             STOP
01829           ENDIF
01830 !
01831 !-----------------------------------------------------------------------
01832 !       OTHER
01833 !-----------------------------------------------------------------------
01834 !
01835 !       ELSEIF
01836 !-----------------------------------------------------------------------
01837 !       ERROR ON THE ROW ELEMENT
01838 !-----------------------------------------------------------------------
01839 !
01840         ELSE
01841           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01842           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01843           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01844           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01845           CALL PLANTE(1)
01846           STOP
01847         ENDIF
01848 !
01849 !=======================================================================
01850 !     MASS-LUMPED MASS MATRIX
01851 !=======================================================================
01852 !
01853       ELSEIF(FORMUL(1:16).EQ.'MSLUMP          ') THEN
01854 !
01855 !     TESTS THE ROW ELEMENT
01856 !
01857 !-----------------------------------------------------------------------
01858 !       P1 TRIANGLE
01859 !-----------------------------------------------------------------------
01860 !
01861         IF(IELM1.EQ.11) THEN
01862 !
01863 !       TESTS THE COLUMN ELEMENT
01864 !
01865 !.......................................................................
01866 !         P1 TRIANGLE
01867 !.......................................................................
01868 !
01869           IF(IELM2.EQ.11) THEN
01870              CALL MT07AA(   T(1,1)   ,XM(1,AAS(1,2,S)),XM(1,AAS(1,3,S)),
01871      &                                       T(1,2)   ,XM(1,AAS(2,3,S)),
01872      &                                                        T(1,3)   ,
01873      &                   XMUL,SF,F,SURFAC,NELEM,NELMAX)
01874 !
01875              TYPDIA='Q'
01876              TYPEXT='S'
01877 !
01878 !.......................................................................
01879 !         OTHER
01880 !.......................................................................
01881 !
01882 !         ELSEIF
01883 !
01884 !-----------------------------------------------------------------------
01885 !         ERROR ON THE COLUMN ELEMENT
01886 !-----------------------------------------------------------------------
01887 !
01888           ELSE
01889             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01890             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01891             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01892             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01893             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01894             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01895             CALL PLANTE(1)
01896             STOP
01897           ENDIF
01898 !
01899 !-----------------------------------------------------------------------
01900 !       QUASI-BUBBLE TRIANGLE
01901 !-----------------------------------------------------------------------
01902 !
01903         ELSEIF(IELM1.EQ.12) THEN
01904 !
01905 !       TESTS THE COLUMN ELEMENT
01906 !
01907 !.......................................................................
01908 !         QUASI-BUBBLE TRIANGLE
01909 !.......................................................................
01910 !
01911           IF(IELM2.EQ.12) THEN
01912              CALL MT07BB
01913      & (   T(1,1)   ,XM(1,BBS(1,2,S)),XM(1,BBS(1,3,S)),XM(1,BBS(1,4,S)),
01914      &                      T(1,2)   ,XM(1,BBS(2,3,S)),XM(1,BBS(2,4,S)),
01915      &                                       T(1,3)   ,XM(1,BBS(3,4,S)),
01916      &                                                        T(1,4)   ,
01917      &          XMUL,SF,F,SURFAC,NELEM,NELMAX)
01918 !
01919              TYPDIA='Q'
01920              TYPEXT='S'
01921 !
01922 !.......................................................................
01923 !         OTHER
01924 !.......................................................................
01925 !
01926 !         ELSEIF
01927 !
01928 !-----------------------------------------------------------------------
01929 !         ERROR ON THE COLUMN ELEMENT
01930 !-----------------------------------------------------------------------
01931 !
01932           ELSE
01933             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01934             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01935             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01936             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01937             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01938             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01939             CALL PLANTE(1)
01940             STOP
01941           ENDIF
01942 !
01943 !-----------------------------------------------------------------------
01944 !       P2 TRIANGLE
01945 !-----------------------------------------------------------------------
01946 !
01947         ELSEIF(IELM1.EQ.13) THEN
01948 !
01949 !       TESTS THE COLUMN ELEMENT
01950 !
01951 !.......................................................................
01952 !         P2 TRIANGLE
01953 !.......................................................................
01954 !
01955           IF(IELM2.EQ.13) THEN
01956              CALL MT07CC
01957      & (   T(1,1)   ,XM(1,PPS(1,2,S)),XM(1,PPS(1,3,S)),
01958      &   XM(1,PPS(1,4,S)),XM(1,PPS(1,5,S)),XM(1,PPS(1,6,S)),
01959      &     T(1,2)   ,XM(1,PPS(2,3,S)),XM(1,PPS(2,4,S)),
01960      &   XM(1,PPS(2,5,S)),XM(1,PPS(2,6,S)),
01961      &     T(1,3)   ,XM(1,PPS(3,4,S)),XM(1,PPS(3,5,S)),
01962      &   XM(1,PPS(3,6,S)),
01963      &     T(1,4)   ,XM(1,PPS(4,5,S)),XM(1,PPS(4,6,S)),
01964      &     T(1,5)   ,XM(1,PPS(5,6,S)),T(1,6),
01965      &          XMUL,SF,F,SURFAC,NELEM,NELMAX)
01966 !
01967              TYPDIA='Q'
01968              TYPEXT='S'
01969 !
01970 !.......................................................................
01971 !         OTHER
01972 !.......................................................................
01973 !
01974 !         ELSEIF
01975 !
01976 !-----------------------------------------------------------------------
01977 !         ERROR ON THE COLUMN ELEMENT
01978 !-----------------------------------------------------------------------
01979 !
01980           ELSE
01981             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
01982             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
01983             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
01984             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
01985             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
01986             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
01987             CALL PLANTE(1)
01988             STOP
01989           ENDIF
01990 !
01991 !-----------------------------------------------------------------------
01992 !       OTHER
01993 !-----------------------------------------------------------------------
01994 !
01995 !       ELSEIF
01996 !
01997 !-----------------------------------------------------------------------
01998 !       ERROR ON THE ROW ELEMENT
01999 !-----------------------------------------------------------------------
02000 !
02001         ELSE
02002           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02003           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02004           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02005           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02006           CALL PLANTE(1)
02007           STOP
02008         ENDIF
02009 !
02010 !=======================================================================
02011 !     U GRADIENT MATRIX
02012 !=======================================================================
02013 !
02014       ELSEIF(FORMUL(1:15).EQ.'MATFGR         ') THEN
02015 !
02016 !     CHARACTER 16 IS THE SELECTED COORDINATE
02017 !
02018       IF(FORMUL(16:16).EQ.'X') THEN
02019         ICOORD=1
02020       ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02021         ICOORD=2
02022       ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02023         ICOORD=3
02024       ENDIF
02025 !
02026 !-----------------------------------------------------------------------
02027 !       P1 TRIANGLE ROW ELEMENT
02028 !-----------------------------------------------------------------------
02029 !
02030         IF(IELM1.EQ.11) THEN
02031 !
02032 !.......................................................................
02033 !         P1 TRIANGLE COLUMN ELEMENT
02034 !.......................................................................
02035 !
02036           IF(IELM2.EQ.11) THEN
02037              CALL MT08AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02038      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02039      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02040      &                   XMUL,SF,F,XEL,YEL,
02041      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02042      &                   NELEM,NELMAX,ICOORD)
02043 !
02044              TYPDIA='Q'
02045              TYPEXT='Q'
02046 !
02047 !.......................................................................
02048 !
02049           ELSEIF(IELM2.EQ.12) THEN
02050              CALL MT08AB
02051      & (   T(1,1)   ,XM(1,ABQ(1,2,S)),XM(1,ABQ(1,3,S)),XM(1,ABQ(1,4,S)),
02052      &  XM(1,ABQ(2,1,S)),   T(1,2)   ,XM(1,ABQ(2,3,S)),XM(1,ABQ(2,4,S)),
02053      &  XM(1,ABQ(3,1,S)),XM(1,ABQ(3,2,S)),   T(1,3)   ,XM(1,ABQ(3,4,S)),
02054      &          XMUL,SF,F,XEL,YEL,
02055      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02056      &          NELEM,NELMAX,ICOORD)
02057 !
02058              TYPDIA='Q'
02059              TYPEXT='Q'
02060 !
02061            ELSEIF(IELM2.EQ.13) THEN
02062              CALL MT08AC(   T(1,1)   ,XM(1,ACQ(1,2,S)),XM(1,ACQ(1,3,S)),
02063      &                   XM(1,ACQ(1,4,S)),XM(1,ACQ(1,5,S)),
02064      &                   XM(1,ACQ(1,6,S)),XM(1,ACQ(2,1,S)),
02065      &                   T(1,2)  ,XM(1,ACQ(2,3,S)),
02066      &                   XM(1,ACQ(2,4,S)),XM(1,ACQ(2,5,S)),
02067      &                   XM(1,ACQ(2,6,S)),XM(1,ACQ(3,1,S)),
02068      &                   XM(1,ACQ(3,2,S)),T(1,3)  ,XM(1,ACQ(3,4,S)),
02069      &                   XM(1,ACQ(3,5,S)),XM(1,ACQ(3,6,S)),
02070      &                   XMUL,SF,F,XEL,YEL,
02071      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02072      &                   IKLE(1,4),IKLE(1,5),IKLE(1,6),
02073      &                   NELEM,NELMAX,ICOORD)
02074 !
02075              TYPDIA='Q'
02076              TYPEXT='Q'
02077 !
02078 !.......................................................................
02079 !         OTHER
02080 !.......................................................................
02081 !
02082 !         ELSEIF
02083 !
02084 !-----------------------------------------------------------------------
02085 !         ERROR ON THE COLUMN ELEMENT
02086 !-----------------------------------------------------------------------
02087 !
02088           ELSE
02089             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02090             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02091             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02092             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02093             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02094             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02095             CALL PLANTE(1)
02096             STOP
02097           ENDIF
02098 !
02099 !-----------------------------------------------------------------------
02100 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
02101         ELSEIF(IELM1.EQ.12) THEN
02102 !
02103 !.......................................................................
02104 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
02105           IF(IELM2.EQ.12) THEN
02106              CALL MT08BB
02107      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
02108      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
02109      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
02110      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
02111      &          XMUL,SF,F,XEL,YEL,
02112      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02113      &          NELEM,NELMAX,ICOORD)
02114 !
02115              TYPDIA='Q'
02116              TYPEXT='Q'
02117 !
02118 !         LINEAR TRIANGLE COLUMN ELEMENT
02119           ELSEIF(IELM2.EQ.11) THEN
02120              CALL MT08BA
02121      &         (     T(1,1)     ,XM(1,BAQ(1,2,S)),XM(1,BAQ(1,3,S)),
02122      &          XM(1,BAQ(2,1,S)),     T(1,2)     ,XM(1,BAQ(2,3,S)),
02123      &          XM(1,BAQ(3,1,S)),XM(1,BAQ(3,2,S)),     T(1,3)     ,
02124      &          XM(1,BAQ(4,1,S)),XM(1,BAQ(4,2,S)),XM(1,BAQ(4,3,S)),
02125      &          XMUL,SF,F,XEL,YEL,
02126      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02127      &          NELEM,NELMAX,ICOORD)
02128 !
02129              TYPDIA='Q'
02130              TYPEXT='Q'
02131 !.......................................................................
02132 !         OTHER
02133 !.......................................................................
02134 !
02135 !         ELSEIF
02136 !
02137 !-----------------------------------------------------------------------
02138 !         ERROR ON THE COLUMN ELEMENT
02139 !-----------------------------------------------------------------------
02140 !
02141           ELSE
02142             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02143             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02144             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02145             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02146             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02147             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02148             CALL PLANTE(1)
02149             STOP
02150           ENDIF
02151 !
02152 !-----------------------------------------------------------------------
02153 !
02154 !       P1 PRISM ROW ELEMENT
02155         ELSEIF(IELM1.EQ.41) THEN
02156 !
02157 !.......................................................................
02158 !         P1 PRISM COLUMN ELEMENT
02159           IF(IELM2.EQ.41.AND.ICOORD.EQ.3) THEN
02160              CALL MT08PP(T,XM,XMUL,SF,F,SURFAC,IKLE,NELEM,NELMAX)
02161              TYPDIA='Q'
02162              TYPEXT='Q'
02163 !
02164 !.......................................................................
02165 !         OTHER
02166 !.......................................................................
02167 !
02168 !         ELSEIF
02169 !
02170 !-----------------------------------------------------------------------
02171 !         ERROR ON THE COLUMN ELEMENT
02172 !-----------------------------------------------------------------------
02173 !
02174           ELSE
02175             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02176             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02177             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02178             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02179             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02180             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02181             CALL PLANTE(1)
02182             STOP
02183           ENDIF
02184 !
02185 !-----------------------------------------------------------------------
02186 !       P1 PRISM ROW ELEMENT
02187         ELSEIF(IELM1.EQ.31.OR.IELM1.EQ.51) THEN
02188 !
02189 !.......................................................................
02190 !         P1 PRISM COLUMN ELEMENT
02191           IF(IELM2.EQ.31.OR.IELM2.EQ.51) THEN
02192              CALL MT08TT(T,XM,XMUL,XPT,YPT,ZPT,SF,F,IKLE,NELEM,NELMAX)
02193              TYPDIA='Q'
02194              TYPEXT='Q'
02195 !
02196 !.......................................................................
02197 !         OTHER
02198 !.......................................................................
02199 !
02200 !         ELSEIF
02201 !
02202 !-----------------------------------------------------------------------
02203 !         ERROR ON THE COLUMN ELEMENT
02204 !-----------------------------------------------------------------------
02205 !
02206           ELSE
02207             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02208             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02209             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02210             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02211             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02212             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02213             CALL PLANTE(1)
02214             STOP
02215           ENDIF
02216 !-----------------------------------------------------------------------
02217 !       OTHER
02218 !-----------------------------------------------------------------------
02219 !
02220 !       ELSEIF
02221 !-----------------------------------------------------------------------
02222 !       ERROR ON THE ROW ELEMENT
02223 !-----------------------------------------------------------------------
02224 !
02225         ELSE
02226           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02227           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02228           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02229           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02230           CALL PLANTE(1)
02231           STOP
02232         ENDIF
02233 !
02234 !=======================================================================
02235 !     F U GRADIENT MATRIX (NOT IMPLEMENTED)
02236 !=======================================================================
02237 !
02238 !     ELSEIF(FORMUL(1:15).EQ.'MATQGR         ') THEN
02239 !
02240 !     CHARACTER 16 IS THE SELECTED COORDINATE
02241 !
02242 !     IF(FORMUL(16:16).EQ.'X') THEN
02243 !       ICOORD=1
02244 !     ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02245 !       ICOORD=2
02246 !     ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02247 !       ICOORD=3
02248 !     ENDIF
02249 !
02250 !-----------------------------------------------------------------------
02251 !       P1 TRIANGLE ROW ELEMENT
02252 !-----------------------------------------------------------------------
02253 !
02254 !       IF(IELM1.EQ.11) THEN
02255 !
02256 !.......................................................................
02257 !         P1 TRIANGLE COLUMN ELEMENT
02258 !.......................................................................
02259 !
02260 !         IF(IELM1.EQ.11) THEN
02261 !            CALL MT09AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02262 !    *                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02263 !    *                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02264 !    *                   XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
02265 !    *                   XEL,YEL,ZEL,SURFAC,
02266 !    *                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02267 !    *                   NELEM,NELMAX,ICOORD)
02268 !
02269 !            TYPDIA='Q'
02270 !            TYPEXT='Q'
02271 !
02272 !.......................................................................
02273 !         OTHER
02274 !.......................................................................
02275 !
02276 !         ELSEIF
02277 !
02278 !-----------------------------------------------------------------------
02279 !         ERROR ON THE COLUMN ELEMENT
02280 !-----------------------------------------------------------------------
02281 !
02282 !         ELSE
02283 !           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02284 !           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02285 !           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02286 !           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02287 !           IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02288 !           IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02289 !           CALL PLANTE(1)
02290 !           STOP
02291 !         ENDIF
02292 !
02293 !-----------------------------------------------------------------------
02294 !       OTHER
02295 !-----------------------------------------------------------------------
02296 !
02297 !       ELSEIF
02298 !
02299 !-----------------------------------------------------------------------
02300 !       ERROR ON THE ROW ELEMENT
02301 !-----------------------------------------------------------------------
02302 !
02303 !       ELSE
02304 !         IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02305 !         IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02306 !         IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02307 !         IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02308 !         CALL PLANTE(1)
02309 !         STOP
02310 !       ENDIF
02311 !
02312 !=======================================================================
02313 !     U.N MATRIX  (NOT IMPLEMENTED)
02314 !=======================================================================
02315 !
02316 !     ELSEIF(FORMUL(1:15).EQ.'??????         ') THEN
02317 !
02318 !     CHARACTER 16 IS THE SELECTED COORDINATE
02319 !
02320 !     IF(FORMUL(16:16).EQ.'X') THEN
02321 !       ICOORD=1
02322 !     ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02323 !       ICOORD=2
02324 !     ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02325 !       ICOORD=3
02326 !     ENDIF
02327 !
02328 !-----------------------------------------------------------------------
02329 !       P1 TRIANGLE ROW ELEMENT
02330 !-----------------------------------------------------------------------
02331 !
02332 !       IF(IELM1.EQ.11) THEN
02333 !
02334 !.......................................................................
02335 !         P1 TRIANGLE COLUMN ELEMENT
02336 !.......................................................................
02337 !
02338 !         IF(IELM1.EQ.11) THEN
02339 !            CALL MT10AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02340 !    *                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02341 !    *                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02342 !    *                   XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
02343 !    *                   XEL,YEL,ZEL,SURFAC,
02344 !    *                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02345 !    *                   NELEM,NELMAX,ICOORD)
02346 !
02347 !            TYPDIA='Q'
02348 !            TYPEXT='Q'
02349 !
02350 !.......................................................................
02351 !         OTHER
02352 !.......................................................................
02353 !
02354 !         ELSEIF
02355 !
02356 !-----------------------------------------------------------------------
02357 !         ERROR ON THE COLUMN ELEMENT
02358 !-----------------------------------------------------------------------
02359 !
02360 !         ELSE
02361 !           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02362 !           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02363 !           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02364 !           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02365 !           IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02366 !           IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02367 !           CALL PLANTE(1)
02368 !           STOP
02369 !         ENDIF
02370 !
02371 !-----------------------------------------------------------------------
02372 !       OTHER
02373 !-----------------------------------------------------------------------
02374 !
02375 !       ELSEIF
02376 !
02377 !-----------------------------------------------------------------------
02378 !       ERROR ON THE ROW ELEMENT
02379 !-----------------------------------------------------------------------
02380 !
02381 !       ELSE
02382 !         IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02383 !         IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02384 !         IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02385 !         IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02386 !         CALL PLANTE(1)
02387 !         STOP
02388 !       ENDIF
02389 !
02390 !=======================================================================
02391 !     F GRAD (U.GRAD) MATRIX (NOT IMPLEMENTED)
02392 !=======================================================================
02393 !
02394       ELSEIF(FORMUL(1:15).EQ.'MATFGUG        ') THEN
02395 !
02396 !       P1 SEGMENT ROW ELEMENT
02397         IF(IELM1.EQ.1) THEN
02398 !.......................................................................
02399 !         P1 SEGMENT COLUMN ELEMENT
02400           IF(IELM2.EQ.1.AND.S.EQ.1) THEN
02401              CALL MT09OO(   T(1,1)   ,XM(1,OOQ(1,2,S)),
02402      &                      XM(1,OOQ(2,1,S)),   T(1,2),
02403      &                   XMUL,SF,F,SG,G,SU,SV,U,V,
02404      &                   IKLBOR(1,1),IKLBOR(1,2),
02405      &                   NBOR,NELEB,NELMAX)
02406 !
02407              TYPDIA='Q'
02408              TYPEXT='Q'
02409 !.......................................................................
02410 !         OTHER
02411 !.......................................................................
02412 !
02413 !         ELSEIF
02414 !
02415 !-----------------------------------------------------------------------
02416 !         ERROR ON THE COLUMN ELEMENT
02417 !-----------------------------------------------------------------------
02418 !
02419           ELSE
02420             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02421             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02422             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02423             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02424             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02425             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02426             CALL PLANTE(1)
02427             STOP
02428           ENDIF
02429 !
02430 !-----------------------------------------------------------------------
02431 !       OTHER
02432 !-----------------------------------------------------------------------
02433 !
02434 !       ELSEIF
02435 !-----------------------------------------------------------------------
02436 !       ERROR ON THE ROW ELEMENT
02437 !-----------------------------------------------------------------------
02438 !
02439         ELSE
02440           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02441           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02442           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02443           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02444           CALL PLANTE(1)
02445           STOP
02446         ENDIF
02447 !
02448 !=======================================================================
02449 !     - PSIJ GRAD(F PSII) MATRIX
02450 !=======================================================================
02451 !
02452       ELSEIF(FORMUL(1:15).EQ.'MATGRF         ') THEN
02453 !
02454 !     CHARACTER 16 IS THE SELECTED COORDINATE
02455 !
02456       IF(FORMUL(16:16).EQ.'X') THEN
02457         ICOORD=1
02458       ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02459         ICOORD=2
02460       ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02461         ICOORD=3
02462       ENDIF
02463 !
02464 !-----------------------------------------------------------------------
02465 !       P1 TRIANGLE ROW ELEMENT
02466 !-----------------------------------------------------------------------
02467 !
02468         IF(IELM1.EQ.11) THEN
02469 !
02470 !.......................................................................
02471 !         P1 TRIANGLE COLUMN ELEMENT
02472 !.......................................................................
02473 !
02474           IF(IELM2.EQ.11) THEN
02475              CALL MT11AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02476      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02477      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02478      &                   XMUL,SF,F,XEL,YEL,
02479      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02480      &                   NELEM,NELMAX,ICOORD)
02481 !
02482              TYPDIA='Q'
02483              TYPEXT='Q'
02484 !
02485 !.......................................................................
02486 !
02487           ELSEIF(IELM2.EQ.12) THEN
02488              CALL MT11AB
02489      & (   T(1,1)   ,XM(1,ABQ(1,2,S)),XM(1,ABQ(1,3,S)),XM(1,ABQ(1,4,S)),
02490      &  XM(1,ABQ(2,1,S)),   T(1,2)   ,XM(1,ABQ(2,3,S)),XM(1,ABQ(2,4,S)),
02491      &  XM(1,ABQ(3,1,S)),XM(1,ABQ(3,2,S)),   T(1,3)   ,XM(1,ABQ(3,4,S)),
02492      &          XMUL,SF,F,XEL,YEL,
02493      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02494      &          NELEM,NELMAX,ICOORD)
02495 !
02496              TYPDIA='Q'
02497              TYPEXT='Q'
02498 !
02499 !.......................................................................
02500 !
02501           ELSEIF(IELM2.EQ.13) THEN
02502              CALL MT11AC(
02503      &       T(1,1)   ,XM(1,ACQ(1,2,S)),XM(1,ACQ(1,3,S)),
02504      &       XM(1,ACQ(1,4,S)),XM(1,ACQ(1,5,S)),
02505      &       XM(1,ACQ(1,6,S)),XM(1,ACQ(2,1,S)),
02506      &       T(1,2)  ,XM(1,ACQ(2,3,S)),
02507      &       XM(1,ACQ(2,4,S)),XM(1,ACQ(2,5,S)),
02508      &       XM(1,ACQ(2,6,S)),XM(1,ACQ(3,1,S)),
02509      &       XM(1,ACQ(3,2,S)),T(1,3)  ,XM(1,ACQ(3,4,S)),
02510      &       XM(1,ACQ(3,5,S)),XM(1,ACQ(3,6,S)),
02511      &          XMUL,SF,F,XEL,YEL,
02512      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),
02513      &          IKLE(1,4),IKLE(1,5),IKLE(1,6),
02514      &          NELEM,NELMAX,ICOORD)
02515 !
02516              TYPDIA='Q'
02517              TYPEXT='Q'
02518 !
02519 !.......................................................................
02520 !         OTHER
02521 !.......................................................................
02522 !
02523 !         ELSEIF
02524 !
02525 !-----------------------------------------------------------------------
02526 !         ERROR ON THE COLUMN ELEMENT
02527 !-----------------------------------------------------------------------
02528 !
02529           ELSE
02530             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02531             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02532             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02533             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02534             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02535             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02536             CALL PLANTE(1)
02537             STOP
02538           ENDIF
02539 !
02540 !-----------------------------------------------------------------------
02541 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
02542         ELSEIF(IELM1.EQ.12) THEN
02543 !
02544 !.......................................................................
02545 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
02546           IF(IELM2.EQ.12) THEN
02547              CALL MT11BB
02548      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
02549      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
02550      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
02551      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
02552      &          XMUL,SF,F,XEL,YEL,
02553      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02554      &          NELEM,NELMAX,ICOORD)
02555 !
02556              TYPDIA='Q'
02557              TYPEXT='Q'
02558 !
02559 !         LINEAR TRIANGLE COLUMN ELEMENT
02560           ELSEIF(IELM2.EQ.11) THEN
02561              CALL MT11BA
02562      &         (     T(1,1)     ,XM(1,BAQ(1,2,S)),XM(1,BAQ(1,3,S)),
02563      &          XM(1,BAQ(2,1,S)),     T(1,2)     ,XM(1,BAQ(2,3,S)),
02564      &          XM(1,BAQ(3,1,S)),XM(1,BAQ(3,2,S)),     T(1,3)     ,
02565      &          XM(1,BAQ(4,1,S)),XM(1,BAQ(4,2,S)),XM(1,BAQ(4,3,S)),
02566      &          XMUL,SF,F,XEL,YEL,
02567      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02568      &          NELEM,NELMAX,ICOORD)
02569 !
02570              TYPDIA='Q'
02571              TYPEXT='Q'
02572 !.......................................................................
02573 !         OTHER
02574 !.......................................................................
02575 !
02576 !         ELSEIF
02577 !
02578 !-----------------------------------------------------------------------
02579 !         ERROR ON THE COLUMN ELEMENT
02580 !-----------------------------------------------------------------------
02581 !
02582           ELSE
02583             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02584             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02585             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02586             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02587             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02588             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02589             CALL PLANTE(1)
02590             STOP
02591           ENDIF
02592 !
02593 !-----------------------------------------------------------------------
02594 !       OTHER
02595 !-----------------------------------------------------------------------
02596 !
02597 !       ELSEIF
02598 !
02599 !-----------------------------------------------------------------------
02600 !       ERROR ON THE ROW ELEMENT
02601 !-----------------------------------------------------------------------
02602 !
02603         ELSE
02604           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02605           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02606           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02607           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02608           CALL PLANTE(1)
02609           STOP
02610         ENDIF
02611 !
02612 !=======================================================================
02613 !   PSIJ GRAD(F)   U .GRAD(PSII) MATRIX
02614 !=======================================================================
02615 !
02616       ELSEIF(FORMUL(1:15).EQ.'MATUGH         ') THEN
02617 !
02618 !     CHARACTER 16 IS THE SELECTED COORDINATE
02619 !
02620       IF(FORMUL(16:16).EQ.'X') THEN
02621         ICOORD=1
02622       ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02623         ICOORD=2
02624       ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02625         ICOORD=3
02626       ENDIF
02627 !
02628 !-----------------------------------------------------------------------
02629 !       P1 TRIANGLE ROW ELEMENT
02630 !-----------------------------------------------------------------------
02631 !
02632         IF(IELM1.EQ.11) THEN
02633 !
02634 !.......................................................................
02635 !         P1 TRIANGLE COLUMN ELEMENT
02636 !.......................................................................
02637 !
02638           IF(IELM2.EQ.11) THEN
02639              CALL MT12AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02640      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02641      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02642      &                   XMUL,SF,SU,SV,F,U,V,XEL,YEL,MESH%SURDET%R,
02643      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
02644      &                   NELEM,NELMAX,ICOORD)
02645 !
02646              TYPDIA='Q'
02647              TYPEXT='Q'
02648 !
02649 !.......................................................................
02650 !
02651           ELSEIF(IELM2.EQ.12) THEN
02652              CALL MT12AB
02653      & (   T(1,1)   ,XM(1,ABQ(1,2,S)),XM(1,ABQ(1,3,S)),XM(1,ABQ(1,4,S)),
02654      &  XM(1,ABQ(2,1,S)),   T(1,2)   ,XM(1,ABQ(2,3,S)),XM(1,ABQ(2,4,S)),
02655      &  XM(1,ABQ(3,1,S)),XM(1,ABQ(3,2,S)),   T(1,3)   ,XM(1,ABQ(3,4,S)),
02656      &          XMUL,SF,SU,SV,F,U,V,
02657      &          XEL,YEL,SURFAC,
02658      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02659      &          NELEM,NELMAX,ICOORD)
02660 !
02661              TYPDIA='Q'
02662              TYPEXT='Q'
02663 !
02664 !.......................................................................
02665 !         P2 TRIANGLE COLUMN ELEMENT
02666 !.......................................................................
02667 !
02668           ELSEIF(IELM2.EQ.13) THEN
02669              CALL MT12AC(
02670      &       T(1,1)   ,XM(1,ACQ(1,2,S)),XM(1,ACQ(1,3,S)),
02671      &       XM(1,ACQ(1,4,S)),XM(1,ACQ(1,5,S)),
02672      &       XM(1,ACQ(1,6,S)),XM(1,ACQ(2,1,S)),
02673      &       T(1,2)  ,XM(1,ACQ(2,3,S)),
02674      &       XM(1,ACQ(2,4,S)),XM(1,ACQ(2,5,S)),
02675      &       XM(1,ACQ(2,6,S)),XM(1,ACQ(3,1,S)),
02676      &       XM(1,ACQ(3,2,S)),T(1,3)  ,XM(1,ACQ(3,4,S)),
02677      &       XM(1,ACQ(3,5,S)),XM(1,ACQ(3,6,S)),
02678      &          XMUL,SF,SU,SV,F,U,V,
02679      &          XEL,YEL,SURFAC,
02680      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02681      &          IKLE(1,5),IKLE(1,6),
02682      &          NELEM,NELMAX,ICOORD)
02683 !
02684              TYPDIA='Q'
02685              TYPEXT='Q'
02686 !
02687 !.......................................................................
02688 !         OTHER
02689 !.......................................................................
02690 !
02691 !         ELSEIF
02692 !
02693 !-----------------------------------------------------------------------
02694 !         ERROR ON THE COLUMN ELEMENT
02695 !-----------------------------------------------------------------------
02696 !
02697           ELSE
02698             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02699             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02700             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02701             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02702             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02703             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02704             CALL PLANTE(1)
02705             STOP
02706           ENDIF
02707 !
02708 !-----------------------------------------------------------------------
02709 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
02710         ELSEIF(IELM1.EQ.12) THEN
02711 !
02712 !.......................................................................
02713 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
02714           IF(IELM2.EQ.12) THEN
02715              CALL MT12BB
02716      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
02717      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
02718      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
02719      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
02720      &          XMUL,SF,SU,SV,F,U,V,XEL,YEL,
02721      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02722      &          NELEM,NELMAX,ICOORD)
02723 !
02724              TYPDIA='Q'
02725              TYPEXT='Q'
02726 !
02727           ELSEIF(IELM2.EQ.11) THEN
02728              CALL MT12BA
02729      &         (     T(1,1)     ,XM(1,BAQ(1,2,S)),XM(1,BAQ(1,3,S)),
02730      &          XM(1,BAQ(2,1,S)),     T(1,2)     ,XM(1,BAQ(2,3,S)),
02731      &          XM(1,BAQ(3,1,S)),XM(1,BAQ(3,2,S)),     T(1,3)     ,
02732      &          XM(1,BAQ(4,1,S)),XM(1,BAQ(4,2,S)),XM(1,BAQ(4,3,S)),
02733      &          XMUL,SF,SU,SV,F,U,V,
02734      &          XEL,YEL,SURFAC,
02735      &          IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
02736      &          NELEM,NELMAX,ICOORD)
02737 !
02738              TYPDIA='Q'
02739              TYPEXT='Q'
02740 !
02741 !.......................................................................
02742 !         OTHER
02743 !.......................................................................
02744 !
02745 !         ELSEIF
02746 !
02747 !-----------------------------------------------------------------------
02748 !         ERROR ON THE COLUMN ELEMENT
02749 !-----------------------------------------------------------------------
02750 !
02751           ELSE
02752             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02753             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02754             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02755             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02756             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02757             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02758             CALL PLANTE(1)
02759             STOP
02760           ENDIF
02761 !
02762 !-----------------------------------------------------------------------
02763 !       OTHER
02764 !-----------------------------------------------------------------------
02765 !
02766 !       ELSEIF
02767 !
02768 !-----------------------------------------------------------------------
02769 !       ERROR ON THE ROW ELEMENT
02770 !-----------------------------------------------------------------------
02771 !
02772         ELSE
02773           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02774           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02775           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02776           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02777           CALL PLANTE(1)
02778           STOP
02779         ENDIF
02780 !
02781 !=======================================================================
02782 !   PSIJ GRAD(PSII) MATRIX  (SIGN HAS CHANGED COMPARED TO 3.0)
02783 !   (PSIJ GRAD(PSII) IN THE CASE OF B/A)
02784 !=======================================================================
02785 !
02786       ELSEIF(FORMUL(1:15).EQ.'MATGRA         ') THEN
02787 !
02788 !     CHARACTER 16 IS THE SELECTED COORDINATE
02789 !
02790       IF(FORMUL(16:16).EQ.'X') THEN
02791         ICOORD=1
02792       ELSEIF(FORMUL(16:16).EQ.'Y') THEN
02793         ICOORD=2
02794       ELSEIF(FORMUL(16:16).EQ.'Z') THEN
02795         ICOORD=3
02796       ENDIF
02797 !
02798 !-----------------------------------------------------------------------
02799 !       P1 TRIANGLE ROW ELEMENT
02800 !-----------------------------------------------------------------------
02801 !
02802         IF(IELM1.EQ.11) THEN
02803 !
02804 !.......................................................................
02805 !         P1 TRIANGLE COLUMN ELEMENT
02806 !.......................................................................
02807 !
02808           IF(IELM2.EQ.11) THEN
02809              CALL MT13AA(   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
02810      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
02811      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
02812      &                   XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02813 !
02814              TYPDIA='Q'
02815              TYPEXT='Q'
02816 !
02817           ELSEIF(IELM2.EQ.12) THEN
02818              CALL MT13AB(   T(1,1)   ,XM(1,ABQ(1,2,S)),XM(1,ABQ(1,3,S)),
02819      &                   XM(1,ABQ(1,4,S)),
02820      &                   XM(1,ABQ(2,1,S)),   T(1,2)   ,XM(1,ABQ(2,3,S)),
02821      &                   XM(1,ABQ(2,4,S)),
02822      &                   XM(1,ABQ(3,1,S)),XM(1,ABQ(3,2,S)),   T(1,3)   ,
02823      &                   XM(1,ABQ(3,4,S)),
02824      &                   XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02825 !
02826              TYPDIA='Q'
02827              TYPEXT='Q'
02828 !
02829 !.......................................................................
02830 !         OTHER
02831 !.......................................................................
02832 !
02833 !         ELSEIF
02834 !
02835 !-----------------------------------------------------------------------
02836 !         ERROR ON THE COLUMN ELEMENT
02837 !-----------------------------------------------------------------------
02838 !
02839           ELSE
02840             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02841             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02842             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02843             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02844             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02845             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02846             CALL PLANTE(1)
02847             STOP
02848           ENDIF
02849 !
02850 !-----------------------------------------------------------------------
02851 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
02852         ELSEIF(IELM1.EQ.12) THEN
02853 !
02854 !.......................................................................
02855 !         P1 TRIANGLE COLUMN ELEMENT
02856           IF(IELM2.EQ.11) THEN
02857              CALL MT13BA
02858      &         (     T(1,1)     ,XM(1,BAQ(1,2,S)),XM(1,BAQ(1,3,S)),
02859      &          XM(1,BAQ(2,1,S)),     T(1,2)     ,XM(1,BAQ(2,3,S)),
02860      &          XM(1,BAQ(3,1,S)),XM(1,BAQ(3,2,S)),     T(1,3)     ,
02861      &          XM(1,BAQ(4,1,S)),XM(1,BAQ(4,2,S)),XM(1,BAQ(4,3,S)),
02862      &          XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02863 !
02864              TYPDIA='Q'
02865              TYPEXT='Q'
02866 !
02867 !.......................................................................
02868 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
02869           ELSEIF(IELM2.EQ.12) THEN
02870              CALL MT13BB
02871      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
02872      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
02873      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
02874      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
02875      &          XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02876 !
02877              TYPDIA='Q'
02878              TYPEXT='Q'
02879 !
02880 !.......................................................................
02881 !         OTHER
02882 !.......................................................................
02883 !
02884 !         ELSEIF
02885 !
02886 !-----------------------------------------------------------------------
02887 !         ERROR ON THE COLUMN ELEMENT
02888 !-----------------------------------------------------------------------
02889 !
02890           ELSE
02891             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02892             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02893             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02894             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02895             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02896             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02897             CALL PLANTE(1)
02898             STOP
02899           ENDIF
02900 !
02901 !-----------------------------------------------------------------------
02902 !       P2 TRIANGLE ROW ELEMENT
02903         ELSEIF(IELM1.EQ.13) THEN
02904 !
02905 !.......................................................................
02906 !         P1 TRIANGLE COLUMN ELEMENT
02907           IF(IELM2.EQ.11) THEN
02908              CALL MT13CA
02909      &         (     T(1,1)     ,XM(1,CAQ(1,2,S)),XM(1,CAQ(1,3,S)),
02910      &          XM(1,CAQ(2,1,S)),     T(1,2)     ,XM(1,CAQ(2,3,S)),
02911      &          XM(1,CAQ(3,1,S)),XM(1,CAQ(3,2,S)),     T(1,3)     ,
02912      &          XM(1,CAQ(4,1,S)),XM(1,CAQ(4,2,S)),XM(1,CAQ(4,3,S)),
02913      &          XM(1,CAQ(5,1,S)),XM(1,CAQ(5,2,S)),XM(1,CAQ(5,3,S)),
02914      &          XM(1,CAQ(6,1,S)),XM(1,CAQ(6,2,S)),XM(1,CAQ(6,3,S)),
02915      &          XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02916 !
02917              TYPDIA='Q'
02918              TYPEXT='Q'
02919 !
02920 !.......................................................................
02921 !         P2 TRIANGLE COLUMN ELEMENT
02922           ELSEIF(IELM2.EQ.13) THEN
02923              CALL MT13CC
02924      & (   T(1,1)   ,XM(1,PPQ(1,2,S)),XM(1,PPQ(1,3,S)),
02925      &   XM(1,PPQ(1,4,S)),XM(1,PPQ(1,5,S)),XM(1,PPQ(1,6,S)),
02926      &   XM(1,PPQ(2,1,S)),T(1,2),XM(1,PPQ(2,3,S)),XM(1,PPQ(2,4,S)),
02927      &   XM(1,PPQ(2,5,S)),XM(1,PPQ(2,6,S)),XM(1,PPQ(3,1,S)),
02928      &   XM(1,PPQ(3,2,S)),T(1,3),XM(1,PPQ(3,4,S)),XM(1,PPQ(3,5,S)),
02929      &   XM(1,PPQ(3,6,S)),XM(1,PPQ(4,1,S)),XM(1,PPQ(4,2,S)),
02930      &   XM(1,PPQ(4,3,S)),T(1,4),XM(1,PPQ(4,5,S)),XM(1,PPQ(4,6,S)),
02931      &   XM(1,PPQ(5,1,S)),XM(1,PPQ(5,2,S)),XM(1,PPQ(5,3,S)),
02932      &   XM(1,PPQ(5,4,S)),  T(1,5)   ,XM(1,PPQ(5,6,S)),
02933      &   XM(1,PPQ(6,1,S)),XM(1,PPQ(6,2,S)) ,XM(1,PPQ(6,3,S)),
02934      &   XM(1,PPQ(6,4,S)),XM(1,PPQ(6,5,S)),T(1,6),
02935      &          XMUL,XEL,YEL,NELEM,NELMAX,ICOORD)
02936 !
02937              TYPDIA='Q'
02938              TYPEXT='Q'
02939 !
02940 !.......................................................................
02941 !         OTHER
02942 !.......................................................................
02943 !
02944 !         ELSEIF
02945 !
02946 !-----------------------------------------------------------------------
02947 !         ERROR ON THE COLUMN ELEMENT
02948 !-----------------------------------------------------------------------
02949 !
02950           ELSE
02951             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02952             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02953             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02954             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02955             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
02956             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
02957             CALL PLANTE(1)
02958             STOP
02959           ENDIF
02960 !
02961 !-----------------------------------------------------------------------
02962 !       OTHER ROW ELEMENT
02963 !-----------------------------------------------------------------------
02964 !
02965 !       ELSEIF
02966 !
02967 !-----------------------------------------------------------------------
02968 !       ERROR ON THE ROW ELEMENT
02969 !-----------------------------------------------------------------------
02970 !
02971         ELSE
02972           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
02973           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
02974           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
02975           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
02976           CALL PLANTE(1)
02977           STOP
02978         ENDIF
02979 !
02980 !=======================================================================
02981 !     MURD MATRIX
02982 !=======================================================================
02983 !
02984       ELSEIF(FORMUL(1:6).EQ.'MAMURD') THEN
02985 !
02986 !     CHARACTER 7 INFORMS WHETHER SIGMAG OR NOT
02987 !
02988       SIGMAG = .FALSE.
02989       IF(FORMUL(7:7).EQ.'2') SIGMAG = .TRUE.
02990 !
02991 !     CHARACTER 8 GIVES THE DETAILS FOR CALL TO VC04PP
02992 !
02993       SPECAD = .FALSE.
02994       IF(FORMUL(8:8).EQ.'2') SPECAD = .TRUE.
02995 !
02996 !     CHARACTERS 14 TO 16 GIVE THE SCHEME OPTION
02997 !
02998       IF(FORMUL(14:16).EQ.'PSI') LEGO = .FALSE.
02999 !
03000 !-----------------------------------------------------------------------
03001 !
03002 !       P1 PRISM ROW ELEMENT
03003         IF(IELM1.EQ.41) THEN
03004 !
03005 !.......................................................................
03006 !         P1 PRISM COLUMN ELEMENT
03007           IF(IELM2.EQ.41) THEN
03008              CALL MT14PP(T,XM,PPQ(1,1,S),LEGO,
03009      &                   XMUL,SU,SV,SW,U,V,W,SF,SG,SH,F,G,H,
03010      &                   SURFAC,IKLE,NELEM,NELMAX,SIGMAG,SPECAD)
03011 !
03012             TYPDIA='Q'
03013             TYPEXT='Q'
03014 !
03015 !.......................................................................
03016 !         OTHER
03017 !.......................................................................
03018 !
03019 !
03020 !.......................................................................
03021 !         ERROR ON THE COLUMN ELEMENT
03022 !.......................................................................
03023 !
03024           ELSE
03025             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03026             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03027             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03028             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03029             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
03030             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
03031             CALL PLANTE(1)
03032             STOP
03033           ENDIF
03034 !
03035 !-----------------------------------------------------------------------
03036 !       OTHER ROW ELEMENT
03037 !-----------------------------------------------------------------------
03038 !
03039         ELSEIF(IELM1.EQ.51) THEN
03040 !
03041 !.......................................................................
03042 !         P1 PRISM COLUMN ELEMENT
03043 !
03044           IF(IELM2.EQ.51) THEN
03045             CALL MT14TT(T,XM,PPQ(1,1,S),LEGO,
03046      &                  XMUL,SU,SV,SW,U,V,W,SF,SG,SH,F,G,H,
03047      &                  XPT,YPT,ZPT,SURFAC,IKLE,NELEM,NELMAX,SIGMAG,
03048      &                  SPECAD,NPLAN,BIEF_NBPTS(11,MESH))
03049             TYPDIA='Q'
03050             TYPEXT='Q'
03051 !
03052 !.......................................................................
03053 !         OTHER
03054 !.......................................................................
03055 !
03056 !
03057 !.......................................................................
03058 !         ERROR ON THE COLUMN ELEMENT
03059 !.......................................................................
03060 !
03061           ELSE
03062             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03063             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03064             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03065             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03066             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
03067             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
03068             CALL PLANTE(1)
03069             STOP
03070           ENDIF
03071 !
03072 !-----------------------------------------------------------------------
03073 !       ERROR ON THE ROW ELEMENT
03074 !-----------------------------------------------------------------------
03075 !
03076         ELSE
03077           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03078           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03079           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03080           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03081           CALL PLANTE(1)
03082           STOP
03083         ENDIF
03084 !
03085 !=======================================================================
03086 !     SETTLING VELOCITY MATRIX
03087 !=======================================================================
03088 !
03089       ELSEIF(FORMUL(1:6).EQ.'MATWC ') THEN
03090 !
03091 !-----------------------------------------------------------------------
03092 !
03093 !       P1 PRISM ROW ELEMENT
03094         IF(IELM1.EQ.41) THEN
03095 !
03096 !.......................................................................
03097 !         P1 PRISM COLUMN ELEMENT
03098           IF(IELM2.EQ.41) THEN
03099             CALL MT15PP(T,XM,PPQ(1,1,S),
03100      &                  XMUL,SF,F,ZPT,SURFAC,IKLE,NELEM,NELMAX)
03101 !
03102             TYPDIA='Q'
03103             TYPEXT='Q'
03104 !
03105 !.......................................................................
03106 !         OTHER
03107 !.......................................................................
03108 !
03109 !
03110 !.......................................................................
03111 !         ERROR ON THE COLUMN ELEMENT
03112 !.......................................................................
03113 !
03114           ELSE
03115             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03116             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03117             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03118             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03119             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
03120             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
03121             CALL PLANTE(1)
03122             STOP
03123           ENDIF
03124 !
03125 !-----------------------------------------------------------------------
03126 !       ERROR ON THE ROW ELEMENT
03127 !-----------------------------------------------------------------------
03128 !
03129         ELSE
03130           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03131           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03132           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03133           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03134           CALL PLANTE(1)
03135           STOP
03136         ENDIF
03137 !
03138 !=======================================================================
03139 !     BOUSSINESQ MATRIX
03140 !=======================================================================
03141 !
03142       ELSEIF(FORMUL(1:7).EQ.'FFBT   ') THEN
03143 !
03144 !-----------------------------------------------------------------------
03145 !       P1 TRIANGLE ROW ELEMENT
03146         IF(IELM1.EQ.11) THEN
03147 !
03148 !.......................................................................
03149 !         P1 TRIANGLE COLUMN ELEMENT
03150           IF(IELM2.EQ.11) THEN
03151             CALL MT99AA
03152      &                  (   T(1,1)   ,XM(1,AAQ(1,2,S)),XM(1,AAQ(1,3,S)),
03153      &                   XM(1,AAQ(2,1,S)),   T(1,2)   ,XM(1,AAQ(2,3,S)),
03154      &                   XM(1,AAQ(3,1,S)),XM(1,AAQ(3,2,S)),   T(1,3)   ,
03155      &                   XMUL,SF,F,XEL,YEL,SURFAC,
03156      &                   IKLE(1,1),IKLE(1,2),IKLE(1,3),
03157      &                   NELEM,NELMAX,FORMUL,TDIA,TEXT)
03158 !
03159             TYPDIA = TDIA
03160             TYPEXT = TEXT
03161 !.......................................................................
03162 !         OTHER
03163 !.......................................................................
03164 !
03165 !         ELSEIF
03166 !
03167 !.......................................................................
03168 !         ERROR ON THE COLUMN ELEMENT
03169 !.......................................................................
03170           ELSE
03171             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03172             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03173             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03174             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03175             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
03176             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
03177             CALL PLANTE(1)
03178             STOP
03179           ENDIF
03180 !-----------------------------------------------------------------------
03181 !       OTHER ROW ELEMENT
03182 !-----------------------------------------------------------------------
03183 !
03184 !
03185 !-----------------------------------------------------------------------
03186 !       QUASI-BUBBLE TRIANGLE ROW ELEMENT
03187 !
03188         ELSEIF(IELM1.EQ.12) THEN
03189 !
03190 !.......................................................................
03191 !         QUASI-BUBBLE TRIANGLE COLUMN ELEMENT
03192           IF(IELM2.EQ.12) THEN
03193             CALL MT99BB
03194      & (   T(1,1)   ,XM(1,BBQ(1,2,S)),XM(1,BBQ(1,3,S)),XM(1,BBQ(1,4,S)),
03195      &  XM(1,BBQ(2,1,S)),   T(1,2)   ,XM(1,BBQ(2,3,S)),XM(1,BBQ(2,4,S)),
03196      &  XM(1,BBQ(3,1,S)),XM(1,BBQ(3,2,S)),   T(1,3)   ,XM(1,BBQ(3,4,S)),
03197      &  XM(1,BBQ(4,1,S)),XM(1,BBQ(4,2,S)),XM(1,BBQ(4,3,S)),   T(1,4)   ,
03198      &         XMUL,SF,F,XEL,YEL,SURFAC,
03199      &         IKLE(1,1),IKLE(1,2),IKLE(1,3),
03200      &         NELEM,NELMAX,FORMUL,TDIA,TEXT)
03201 !
03202 !
03203             TYPDIA = TDIA
03204             TYPEXT = TEXT
03205 !
03206 !.......................................................................
03207 !         OTHER
03208 !.......................................................................
03209 !
03210 !
03211 !.......................................................................
03212 !         ERROR ON THE COLUMN ELEMENT
03213 !.......................................................................
03214 !
03215           ELSE
03216             IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03217             IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03218             IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03219             IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03220             IF (LNG.EQ.1) WRITE(LU,3000) IELM2
03221             IF (LNG.EQ.2) WRITE(LU,3001) IELM2
03222             CALL PLANTE(1)
03223             STOP
03224           ENDIF
03225 !
03226 !-----------------------------------------------------------------------
03227 !       ERROR ON THE ROW ELEMENT
03228 !-----------------------------------------------------------------------
03229 !
03230 !
03231         ELSE
03232           IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03233           IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03234           IF (LNG.EQ.1) WRITE(LU,2000) IELM1
03235           IF (LNG.EQ.2) WRITE(LU,2001) IELM1
03236           CALL PLANTE(1)
03237           STOP
03238         ENDIF
03239 !
03240       ELSE
03241 !
03242 !=======================================================================
03243 !     ERROR: TYPE OF MATRIX NOT IMPLEMENTED
03244 !=======================================================================
03245 !
03246         IF (LNG.EQ.1) WRITE(LU,1000) FORMUL
03247         IF (LNG.EQ.2) WRITE(LU,1001) FORMUL
03248         CALL PLANTE(1)
03249         STOP
03250       ENDIF
03251 !
03252 !-----------------------------------------------------------------------
03253 !
03254 1000  FORMAT(1X,'MATRIY (BIEF) : MATRICE NON PREVUE : ',A16)
03255 1001  FORMAT(1X,'MATRIY (BIEF) : MATRIX NOT IMPLEMENTED:',A16)
03256 2000  FORMAT(1X,'                POUR IELM1 = ',1I6)
03257 2001  FORMAT(1X,'                FOR IELM1 = ',1I6)
03258 3000  FORMAT(1X,'                ET IELM2 = ',1I6)
03259 3001  FORMAT(1X,'                AND IELM2 = ',1I6)
03260 !
03261 !-----------------------------------------------------------------------
03262 !
03263       RETURN
03264       END

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