MODULE fminln
	USE nrtype; USE nrutil, ONLY : nrerror
	REAL(SP), DIMENSION(:), POINTER :: fmin_fvecp
CONTAINS
!BL
	FUNCTION fmin(x)
	IMPLICIT NONE
	REAL(SP), DIMENSION(:), INTENT(IN) :: x
	REAL(SP) :: fmin
	INTERFACE
		FUNCTION funcv(x)
		USE nrtype
		IMPLICIT NONE
		REAL(SP), DIMENSION(:), INTENT(IN) :: x
		REAL(SP), DIMENSION(size(x)) :: funcv
		END FUNCTION funcv
	END INTERFACE
	if (.not. associated(fmin_fvecp)) call &
		nrerror('fmin: problem with pointer for returned values')
	fmin_fvecp=funcv(x)
	fmin=0.5_sp*dot_product(fmin_fvecp,fmin_fvecp)
	END FUNCTION fmin
END MODULE fminln