exlim.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\telemac2d\exlim.f
00002 !
00049                      DOUBLE PRECISION FUNCTION EXLIM
00050 !                    *******************************
00051 !
00052      &(ILIM,BETA,GRI,GRIJ)
00053 !
00054 !***********************************************************************
00055 ! TELEMAC2D   V6P1                                   21/08/2010
00056 !***********************************************************************
00057 !
00058 !
00059 !
00060 !
00061 !
00062 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00063 !| BETA           |-->| EXTRAPOLATION COEFFICIENT FOR ORDRE 2
00064 !| GRI,GRIJ       |-->| GRADIENTS
00065 !| ILIM           |-->| OPTIONS FOR THE LIMITER
00066 !|                |   | 1 : MINMOD
00067 !|                |   | 2 : VAN ALBADA
00068 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00069 !
00070       IMPLICIT NONE
00071 !
00072 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00073 !
00074       INTEGER, INTENT(IN) :: ILIM
00075       DOUBLE PRECISION, INTENT(IN) :: GRI,GRIJ,BETA
00076 !
00077 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00078 !
00079       DOUBLE PRECISION GRI1,GRI2,GRIJ2,AUX1,E2
00080 !
00081 !-----------------------------------------------------------------------
00082 !
00083 !    EXTRAPOLATES THE GRADIENT AND USES SLOPE LIMITER
00084 !
00085       GRI1 = (1.D0+BETA)*GRI - BETA*GRIJ
00086 !
00087       IF(ILIM.EQ.1) THEN
00088 !
00089 !    MINMOD
00090 !
00091         EXLIM=0.5D0*(DSIGN(1.D0,GRI1)+DSIGN(1.D0,GRIJ))
00092      &   *MIN(ABS(GRI1),ABS(GRIJ))
00093 !
00094 !
00095       ELSEIF (ILIM.EQ.2) THEN
00096 !
00097 !       VAN ALBADA
00098 !
00099         E2 = 1.D-12
00100 !
00101         AUX1 = 0.5D0*(1.D0+DSIGN(1.D0,GRI1*GRIJ))
00102         GRI2  = GRI1*GRI1  + E2
00103         GRIJ2 = GRIJ*GRIJ  + E2
00104 !
00105         EXLIM  = AUX1*(GRI2*GRIJ+GRIJ2*GRI)/(GRI2+GRIJ2)
00106 !
00107       ENDIF
00108 !
00109 !-----------------------------------------------------------------------
00110 !
00111       RETURN
00112       END

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