File tree Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -64,12 +64,21 @@ DOUBLE PRECISION FUNCTION DROUNDUP_LWORK( LWORK )
64
64
* =====================================================================
65
65
* ..
66
66
* .. External Functions ..
67
- DOUBLE PRECISION DLAMCH
68
- EXTERNAL DLAMCH
67
+ DOUBLE PRECISION DLAMCH
68
+ EXTERNAL DLAMCH
69
+ * ..
70
+ * .. Intrinsic Functions ..
71
+ INTRINSIC DIGITS, RADIX
69
72
* ..
70
73
* .. Executable Statements ..
71
74
* ..
72
- DROUNDUP_LWORK = LWORK * ( 1 + DLAMCH(' EPS' ) )
75
+ DROUNDUP_LWORK = LWORK
76
+ *
77
+ IF ( DROUNDUP_LWORK .GE. DBLE (RADIX (0.0D+0 ))** DIGITS (0.0D+0 ) ) THEN
78
+ * If LWORK can't be represented exactly in double precision
79
+ DROUNDUP_LWORK = LWORK * ( 1.0D+0 + DLAMCH(' EPS' ) )
80
+ ENDIF
81
+ *
73
82
RETURN
74
83
*
75
84
* End of DROUNDUP_LWORK
Original file line number Diff line number Diff line change @@ -67,12 +67,21 @@ REAL FUNCTION SROUNDUP_LWORK( LWORK )
67
67
* =====================================================================
68
68
* ..
69
69
* .. External Functions ..
70
- REAL SLAMCH
71
- EXTERNAL SLAMCH
70
+ REAL SLAMCH
71
+ EXTERNAL SLAMCH
72
+ * ..
73
+ * .. Intrinsic Functions ..
74
+ INTRINSIC DIGITS, RADIX
72
75
* ..
73
76
* .. Executable Statements ..
74
77
* ..
75
- SROUNDUP_LWORK = LWORK * ( 1 + SLAMCH(' EPS' ) )
78
+ SROUNDUP_LWORK = LWORK
79
+ *
80
+ IF ( SROUNDUP_LWORK .GE. REAL (RADIX (0.0E+0 ))** DIGITS (0.0E+0 ) ) THEN
81
+ * If LWORK can't be represented exactly in single precision
82
+ SROUNDUP_LWORK = LWORK * ( 1.0E+0 + SLAMCH(' EPS' ) )
83
+ ENDIF
84
+ *
76
85
RETURN
77
86
*
78
87
* End of SROUNDUP_LWORK
You can’t perform that action at this time.
0 commit comments