Go to the documentation of this file.00001
00002 FUNCTION R9LGMC (X)
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 DIMENSION ALGMCS(6)
00036 LOGICAL FIRST
00037 SAVE ALGMCS, NALGM, XBIG, XMAX, FIRST
00038 DATA ALGMCS( 1) / .1666389480 45186E0 /
00039 DATA ALGMCS( 2) / -.0000138494 817606E0 /
00040 DATA ALGMCS( 3) / .0000000098 108256E0 /
00041 DATA ALGMCS( 4) / -.0000000000 180912E0 /
00042 DATA ALGMCS( 5) / .0000000000 000622E0 /
00043 DATA ALGMCS( 6) / -.0000000000 000003E0 /
00044 DATA FIRST /.TRUE./
00045
00046 IF (FIRST) THEN
00047 NALGM = INITS (ALGMCS, 6, R1MACH(3))
00048 XBIG = 1.0/SQRT(R1MACH(3))
00049 XMAX = EXP (MIN(LOG(R1MACH(2)/12.0), -LOG(12.0*R1MACH(1))) )
00050 ENDIF
00051 FIRST = .FALSE.
00052
00053 IF (X .LT. 10.0) CALL XERMSG ('SLATEC', 'R9LGMC',
00054 + 'X MUST BE GE 10', 1, 2)
00055 IF (X.GE.XMAX) GO TO 20
00056
00057 R9LGMC = 1.0/(12.0*X)
00058 IF (X.LT.XBIG) R9LGMC = CSEVL (2.0*(10./X)**2-1., ALGMCS, NALGM)/X
00059 RETURN
00060
00061 20 R9LGMC = 0.0
00062 CALL XERMSG ('SLATEC', 'R9LGMC', 'X SO BIG R9LGMC UNDERFLOWS', 2,
00063 + 1)
00064 RETURN
00065
00066 END