filp12.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\filp12.f
00002 !
00060                      SUBROUTINE FILP12
00061 !                    *****************
00062 !
00063      &(F,C,XSOM,YSOM,NSOM,X,Y,NPOIN,NELEM,NELMAX,IKLE)
00064 !
00065 !***********************************************************************
00066 ! BIEF   V6P1                                   21/08/2010
00067 !***********************************************************************
00068 !
00069 !
00070 !
00071 !
00072 !
00073 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00074 !| C              |-->| THE CONSTANT VALUE
00075 !| F              |<->| THE FUNCTION
00076 !| IKLE           |-->| CONNECTIVITY TABLE.
00077 !| NELEM          |-->| NUMBER OF ELEMENTS
00078 !| NELMAX         |-->| MAXIMUM NUMBER OF ELEMENTS
00079 !| NPOIN          |-->| NUMBER OF POINTS IN THE MESH
00080 !| NSOM           |-->| NUMBER OF VERTICES IN THE POLYGON
00081 !| X              |-->| ABSCISSAE OF POINTS IN THE MESH
00082 !| XSOM           |-->| ABSCISSAE OF POINTS IN THE POLYGON
00083 !| Y              |-->| ORDINATES OF POINTS IN THE MESH
00084 !| YSOM           |-->| ORDINATES OF POINTS IN THE POLYGON
00085 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00086 !
00087       USE BIEF, EX_FILP12 => FILP12
00088 !
00089       IMPLICIT NONE
00090       INTEGER LNG,LU
00091       COMMON/INFO/LNG,LU
00092 !
00093 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00094 !
00095       INTEGER, INTENT(IN) :: NSOM , NELEM , NELMAX , NPOIN
00096       DOUBLE PRECISION, INTENT(INOUT) :: F(*)
00097       DOUBLE PRECISION, INTENT(IN) :: X(*) , Y(*)
00098       DOUBLE PRECISION, INTENT(IN) :: XSOM(NSOM) , YSOM(NSOM) , C
00099       INTEGER, INTENT(IN) :: IKLE(NELMAX,4)
00100 !
00101 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00102 !
00103       INTEGER I , I1 , I2 , I3 , IELEM
00104 !
00105       DOUBLE PRECISION XX , YY
00106 !
00107 !-----------------------------------------------------------------------
00108 !
00109       DO I = 1 , NPOIN
00110 !
00111         IF(INPOLY(X(I),Y(I),XSOM,YSOM,NSOM)) F(I) = C
00112 !
00113       ENDDO ! I
00114 !
00115       DO IELEM = 1 , NELEM
00116 !
00117         I1 = IKLE(IELEM,1)
00118         I2 = IKLE(IELEM,2)
00119         I3 = IKLE(IELEM,3)
00120         XX = 0.3333333333D0 * ( X(I1)+X(I2)+X(I3) )
00121         YY = 0.3333333333D0 * ( Y(I1)+Y(I2)+Y(I3) )
00122         IF(INPOLY(XX,YY,XSOM,YSOM,NSOM)) F(IELEM+NPOIN) = C
00123 !
00124       ENDDO ! IELEM
00125 !
00126 !-----------------------------------------------------------------------
00127 !
00128       RETURN
00129       END

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