xintgr
C XINTGR SOURCE CHAT 05/01/13 04:13:37 5004 IMPLICIT INTEGER(I-N) ************************************************************************ * * X I N T G R * ----------- * * FONCTION: * --------- * * INTEGRATION DE X1 A X2 D'UNE FONCTION EN X,Y,Z * AVEC X1 INFERIEUR OU EGAL A X2 * * MODULES UTILISES: * ----------------- * -INC PPARAM -INC CCOPTIO -INC CCREEL * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * INTGR (E) METHODE D'INTEGRATION: * 1 FCT ESCALIER "INFERIEUR" * 2 FCT ESCALIER "MEDIAN" * 3 FCT ESCALIER "SUPERIEUR" * 4 TRAPEZES * FCT (E) FONCTION A INTEGRER * X1,X2 (E) BORNES D'INTEGRATION DE LA 1ERE VARIABLE. * Y,Z (E) 2IEME ET 3IEME VARIABLES DE LA FONCTION * DELTA (E) VALEUR DU PAS D'INTEGRATION * INTEGER INTGR REAL*8 FCT,X1,X2,Y,Z,DELTA * * VARIABLES: * ---------- * INTEGER NPAS,IPAS REAL*8 XINT,XINT1,XI,XJ,DELT2,FCTI,FCTJ * * CONSTANTES: * ----------- * REAL*8 PRECIS PARAMETER (PRECIS = 1.D-5) * * FONCTIONS: * ---------- * LOGICAL EGALDP * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 26 FEVRIER 1988 * * LANGAGE: * -------- * * FORTRAN77 * ************************************************************************ * NPAS=NINT((X2-X1)/DELTA) IF (IIMPI.EQ.1804) THEN WRITE(IOIMP,*) 'DISCRETISATION INTEGRALE EN ',NPAS,' PAS' END IF IF (NPAS.LE.0) THEN NPAS=1 DELT2=X2-X1 ELSE DELT2=DELTA END IF XINT=0.D0 * IF (INTGR .EQ. 4) THEN * XI = X1 FCTI = FCT(XI,Y,Z) DO 100 IPAS=1,NPAS XJ = XI + DELT2 FCTJ = FCT(XJ,Y,Z) XINT1 = XINT XINT = XINT + DELT2 * (FCTI + FCTJ) / 2.D0 * EXIT GOTO 102 END IF XI = XJ FCTI = FCTJ 100 CONTINUE * END DO 102 CONTINUE * ELSE * IF (INTGR .EQ. 1) THEN XI=X1 ELSE IF (INTGR .EQ. 2) THEN XI=X1+DELT2*0.5D0 ELSE IF (INTGR .EQ. 3) THEN XI=DELT2 END IF * DO 200 IPAS=1,NPAS XINT1 = XINT XINT=XINT+DELT2*FCT(XI,Y,Z) * EXIT GOTO 202 END IF XI=XI+DELT2 200 CONTINUE * END DO 202 CONTINUE * END IF * IF (IIMPI.EQ.1804) THEN IF (IPAS .LT. NPAS) THEN WRITE(IOIMP,*) 'IPAS,XINT,XINT1',IPAS,XINT,XINT1 END IF END IF XINTGR=XINT * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales