char_gauss.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\char_gauss.f
00002 !
00047                      SUBROUTINE CHAR_GAUSS
00048 !                    *********************
00049 !
00050      &(XCONV,YCONV,ZCONV,SHP,SHZ,ELT,ETA,X,Y,IKLE,NPOIN,NELEM,NELMAX,
00051      & NG,NGAUSS,IELM,NPLAN,ZSTAR)
00052 !
00053 !***********************************************************************
00054 ! BIEF   V6P3                                   21/08/2010
00055 !***********************************************************************
00056 !
00057 !
00058 !
00059 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00060 !| ELT            |<--| STARTING ELEMENT OF GAUSS POINTS
00061 !| IELM           |-->| TYPE OF ELEMENT
00062 !| IKLE           |-->| CONNECTIVITY TABLE FOR ALL POINTS
00063 !| NELEM          |-->| NUMBER OF ELEMENTS IN THE MESH
00064 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS IN THE MESH
00065 !| NG             |-->| TOTAL NUMBER OF GAUSS POINTS IN THE MESH
00066 !| NGAUSS         |-->| NUMBER OF GAUSS POINTS PER ELEMENT
00067 !| NLAN           |-->| NUMBER OF PLANES IN THE MESH IN 3D
00068 !| NPOIN          |-->| NUMBER OF POINTS IN THE MESH
00069 !| SHP            |<--| BARYCENTRIC COORDINATES OF GAUSS POINTS
00070 !| XCONV          |<--| ABSCISSAE OF GAUSS POINTS
00071 !| YCONV          |<--| ORDINATES OF GAUSS POINTS
00072 !| ZCONV          |<--| TRANSFORMED ELEVATIONS OF GAUSS POINTS
00073 !| X              |-->| ABSCISSAE OF MESH POINTS
00074 !| Y              |-->| ORDINATES OF MESH POINTS
00075 !| ZSTAR          |-->| TRANSFORMED ELEVATIONS OF MESH POINTS
00076 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00077 !
00078       USE BIEF
00079 !
00080       IMPLICIT NONE
00081       INTEGER LNG,LU
00082       COMMON/INFO/LNG,LU
00083 !
00084 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00085 !
00086       INTEGER, INTENT(IN)             :: NELEM,NELMAX,NPOIN,NG,IELM
00087       INTEGER, INTENT(IN)             :: NPLAN,NGAUSS
00088 !                                        HERE IKLE2
00089       INTEGER, INTENT(IN)             :: IKLE(NELMAX,3)
00090       INTEGER, INTENT(INOUT)          :: ELT(NG),ETA(NG)
00091       DOUBLE PRECISION, INTENT(IN)    :: X(NPOIN*NPLAN)
00092       DOUBLE PRECISION, INTENT(IN)    :: Y(NPOIN*NPLAN)
00093       DOUBLE PRECISION, INTENT(IN)    :: ZSTAR(NPLAN)
00094       DOUBLE PRECISION, INTENT(INOUT) :: XCONV(NG),YCONV(NG),ZCONV(NG)
00095       DOUBLE PRECISION, INTENT(INOUT) :: SHP(3,NG)
00096       DOUBLE PRECISION, INTENT(INOUT) :: SHZ(NG)
00097 !
00098 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00099 !
00100       INTEGER IELEM,I1,I2,I3,IG,IPLAN
00101       DOUBLE PRECISION TIERS,A,B,C,D
00102       TIERS=1.D0/3.D0
00103 !
00104 !-----------------------------------------------------------------------
00105 !
00106       IF(NG.NE.NELEM*NGAUSS.AND.IELM.EQ.11) THEN
00107         IF(LNG.EQ.1) THEN
00108           WRITE(LU,*) 'CHAR_GAUSS : MAUVAIS NOMBRE DE POINTS'
00109         ENDIF
00110         IF(LNG.EQ.2) THEN
00111           WRITE(LU,*) 'CHAR_GAUSS: BAD NUMBER OF POINTS'
00112         ENDIF
00113         WRITE(LU,*) 'NG=',NG,' NELEM=',NELEM,' NGAUSS=',NGAUSS
00114         CALL PLANTE(1)
00115         STOP
00116       ELSEIF(NG.NE.NELEM*(NPLAN-1)*NGAUSS.AND.IELM.EQ.41) THEN
00117         IF(LNG.EQ.1) THEN
00118           WRITE(LU,*) 'CHAR_GAUSS : MAUVAIS NOMBRE DE POINTS'
00119         ENDIF
00120         IF(LNG.EQ.2) THEN
00121           WRITE(LU,*) 'CHAR_GAUSS: BAD NUMBER OF POINTS'
00122         ENDIF
00123         WRITE(LU,*) 'NG=',NG,' NELEM=',NELEM,' NGAUSS=',NGAUSS
00124         WRITE(LU,*) 'NPLAN=',NPLAN
00125         CALL PLANTE(1)
00126         STOP
00127       ENDIF
00128 !
00129 !-----------------------------------------------------------------------
00130 !
00131       IF(NGAUSS.EQ.1.AND.IELM.EQ.11) THEN
00132 !
00133         DO IELEM=1,NELEM
00134           I1=IKLE(IELEM,1)
00135           I2=IKLE(IELEM,2)
00136           I3=IKLE(IELEM,3)
00137           XCONV(IELEM)=(X(I1)+X(I2)+X(I3))*TIERS
00138           YCONV(IELEM)=(Y(I1)+Y(I2)+Y(I3))*TIERS
00139           SHP(1,IELEM)=TIERS
00140           SHP(2,IELEM)=TIERS
00141           SHP(3,IELEM)=TIERS
00142           ELT(IELEM)=IELEM
00143         ENDDO
00144 !
00145       ELSEIF(NGAUSS.EQ.3.AND.IELM.EQ.11) THEN
00146 !
00147         IG=0
00148         DO IELEM=1,NELEM
00149           I1=IKLE(IELEM,1)
00150           I2=IKLE(IELEM,2)
00151           I3=IKLE(IELEM,3)
00152           IG=IG+1
00153           SHP(1,IG)=1.D0-1.D0/6.D0-1.D0/6.D0
00154           SHP(2,IG)=1.D0/6.D0
00155           SHP(3,IG)=1.D0/6.D0
00156           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00157           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00158           ELT(IG)=IELEM
00159           IG=IG+1
00160           SHP(1,IG)=1.D0-2.D0/3.D0-1.D0/6.D0
00161           SHP(2,IG)=2.D0/3.D0
00162           SHP(3,IG)=1.D0/6.D0
00163           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00164           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00165           ELT(IG)=IELEM
00166           IG=IG+1
00167           SHP(1,IG)=1.D0-1.D0/6.D0-2.D0/3.D0
00168           SHP(2,IG)=1.D0/6.D0
00169           SHP(3,IG)=2.D0/3.D0
00170           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00171           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00172           ELT(IG)=IELEM
00173         ENDDO
00174 !
00175       ELSEIF(NGAUSS.EQ.4.AND.IELM.EQ.11) THEN
00176 !
00177         IG=0
00178         DO IELEM=1,NELEM
00179           I1=IKLE(IELEM,1)
00180           I2=IKLE(IELEM,2)
00181           I3=IKLE(IELEM,3)
00182           IG=IG+1
00183           SHP(1,IG)=1.D0-1.D0/3.D0-1.D0/3.D0
00184           SHP(2,IG)=1.D0/3.D0
00185           SHP(3,IG)=1.D0/3.D0
00186           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00187           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00188           ELT(IG)=IELEM
00189           IG=IG+1
00190           SHP(1,IG)=1.D0-1.D0/5.D0-1.D0/5.D0
00191           SHP(2,IG)=1.D0/5.D0
00192           SHP(3,IG)=1.D0/5.D0
00193           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00194           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00195           ELT(IG)=IELEM
00196           IG=IG+1
00197           SHP(1,IG)=1.D0-3.D0/5.D0-1.D0/5.D0
00198           SHP(2,IG)=3.D0/5.D0
00199           SHP(3,IG)=1.D0/5.D0
00200           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00201           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00202           ELT(IG)=IELEM
00203           IG=IG+1
00204           SHP(1,IG)=1.D0-1.D0/5.D0-3.D0/5.D0
00205           SHP(2,IG)=1.D0/5.D0
00206           SHP(3,IG)=3.D0/5.D0
00207           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00208           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00209           ELT(IG)=IELEM
00210         ENDDO
00211 !
00212       ELSEIF(NGAUSS.EQ.6.AND.IELM.EQ.11) THEN
00213 !
00214         A=0.445948490915965D0
00215         B=0.091576213509771D0
00216 !
00217         IG=0
00218         DO IELEM=1,NELEM
00219           I1=IKLE(IELEM,1)
00220           I2=IKLE(IELEM,2)
00221           I3=IKLE(IELEM,3)
00222           IG=IG+1
00223           SHP(1,IG)=1.D0-A-A
00224           SHP(2,IG)=A
00225           SHP(3,IG)=A
00226           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00227           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00228           ELT(IG)=IELEM
00229           IG=IG+1
00230           SHP(1,IG)=A
00231           SHP(2,IG)=1.D0-A-A
00232           SHP(3,IG)=A
00233           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00234           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00235           ELT(IG)=IELEM
00236           IG=IG+1
00237           SHP(1,IG)=A
00238           SHP(2,IG)=A
00239           SHP(3,IG)=1.D0-A-A
00240           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00241           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00242           ELT(IG)=IELEM
00243           IG=IG+1
00244           SHP(1,IG)=1.D0-B-B
00245           SHP(2,IG)=B
00246           SHP(3,IG)=B
00247           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00248           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00249           ELT(IG)=IELEM
00250           IG=IG+1
00251           SHP(1,IG)=B
00252           SHP(2,IG)=1.D0-B-B
00253           SHP(3,IG)=B
00254           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00255           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00256           ELT(IG)=IELEM
00257           IG=IG+1
00258           SHP(1,IG)=B
00259           SHP(2,IG)=B
00260           SHP(3,IG)=1.D0-B-B
00261           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00262           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00263           ELT(IG)=IELEM
00264         ENDDO
00265 !
00266       ELSEIF(NGAUSS.EQ.7.AND.IELM.EQ.11) THEN
00267 !
00268         A=(6.D0+SQRT(15.D0))/21.D0
00269         B=4.D0/7.D0-A
00270 !
00271         IG=0
00272         DO IELEM=1,NELEM
00273           I1=IKLE(IELEM,1)
00274           I2=IKLE(IELEM,2)
00275           I3=IKLE(IELEM,3)
00276           IG=IG+1
00277           SHP(1,IG)=TIERS
00278           SHP(2,IG)=TIERS
00279           SHP(3,IG)=TIERS
00280           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00281           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00282           ELT(IG)=IELEM
00283           IG=IG+1
00284           SHP(1,IG)=1.D0-A-A
00285           SHP(2,IG)=A
00286           SHP(3,IG)=A
00287           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00288           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00289           ELT(IG)=IELEM
00290           IG=IG+1
00291           SHP(1,IG)=A
00292           SHP(2,IG)=1.D0-A-A
00293           SHP(3,IG)=A
00294           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00295           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00296           ELT(IG)=IELEM
00297           IG=IG+1
00298           SHP(1,IG)=A
00299           SHP(2,IG)=A
00300           SHP(3,IG)=1.D0-A-A
00301           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00302           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00303           ELT(IG)=IELEM
00304           IG=IG+1
00305           SHP(1,IG)=1.D0-B-B
00306           SHP(2,IG)=B
00307           SHP(3,IG)=B
00308           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00309           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00310           ELT(IG)=IELEM
00311           IG=IG+1
00312           SHP(1,IG)=B
00313           SHP(2,IG)=1.D0-B-B
00314           SHP(3,IG)=B
00315           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00316           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00317           ELT(IG)=IELEM
00318           IG=IG+1
00319           SHP(1,IG)=B
00320           SHP(2,IG)=B
00321           SHP(3,IG)=1.D0-B-B
00322           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00323           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00324           ELT(IG)=IELEM
00325         ENDDO
00326 !
00327       ELSEIF(NGAUSS.EQ.12.AND.IELM.EQ.11) THEN
00328 !
00329         A=0.063089014491502D0
00330         B=0.249286745170910D0
00331         C=0.310352451033785D0
00332         D=0.053145049844816D0
00333 !
00334         IG=0
00335         DO IELEM=1,NELEM
00336           I1=IKLE(IELEM,1)
00337           I2=IKLE(IELEM,2)
00338           I3=IKLE(IELEM,3)
00339           IG=IG+1
00340           SHP(1,IG)=1.D0-A-A
00341           SHP(2,IG)=A
00342           SHP(3,IG)=A
00343           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00344           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00345           ELT(IG)=IELEM
00346           IG=IG+1
00347           SHP(1,IG)=A
00348           SHP(2,IG)=1.D0-A-A
00349           SHP(3,IG)=A
00350           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00351           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00352           ELT(IG)=IELEM
00353           IG=IG+1
00354           SHP(1,IG)=A
00355           SHP(2,IG)=A
00356           SHP(3,IG)=1.D0-A-A
00357           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00358           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00359           ELT(IG)=IELEM
00360           IG=IG+1
00361           SHP(1,IG)=1.D0-B-B
00362           SHP(2,IG)=B
00363           SHP(3,IG)=B
00364           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00365           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00366           ELT(IG)=IELEM
00367           IG=IG+1
00368           SHP(1,IG)=B
00369           SHP(2,IG)=1.D0-B-B
00370           SHP(3,IG)=B
00371           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00372           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00373           ELT(IG)=IELEM
00374           IG=IG+1
00375           SHP(1,IG)=B
00376           SHP(2,IG)=B
00377           SHP(3,IG)=1.D0-B-B
00378           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00379           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00380           ELT(IG)=IELEM
00381           IG=IG+1
00382           SHP(1,IG)=1.D0-C-D
00383           SHP(2,IG)=C
00384           SHP(3,IG)=D
00385           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00386           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00387           ELT(IG)=IELEM
00388           IG=IG+1
00389           SHP(1,IG)=1.D0-C-D
00390           SHP(2,IG)=D
00391           SHP(3,IG)=C
00392           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00393           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00394           ELT(IG)=IELEM
00395           IG=IG+1
00396           SHP(1,IG)=D
00397           SHP(2,IG)=1.D0-C-D
00398           SHP(3,IG)=C
00399           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00400           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00401           ELT(IG)=IELEM
00402           IG=IG+1
00403           SHP(1,IG)=C
00404           SHP(2,IG)=1.D0-C-D
00405           SHP(3,IG)=D
00406           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00407           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00408           ELT(IG)=IELEM
00409           IG=IG+1
00410           SHP(1,IG)=D
00411           SHP(2,IG)=C
00412           SHP(3,IG)=1.D0-C-D
00413           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00414           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00415           ELT(IG)=IELEM
00416           IG=IG+1
00417           SHP(1,IG)=C
00418           SHP(2,IG)=D
00419           SHP(3,IG)=1.D0-C-D
00420           XCONV(IG)=SHP(1,IG)*X(I1)+SHP(2,IG)*X(I2)+SHP(3,IG)*X(I3)
00421           YCONV(IG)=SHP(1,IG)*Y(I1)+SHP(2,IG)*Y(I2)+SHP(3,IG)*Y(I3)
00422           ELT(IG)=IELEM
00423         ENDDO
00424 !
00425       ELSEIF(NGAUSS.EQ.6.AND.IELM.EQ.41) THEN
00426 !
00427         IF(NG.NE.6*NELEM*(NPLAN-1)) THEN
00428           IF(LNG.EQ.1) THEN
00429             WRITE(LU,*) 'CHAR_GAUSS : MAUVAIS NOMBRE DE POINTS'
00430           ENDIF
00431           IF(LNG.EQ.2) THEN
00432             WRITE(LU,*) 'CHAR_GAUSS: BAD NUMBER OF POINTS'
00433           ENDIF
00434           WRITE(LU,*) 'NG=',NG
00435           WRITE(LU,*) '6*NELEM*(NPLAN-1)=',6*NELEM*NPLAN
00436           CALL PLANTE(1)
00437           STOP
00438         ENDIF
00439 !
00440         IG=0
00441 !
00442         A=1.D0/6.D0
00443         B=2.D0/3.D0
00444         C=0.5D0*(1.D0-1.D0/SQRT(3.D0))
00445         D=0.5D0*(1.D0+1.D0/SQRT(3.D0))
00446 !
00447         DO IPLAN=1,NPLAN-1
00448         DO IELEM=1,NELEM
00449           I1=IKLE(IELEM,1)
00450           I2=IKLE(IELEM,2)
00451           I3=IKLE(IELEM,3)
00452 !
00453           IG=IG+1
00454           SHP(1,IG)=(1.D0-A-A)
00455           SHP(2,IG)=A
00456           SHP(3,IG)=A
00457           SHZ(IG)=C
00458           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00459      &                              +SHP(2,IG)*X(I2)
00460      &                              +SHP(3,IG)*X(I3) )
00461      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00462      &                              +SHP(2,IG)*X(I2)
00463      &                              +SHP(3,IG)*X(I3) )
00464           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00465      &                              +SHP(2,IG)*Y(I2)
00466      &                              +SHP(3,IG)*Y(I3) )
00467      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00468      &                              +SHP(2,IG)*Y(I2)
00469      &                              +SHP(3,IG)*Y(I3) )
00470           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00471      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00472           ELT(IG)=IELEM
00473           ETA(IG)=IPLAN
00474 !
00475           IG=IG+1
00476           SHP(1,IG)=(1.D0-B-A)
00477           SHP(2,IG)=B
00478           SHP(3,IG)=A
00479           SHZ(IG)=C
00480           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00481      &                              +SHP(2,IG)*X(I2)
00482      &                              +SHP(3,IG)*X(I3) )
00483      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00484      &                              +SHP(2,IG)*X(I2)
00485      &                              +SHP(3,IG)*X(I3) )
00486           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00487      &                              +SHP(2,IG)*Y(I2)
00488      &                              +SHP(3,IG)*Y(I3) )
00489      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00490      &                              +SHP(2,IG)*Y(I2)
00491      &                              +SHP(3,IG)*Y(I3) )
00492           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00493      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00494           ELT(IG)=IELEM
00495           ETA(IG)=IPLAN
00496 !
00497           IG=IG+1
00498           SHP(1,IG)=(1.D0-A-B)
00499           SHP(2,IG)=A
00500           SHP(3,IG)=B
00501           SHZ(IG)=C
00502           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00503      &                              +SHP(2,IG)*X(I2)
00504      &                              +SHP(3,IG)*X(I3) )
00505      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00506      &                              +SHP(2,IG)*X(I2)
00507      &                              +SHP(3,IG)*X(I3) )
00508           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00509      &                              +SHP(2,IG)*Y(I2)
00510      &                              +SHP(3,IG)*Y(I3) )
00511      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00512      &                              +SHP(2,IG)*Y(I2)
00513      &                              +SHP(3,IG)*Y(I3) )
00514           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00515      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00516           ELT(IG)=IELEM
00517           ETA(IG)=IPLAN
00518 !
00519           IG=IG+1
00520           SHP(1,IG)=(1.D0-A-A)
00521           SHP(2,IG)=A
00522           SHP(3,IG)=A
00523           SHZ(IG)=D
00524           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00525      &                              +SHP(2,IG)*X(I2)
00526      &                              +SHP(3,IG)*X(I3) )
00527      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00528      &                              +SHP(2,IG)*X(I2)
00529      &                              +SHP(3,IG)*X(I3) )
00530           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00531      &                              +SHP(2,IG)*Y(I2)
00532      &                              +SHP(3,IG)*Y(I3) )
00533      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00534      &                              +SHP(2,IG)*Y(I2)
00535      &                              +SHP(3,IG)*Y(I3) )
00536           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00537      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00538           ELT(IG)=IELEM
00539           ETA(IG)=IPLAN
00540 !
00541           IG=IG+1
00542           SHP(1,IG)=(1.D0-B-A)
00543           SHP(2,IG)=B
00544           SHP(3,IG)=A
00545           SHZ(IG)=D
00546           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00547      &                              +SHP(2,IG)*X(I2)
00548      &                              +SHP(3,IG)*X(I3) )
00549      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00550      &                              +SHP(2,IG)*X(I2)
00551      &                              +SHP(3,IG)*X(I3) )
00552           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00553      &                              +SHP(2,IG)*Y(I2)
00554      &                              +SHP(3,IG)*Y(I3) )
00555      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00556      &                              +SHP(2,IG)*Y(I2)
00557      &                              +SHP(3,IG)*Y(I3) )
00558           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00559      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00560           ELT(IG)=IELEM
00561           ETA(IG)=IPLAN
00562 !
00563           IG=IG+1
00564           SHP(1,IG)=(1.D0-A-B)
00565           SHP(2,IG)=A
00566           SHP(3,IG)=B
00567           SHZ(IG)=D
00568           XCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*X(I1)
00569      &                              +SHP(2,IG)*X(I2)
00570      &                              +SHP(3,IG)*X(I3) )
00571      &                   +SHZ(IG) *( SHP(1,IG)*X(I1)
00572      &                              +SHP(2,IG)*X(I2)
00573      &                              +SHP(3,IG)*X(I3) )
00574           YCONV(IG)=(1.D0-SHZ(IG))*( SHP(1,IG)*Y(I1)
00575      &                              +SHP(2,IG)*Y(I2)
00576      &                              +SHP(3,IG)*Y(I3) )
00577      &                   +SHZ(IG) *( SHP(1,IG)*Y(I1)
00578      &                              +SHP(2,IG)*Y(I2)
00579      &                              +SHP(3,IG)*Y(I3) )
00580           ZCONV(IG)=(1.D0-SHZ(IG))*ZSTAR(IPLAN)
00581      &                   +SHZ(IG) *ZSTAR(IPLAN+1)
00582           ELT(IG)=IELEM
00583           ETA(IG)=IPLAN
00584 !
00585         ENDDO
00586         ENDDO
00587 !
00588       ELSE
00589 !
00590         IF(LNG.EQ.1) WRITE(LU,10) NGAUSS,IELM
00591         IF(LNG.EQ.2) WRITE(LU,11) NGAUSS,IELM
00592 10      FORMAT(1X,'CHAR_GAUSS : OPTION NON PREVUE :'    ,I6,
00593      &            ' AVEC IELM=',I6)
00594 11      FORMAT(1X,'CHAR_GAUSS: OPTION NOT IMPLEMENTED:',I6,
00595      &            ' WITH IELM=',I6)
00596         CALL PLANTE(1)
00597         STOP
00598 !
00599       ENDIF
00600 !
00601 !-----------------------------------------------------------------------
00602 !
00603       RETURN
00604       END

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