SUBROUTINE FTRUNC(IDIGIT,F) c c CALL FTRUNC(IDIGIT,F) c F is truncated to IDIGIT number of ditits c INTEGER*4 ITEST,JTEST DOUBLE PRECISION VALUE,SCALE IF(IDIGIT .GT. 6) RETURN IF( F .EQ. 0) RETURN VALUE = ABS(F) ! Get magnitude SCALE = LOG10(VALUE) ! Get exponent IF(SCALE .LT. 0.) SCALE = SCALE - 1. ! If fractional decrease exp IEXP = SCALE ! Integer part of exp IEXP = IEXP - IDIGIT ! - number of digits SCALE = 10. SCALE = SCALE**IEXP ! Get scale factor ITEST = VALUE/SCALE ! Get integer part JTEST = 10 JTEST = JTEST**IDIGIT IF(ITEST .LT. JTEST) GO TO 20 ITEST = ITEST/10 SCALE = SCALE*10. 20 CONTINUE IF( F .LT. 0) ITEST = -ITEST F = ITEST*SCALE END