pacalc
C PACALC SOURCE PV090527 23/04/28 07:45:29 11659 c Sous-Programme du module MISTRAL1 C -------------------------------------------------------------------------- & YP, DXA,YPA,NP, DX) C -------------------------------------------------------------------------- C Determination du pas de calcul DX en fonction : C - du minimum et du maximum imposes : DXMI et DXMA, C - de l'intervalle maximal de X considere XMAX, C - des increments maximaux autorises DYMA(I) des Y(I), C - des increments relatifs maximaux autorises DYPRMA(I) C de leurs derivees YP(I), C - des valeurs de ces derivees YP(I) en X, C et eventuellement, si NP est superieur ou egal a 1 : C - des derivees YPA(I) au X precedent, C - du pas de calcul precedent DXA, C II etant le nombre de variables Y considerees pour determiner DX. C -------------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H, O-Z) -INC CCREEL DIMENSION DYMA(1:*),DYPRMA(1:*),YP(1:*),YPA(1:*) DX = DXMA IF (DXMI.GE.DXMA) RETURN IF (NP.EQ.0) THEN DO I = 1,II IF (ABS(YP(I))*DX.GT.DYMA(I)) THEN DX = DYMA(I)/ABS(YP(I)) END IF END DO ELSE DO I = 1,II AYPI = ABS(YP(I)) IF (AYPI*DX.GT.DYMA(I)) THEN AYSI = ABS((YP(I)-YPA(I))/DXA) DYPIMA = MAX(DYMA(I)/XMAX,AYPI*DYPRMA(I)) IF (AYSI*DX.GT.DYPIMA) THEN DXYI = DYMA(I)/AYPI DXYPI = DYPIMA/(AYSI+XPETIT) DX = MAX(DXYI,DXYPI) END IF END IF END DO END IF DX = MAX(DX,DXMI) RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales