C MPFUNT    SOURCE    CHAT      05/01/13    01:52:26     5004
      SUBROUTINE MPFUNT(MACH,MNUM,DERMNU,PNUM,DERPNU)
C
C************************************************************************
C
C PROJET            :  CASTEM 2000
C
C NOM               :  MPFUNT
C
C DESCRIPTION       :  Voir VLHJ1
C                      (fonction M+, P+ pour le calcul de flux dans
C                       van Leer-Hanel)
C
C LANGUAGE          :  FORTRAN 77
C
C AUTEUR            :  A. BECCANTINI DRN/DMT/SEMT/LTMF
C
C************************************************************************
C
C APPELES           :  aucun
C
C************************************************************************
C
C**** Entrées:
C
C     MACH     =  nombre de Mach (normale)
C
C**** Sorties:
C
C     MNUM     =  M+(MACH)
C
C     DERMNU   =  dM+(MACH)/dMACH
C
C     PNUM     =  PNUM(MACH)
C
C     DERPNUM  =  dPNUM(MACH)/dMACH
C
C************************************************************************
C
C HISTORIQUE (Anomalies et modifications éventuelles)
C
C HISTORIQUE :  Créé le 31.08.00
C
C************************************************************************
C
C N.B.: Toutes les variables sont declarées explicitement
C
      IMPLICIT INTEGER(I-N)
      REAL*8 MACH,MNUM,DERMNU,PNUM,DERPNU,MP1
C
      IF(ABS(MACH) .LT. 1.0D0)THEN
         MP1=MACH + 1.0D0
         MNUM=0.25D0*MP1*MP1
         DERMNU=0.5D0*MP1
         PNUM=MNUM*(2.0D0 - MACH)
         DERPNU=0.75D0*MP1*(1.0D0-MACH)
      ELSE
         MNUM=0.5D0*(MACH+ABS(MACH))
         DERMNU=0.5D0*(1.0D0+SIGN(1.0D0,MACH))
         PNUM=DERMNU
         DERPNU=0.0D0
      ENDIF
      RETURN
      END



