pure function negScaleFunction(hdiag) result(Si) real(dp), intent(in) :: hdiag real(dp) :: Si unused_var(hdiag) Si = -1 end function negScaleFunction