C ARROND SOURCE CHAT 11/05/27 21:15:10 6983 FUNCTION ARROND(B,PAS,K) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Y) REAL*8 ARROND * * ARRONDI UNE BORNE B DONNEE SOUS LA FORME XXXXX.XX POUR QU'ELLE * SOIT UN MULTIPLE DE PAS AVEC UN ARRONDI SUPERIEUR SI K=1, * INFERIEUR SI K=0 * * * DETERMINE COMMENT FAIRE L'ARRONDI * C=0.D0 IF (B.LT.0.D0) THEN IF (K.EQ.0) THEN * ARRONDI PAR EN DESSOUS D'UNE BORNE NEGATIVE C=-1.D0 ELSE * ARRONDI PAR AU DESSUS D'UNE BORNE NEGATIVE C=0.D0 ENDIF ELSE IF (K.EQ.0) THEN * ARRONDI PAR EN DESSOUS D'UNE BORNE POSITIVE C=0.D0 ELSE * ARRONDI PAR AU DESSUS D'UNE BORNE POSITIVE C=1.D0 ENDIF ENDIF * PASSE EN NOMBRE ENTIER POUR AVOIR UN MODULO ENTIER EVITANT LES * PROBLEMES DE CODAGE EN MACHINE DES FLOTTANTS BB=B*100.D0 IF (BB.LT.0.D0) THEN IB=INT(BB-.5D0) ELSE IB=INT(BB+.5D0) ENDIF IPAS=INT(PAS*100.D0+.5D0) I=nint(B/PAS) J = int(B/PAS) R=ABS(MOD(IB,IPAS)) * CALCUL DE L'ARRONDI IF (R.GE.1.D0) THEN ARROND=(I+C)*PAS ELSE ARROND=B ENDIF RETURN END