@@ -326,12 +326,13 @@ contains
326326 #:endfor
327327
328328 #:for k1, t1 in INT_KINDS_TYPES
329+ #:set k2, t2 = REAL_KINDS[-1], REAL_TYPES[-1]
329330 impure elemental function l_gamma_${t1[0]}$${k1}$(z) result(res)
330331 !
331332 ! Logarithm of gamma function for integer input
332333 !
333334 ${t1}$, intent(in) :: z
334- real :: res
335+ ${k2}$ :: res
335336 ${t1}$ :: i
336337 ${t1}$, parameter :: zero = 0_${k1}$, one = 1_${k1}$, two = 2_${k1}$
337338
@@ -350,7 +351,7 @@ contains
350351
351352 do i = one, z - one
352353
353- res = res + log(real(i))
354+ res = res + log(real(i,${k2}$ ))
354355
355356 end do
356357
@@ -512,14 +513,15 @@ contains
512513
513514
514515 #:for k1, t1 in INT_KINDS_TYPES
516+ #:set k2, t2 = REAL_KINDS[-2], REAL_TYPES[-2]
515517 impure elemental function l_factorial_${t1[0]}$${k1}$(n) result(res)
516518 !
517519 ! Log(n!)
518520 !
519521 ${t1}$, intent(in) :: n
520- real(dp) :: res
522+ ${t2}$ :: res
521523 ${t1}$, parameter :: zero = 0_${k1}$, one = 1_${k1}$, two = 2_${k1}$
522- real(dp) , parameter :: zero_dp = 0.0_dp
524+ ${t2}$ , parameter :: zero_${k2}$ = 0.0_${k2}$, one_${k2}$ = 1.0_${k2}$
523525
524526 if(n < zero) call error_stop("Error(l_factorial): Logarithm of" &
525527 //" factorial function argument must be non-negative")
@@ -528,15 +530,15 @@ contains
528530
529531 case (zero)
530532
531- res = zero_dp
533+ res = zero_${k2}$
532534
533535 case (one)
534536
535- res = zero_dp
537+ res = zero_${k2}$
536538
537539 case (two : )
538540
539- res = l_gamma(n + 1, 1.0_dp )
541+ res = l_gamma(n + 1, one_${k2}$ )
540542
541543 end select
542544 end function l_factorial_${t1[0]}$${k1}$
0 commit comments