gradp.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\gradp.f
00002 !
00046                      SUBROUTINE GRADP
00047 !                    ****************
00048 !
00049      &(NS,NT,IKLE,AIRT,X,Y,DPX,DPY)
00050 !
00051 !***********************************************************************
00052 ! BIEF   V6P1                                   21/08/2010
00053 !***********************************************************************
00054 !
00055 !
00056 !
00057 !
00058 !
00059 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00060 !| AIRT           |-->| AREA OF TRIANGLES
00061 !| DPX            |<--| GRADIENT OF BASES FUNCTIONS WITH RESPECT TO X
00062 !| DPY            |<--| GRADIENT OF BASES FUNCTIONS WITH RESPECT TO Y
00063 !| IKLE           |-->| CONNECTIVITY TABLE
00064 !| NS             |-->| NUMBER OF POINTS IN THE MESH
00065 !| NT             |-->| NUMBER OF TRIANGLES IN THE MESH
00066 !| X              |-->| ABSCISSAE OF NODES IN THE MESH
00067 !| Y              |-->| ORDINATES OF NODES IN THE MESH
00068 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00069 !
00070       IMPLICIT NONE
00071       INTEGER LNG,LU
00072       COMMON/INFO/LNG,LU
00073 !
00074 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00075 !
00076       INTEGER, INTENT(IN)           :: NS,NT,IKLE(NT,3)
00077       DOUBLE PRECISION, INTENT(IN)  :: X(NS),Y(NS),AIRT(NT)
00078       DOUBLE PRECISION, INTENT(OUT) :: DPX(3,NT),DPY(3,NT)
00079 !
00080 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00081 !
00082       INTEGER JT,NUBO1,NUBO2,NUBO3
00083       DOUBLE PRECISION AIRJI,X1,X2,X3,Y1,Y2,Y3
00084 !
00085 !-----------------------------------------------------------------------
00086 !
00087       DO JT=1,NT
00088 !
00089         NUBO1 = IKLE(JT,1)
00090         NUBO2 = IKLE(JT,2)
00091         NUBO3 = IKLE(JT,3)
00092 !
00093         AIRJI = 0.5D0/AIRT(JT)
00094 !
00095 !       COMPUTES THE P1-GRADIENTS
00096 !
00097         X1 = X(NUBO1)
00098         Y1 = Y(NUBO1)
00099         X2 = X(NUBO2)
00100         Y2 = Y(NUBO2)
00101         X3 = X(NUBO3)
00102         Y3 = Y(NUBO3)
00103 !
00104         DPX(1,JT) = AIRJI*(Y2-Y3)
00105         DPX(2,JT) = AIRJI*(Y3-Y1)
00106         DPX(3,JT) = AIRJI*(Y1-Y2)
00107         DPY(1,JT) = AIRJI*(X3-X2)
00108         DPY(2,JT) = AIRJI*(X1-X3)
00109         DPY(3,JT) = AIRJI*(X2-X1)
00110 !
00111       ENDDO
00112 !
00113 !-----------------------------------------------------------------------
00114 !
00115       RETURN
00116       END

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