DOUBLE PRECISION FUNCTION DR7MDC(K)
C
C *** RETURN MACHINE DEPENDENT CONSTANTS USED BY NL2SOL ***
C
INTEGER K
C
C *** THE CONSTANT RETURNED DEPENDS ON K...
C
C *** K = 1... SMALLEST POS. ETA SUCH THAT -ETA EXISTS.
C *** K = 2... SQUARE ROOT OF ETA.
C *** K = 3... UNIT ROUNDOFF = SMALLEST POS. NO. MACHEP SUCH
C *** THAT 1 + MACHEP .GT. 1 .AND. 1 - MACHEP .LT. 1.
C *** K = 4... SQUARE ROOT OF MACHEP.
C *** K = 5... SQUARE ROOT OF BIG (SEE K = 6).
C *** K = 6... LARGEST MACHINE NO. BIG SUCH THAT -BIG EXISTS.
C
DOUBLE PRECISION BIG, ETA, MACHEP
C/+
DOUBLE PRECISION DSQRT
C/
C
DOUBLE PRECISION D1MACH, ZERO
EXTERNAL D1MACH
DATA BIG/0.D+0/, ETA/0.D+0/, MACHEP/0.D+0/, ZERO/0.D+0/
IF (BIG .GT. ZERO) GO TO 1
BIG = D1MACH(2)
ETA = D1MACH(1)
MACHEP = D1MACH(4)
1 CONTINUE
C
C------------------------------- BODY --------------------------------
C
GO TO (10, 20, 30, 40, 50, 60), K
C
10 DR7MDC = ETA
GO TO 999
C
20 DR7MDC = DSQRT(256.D+0*ETA)/16.D+0
GO TO 999
C
30 DR7MDC = MACHEP
GO TO 999
C
40 DR7MDC = DSQRT(MACHEP)
GO TO 999
C
50 DR7MDC = DSQRT(BIG/256.D+0)*16.D+0
GO TO 999
C
60 DR7MDC = BIG
C
999 RETURN
C *** LAST CARD OF DR7MDC FOLLOWS ***
END
.