FLAGON is an open source library/middleware for using GPUs from Fortran-9X, without necessarily knowing too much C or CUDA.
It provides a Fortran Module (similar to a class in C++) that provides variables that are pointers to device variables on the GPU. Several supporting functions are available for data transfer, for manipulating variables on the device, as are simple interfaces to the CUBLAS, CUFFT librariers. Additional functionality is provided by functions that are written in CU, and can be called. Several such functions are available. The CUDPP library is also incorporated.
Flagon has been used to develop relatively large pieces of scientific computing code on the GPU (Fast Multipole Methods on the GPU, plasma turbulence simulations), under both Windows and Linux.
Caveat: It has only been tested under Intel Fortran 9 and 10. There is no reason why it should not work under other Fortran compilers, but name mangling issues between the C++ compiler, nvcc and the fortran compiler are issues. This is one area where the project can use help.
A longer introduction can be obtained here.
FLAGON is open source and provided under LGPL and can be downloaded from sourceforge.
CUBLAS, CUFFT, and CUDPP are provided with their own licenses.
flagon_use.bmp (2.25 MB)