Download mpADV.eso

Back to the list

   1 : C MPADV     SOURCE    BECC      05/12/02    21:15:48     5258           
   2 :       SUBROUTINE mpADV(wkplus, wkmin, ML, MR, 
   3 :      &                 Mkplus, Mkmin, Pkplus, Pkmin)
   4 : C***********************************************************************
   5 : C NOM         : mpADV
   6 : C DESCRIPTION :
   7 : C
   8 : C
   9 : C
  10 : C LANGAGE     : ESOPE
  11 : C AUTEUR      : José R. Garcia Cascales (CEA/DEN/DM2S/SFME/LTMF)
  12 : C               mél : fd1@semt2.smts.cea.fr
  13 : C***********************************************************************
  14 : C APPELES          : 
  15 : C APPELES (E/S)    :
  16 : C                   INPUTS:   ML, MR 
  17 : C                   OUTPUTS:  MPLUS, MMINUS, PPLUS, PMINUS
  18 : C APPELES (BLAS)   :
  19 : C APPELES (CALCUL) :
  20 : C APPELE PAR       :
  21 : C***********************************************************************
  22 : C SYNTAXE GIBIANE    :
  23 : C ENTREES            :
  24 : C ENTREES/SORTIES    :
  25 : C SORTIES            :
  26 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  27 : C***********************************************************************
  28 : C VERSION    : v1, 19/02/2001, version initiale
  29 : C HISTORIQUE : v1, ??/??/2001, création
  30 : C HISTORIQUE :
  31 : C HISTORIQUE :
  32 : C***********************************************************************
  33 : C Prière de PRENDRE LE TEMP de compléter les commentaires
  34 : C en cas de modification de ce sous-programme afin de faciliter
  35 : C la maintenance !
  36 : C***********************************************************************
  37 : *
  38 : *     
  39 : * Executable statements
  40 : *
  41 :       real*8 wkplus, wkmin, ML, MR, Mkplus, Mkmin, Pkplus, Pkmin
  42 : 
  43 :       real*8 MPLUS, MMIN, PPLUS, PMIN,
  44 :      &       MPLUS2, MMIN2,
  45 :      &       A_AUSM, B_AUSM
  46 :       parameter(A_AUSM = 0.1875D0)
  47 :       parameter(B_AUSM = 0.125D0)
  48 :       
  49 : C     Calculation of MPLUS and PPLUS
  50 : 
  51 :       if(DABS(ML) .GE. 1.D0) then
  52 :          MPLUS2 = 0.5D0*(ML + DABS(ML))
  53 :       else
  54 :          MPLUS2 = 0.25D0*(ML + 1.D0)**2
  55 :       end if
  56 :       if(DABS(ML) .GE. 1.D0) then
  57 :          MMIN2 = 0.5D0*(ML - DABS(ML))
  58 :       else
  59 :          MMIN2 = -0.25D0*(ML - 1.D0)**2
  60 :       end if
  61 : 
  62 :       if(DABS(ML) .GE. 1) then
  63 :          MPLUS =  0.5D0*(ML + DABS(ML))
  64 :       else
  65 :          MPLUS = MPLUS2*(1.D0 - B_AUSM*16.D0*MMIN2)
  66 :       end if
  67 : 
  68 :       if (DABS(ML) .GE. 1) then
  69 :          PPLUS = (0.5D0*(ML + DABS(ML)))/ML
  70 :       else
  71 :          PPLUS = MPLUS2*(2.D0 - ML - A_AUSM*16.D0*ML*MMIN2)
  72 :       end if
  73 : 
  74 : C     Calculation of MMIN
  75 : 
  76 :       if(DABS(MR) .GE. 1.D0) then
  77 :          MPLUS2 = 0.5D0*(MR + DABS(MR))
  78 :       else
  79 :          MPLUS2 = 0.25D0*(MR + 1.D0)**2
  80 :       end if
  81 :       if(DABS(MR) .GE. 1.D0) then
  82 :          MMIN2 = 0.5D0*(MR - DABS(MR))
  83 :       else
  84 :          MMIN2 = -0.25D0*(MR - 1.D0)**2
  85 :       end if
  86 : 
  87 :       if (DABS(MR) .GE. 1) then
  88 :          MMIN = 0.5D0*(MR - DABS(MR))
  89 :       else
  90 :          MMIN = MMIN2*(1.D0 + B_AUSM*16.D0*MPLUS2)
  91 :       end if
  92 : 
  93 :       if (DABS(MR) .GE. 1) then
  94 :          PMIN = (0.5D0*(MR - DABS(MR)))/MR
  95 :       else
  96 :          PMIN = -MMIN2*(2.D0 + MR - A_AUSM*16.D0*MR*MPLUS2)
  97 :       end if
  98 : 
  99 :       Mkplus = wkplus*MPLUS + (1.D0 - wkplus)*0.5D0*(ML + DABS(ML))
 100 :       Mkmin  = wkmin*MMIN + (1.D0 - wkmin)* 0.5D0*(MR - DABS(MR))
 101 : 
 102 :       Pkplus = PPLUS
 103 :       Pkmin = PMIN
 104 :       
 105 :       END
 106 : 
 107 :  

© Cast3M 2003 - All rights reserved.
Disclaimer