Skip to content

Commit f12515a

Browse files
RoundUp functions now always returns an integer
1 parent a620672 commit f12515a

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

INSTALL/droundup_lwork.f

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,21 @@ DOUBLE PRECISION FUNCTION DROUNDUP_LWORK( LWORK )
6464
* =====================================================================
6565
* ..
6666
* .. External Functions ..
67-
DOUBLE PRECISION DLAMCH
68-
EXTERNAL DLAMCH
67+
DOUBLE PRECISION DLAMCH
68+
EXTERNAL DLAMCH
69+
* ..
70+
* .. Intrinsic Functions ..
71+
INTRINSIC DIGITS, RADIX
6972
* ..
7073
* .. Executable Statements ..
7174
* ..
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+
*
7382
RETURN
7483
*
7584
* End of DROUNDUP_LWORK

INSTALL/sroundup_lwork.f

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,21 @@ REAL FUNCTION SROUNDUP_LWORK( LWORK )
6767
* =====================================================================
6868
* ..
6969
* .. External Functions ..
70-
REAL SLAMCH
71-
EXTERNAL SLAMCH
70+
REAL SLAMCH
71+
EXTERNAL SLAMCH
72+
* ..
73+
* .. Intrinsic Functions ..
74+
INTRINSIC DIGITS, RADIX
7275
* ..
7376
* .. Executable Statements ..
7477
* ..
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+
*
7685
RETURN
7786
*
7887
* End of SROUNDUP_LWORK

0 commit comments

Comments
 (0)