ForK Library

Fortran Kriging (ForK) Library


Library for Building Kriging Surfaces in Fortran 90




  1. Generate Training Data ( \(X,Y,dY\))
  2. Call buildkriging (or buildkrigingGEK when gradient values are used) to determine Gaussian process parameters (referred to as hyperparameters) and process the data (denoted as \(V\))
  3. Once model is constructed, predictions can be made using the following:
  4. Optimization can also be performed on the Kriging Surface:




The process of creating a Kriging model based on function values from an analytic test function (defined in toyfunc) is found in krigingwrapper.

Creating a gradient-enhanced kriging model based on function and derivative values of an analytic test function is found in krigingwrapperGEK.


  1. Manually edit Makefile to specify compiler and compilation flags
    • If the pre-processing flag "HAVELAPACK" is supplied, LAPACK is used so make sure the appropriate library is linked during compilation.
    • For parallelism, openmp is used within the pattern search used to determine the hyperparameters, as such the sequential version of LAPACK should be used
    • The flag "-mkl=sequential" works for the Intel Fortran compiler
  2. Use "make" to compile the library, named "kriginglib.a"
  3. Link the library "kriginglib.a" to your executable (as well as LAPACK and openmp if appropriate)


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <>.

Copyright (C) 2012 Brian A. Lockwood

 All Classes Namespaces Files Functions Variables