1!PR fortran/32242 2! { dg-do compile } 3! { dg-options "-Wreturn-type" } 4 5MODULE kahan_sum 6 INTEGER, PARAMETER :: dp=KIND(0.0D0) 7 INTERFACE accurate_sum 8 MODULE PROCEDURE kahan_sum_d1, kahan_sum_z1 9 END INTERFACE accurate_sum 10 TYPE pw_grid_type 11 REAL (KIND=dp), DIMENSION ( : ), POINTER :: gsq 12 END TYPE pw_grid_type 13 TYPE pw_type 14 REAL (KIND=dp), DIMENSION ( : ), POINTER :: cr 15 COMPLEX (KIND=dp), DIMENSION ( : ), POINTER :: cc 16 TYPE ( pw_grid_type ), POINTER :: pw_grid 17 END TYPE pw_type 18CONTAINS 19 FUNCTION kahan_sum_d1(array,mask) RESULT(ks) ! { dg-warning "not set" } 20 REAL(KIND=dp), DIMENSION(:), INTENT(IN) :: array 21 LOGICAL, DIMENSION(:), INTENT(IN), & 22 OPTIONAL :: mask 23 REAL(KIND=dp) :: ks 24 END FUNCTION kahan_sum_d1 25 FUNCTION kahan_sum_z1(array,mask) RESULT(ks) ! { dg-warning "not set" } 26 COMPLEX(KIND=dp), DIMENSION(:), & 27 INTENT(IN) :: array 28 LOGICAL, DIMENSION(:), INTENT(IN), & 29 OPTIONAL :: mask 30 COMPLEX(KIND=dp) :: ks 31 END FUNCTION kahan_sum_z1 32 33FUNCTION pw_integral_a2b ( pw1, pw2 ) RESULT ( integral_value ) 34 TYPE(pw_type), INTENT(IN) :: pw1, pw2 35 REAL(KIND=dp) :: integral_value 36 integral_value = accurate_sum ( REAL ( CONJG ( pw1 % cc ( : ) ) & 37 * pw2 % cc ( : ) ,KIND=dp) * pw1 % pw_grid % gsq ( : ) ) 38END FUNCTION pw_integral_a2b 39END MODULE 40