Download pacalc.eso

Back to the list

   1 : C PACALC    SOURCE    CHAT      05/01/13    02:08:40     5004           
   2 : c     Sous-Programme du module MISTRAL1
   3 : C     --------------------------------------------------------------------------   
   4 :       SUBROUTINE PACALC (DXMI,DXMA,XMAX, II, DYMA,DYPRMA,
   5 :      &                   YP, DXA,YPA,NP, DX)
   6 : C     --------------------------------------------------------------------------
   7 : C     Determination du pas de calcul DX en fonction :
   8 : C     - du minimum et du maximum imposes : DXMI et DXMA,
   9 : C     - de l'intervalle maximal de X considere XMAX,
  10 : C     - des increments maximaux autorises DYMA(I) des Y(I),
  11 : C     - des increments relatifs maximaux autorises DYPRMA(I)
  12 : C     de leurs derivees YP(I),
  13 : C     - des valeurs de ces derivees YP(I) en X,
  14 : C     et eventuellement, si NP est superieur ou egal a 1 :
  15 : C     - des derivees YPA(I) au X precedent,
  16 : C     - du pas de calcul precedent DXA,
  17 : C     II etant le nombre de variables Y considerees pour determiner DX.
  18 : C     --------------------------------------------------------------------------
  19 :       IMPLICIT INTEGER(I-N)
  20 :       IMPLICIT REAL*8 (A-H, O-Z)
  21 :         DIMENSION DYMA(1:*),DYPRMA(1:*),YP(1:*),YPA(1:*)
  22 :       DX = DXMA
  23 :         IF (DXMI.GE.DXMA) RETURN
  24 :       IF (NP.EQ.0) THEN
  25 :        DO I = 1,II
  26 :         IF (ABS(YP(I))*DX.GT.DYMA(I)) THEN
  27 :          DX = DYMA(I)/ABS(YP(I))
  28 :         END IF
  29 :        END DO
  30 :       ELSE
  31 :        DO I = 1,II
  32 :         AYPI = ABS(YP(I))
  33 :         IF (AYPI*DX.GT.DYMA(I)) THEN
  34 :            AYSI = ABS((YP(I)-YPA(I))/DXA)
  35 :            DYPIMA = MAX(DYMA(I)/XMAX,AYPI*DYPRMA(I))
  36 :          IF (AYSI*DX.GT.DYPIMA) THEN
  37 :           DXYI = DYMA(I)/AYPI
  38 :           DXYPI = DYPIMA/AYSI
  39 :           DX = MAX(DXYI,DXYPI)
  40 :          END IF
  41 :         END IF
  42 :        END DO
  43 :       END IF
  44 :       DX = MAX(DX,DXMI)
  45 :         RETURN
  46 :         END
  47 :       
  48 :  

© Cast3M 2003 - All rights reserved.
Disclaimer