Building C::B for Fortran from source files

In some cases (for example there is no binaries for your system) you may want to build C::B for Fortran from source files. To do it, I would recommend you first to build official C::B on your system. How to do it, you can find on the C::B wiki site ( When you have the compiled official C::B running on your system, you can download C::B for Fortran source file archive. Some files in archive have small changes compared to official sources. Unarchive downloaded file and build C::B. You should use your running C::B as is described on Wiki for Windows OS (here). If your OS is not Windows, then use 'CodeBlocks-unix.workspace' or 'CodeBlocks-unix.cbp' and 'ContribPlugins-unix.workspace' and 'update' files instead. Because you have compiled the official C::B, you should have all the required dependencies and the compilation procedure should run without problems. FortranProject plugin comes between other contrib plugins ("<C::B_src_dir>/src/plugins/contrib/FortranProject") and is compiled with other contrib plugins. If not, open 'FortranProject_cbsvn-unix.cbp' C::B project file (if you are on Linux) or 'FortranProject_cbsvn.cbp' (if you are on Windows) and compile it. Run 'update' (or 'update.bat') once more.

Setup of compiler's installation directory (gfortran users)

Windows users may need to help Code::Blocks to find MinGW and Fortran compiler on their system. Short instruction:

  1. In Code::Blocks open "Settings -> Compiler..." dialog. Find "GNU GCC Compiler". Open "Toolchain executables" tab. Fill "Compiller's installation directory" text-box (in my case it is C:\MinGW32).
  2. For gfortran compiler. Find "GNU Fortran Compiler". Open "Toolchain executables" tab. Fill "Compiller's installation directory" text-box (in my case it is C:\MinGW32) and "Program Files" text-boxes. Just remember, that programs on Windows end with ".exe". So your compiler name should end with ".exe" too.

The same procedure is applicable for other compilers/OS.

How to setup Intel Fortran compiler on Windows

If you are going to use commercial Intel Fortran compiler on Windows, first you should help C::B to find compiler executable file (Note: I said "compiler", not "debugger". There is no support of the debugger for this compiler on Windows). To do so, in C::B go to "Settings->Compiler”, select Intel Fortran Compiler for Windows. Go to “Toolchain executables” tab. Here you should fill “Compiler’s installation directory” text field. For example C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64. "C compiler", "C++ compiler" and "Linker for dynamic libs" text fields should be filled with "ifort.exe". Second problem: environment variables. As is recommended by Intel in documentation, to setup environment variables it is required to execute ‘compilervars.bat’ file in cmd window. You can create the "codeblocks_run.bat" file in the Code::Blocks directory with following content:

@call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\compilervars.bat" intel64
@start codeblocks.exe``

Doubleclicking on "codeblocks_run.bat" will start C::B.

Note: to be able to run your compiled program from inside of C::B you should install MinGW on your system and setup GCC compiler’s installation directory on "Settings->Compiler”, “Toolchain executables” tab.

About navigation in Fortran files

FortranProject plugin adds possibility to jump to the source line with procedure declaration. You can do it from Symbols browser by double clicking on procedure name or from the editor’s window by right-clicking on procedure name and selecting ‘Jump to procedure-name’ item or using menu item 'Fortran->Jump->Jump to declaration'.

How to come back after the jump? There are at least three possibilities. First, using Browse Tracker plugin: ‘View->Browse Tracker->Backward Ed’ (or Alt-LEFT shortcut). It works well if your procedure was defined in another file. But if not, this shortcut is not useful. Second possibility is to use ‘View->Jump->Jump Back’ (no shortcut is defined by default, but you can assign new one in ‘Setting->Editor->Keybord shortcuts’). But this option tracks more than just your jumps... Third possibility is to use FortranProject own toolbar in which your jump’s history is tracked. Using green arrows on toolbar you can navigate through your jump’s history back and forward again.

BindTo tool

BindTo (Fortran->Bind To…) automatically generates a wrapping for Fortran code which enables call of Fortran from the C language and can generate Cython files which enables call of Fortran from Python language. Read BindTo Users Guide

MPI in Code::Blocks

If you are using MPI, you can build your code from inside of C::B. You just need to adjust your compiler settings to use "mpif90" compiler (Settings->Compiler).

You may like to have code-completion and call-tips for MPI procedures (it is really useful!). To make it work, you can download a project , and open it in C::B together with your project. It's all.

Screenshots with MPI in C::B:

/images/cb_mpi_compiler_settings.png /images/cb_cc_mpi.png /images/cb_calltip_mpi.png

GTK-Fortran with Code::Blocks

Gtk+ ( is a cross-platform toolkit for creating Graphical User Interfaces (GUI). Gtk-fortran enables creation of GUI from Fortran using this toolkit. I tried to build few gtk-fortran examples on Windows 7 64bit. This is my instructions / notes how to use gtk-fortran on Code::Blocks. I hope it will be useful for users of C::B. (read full story on Gtk-Fortran )

MathGL + GTK + Fortran

MathGL library can be used for visualisation of calculation results directly in GTK window. Examples, which show how to use this library, are described in MathGL + GTK + Fortran.

Smart Code-Completion feature

The aim is to make code-completion (CC) list shorter. This is achieved by introducing a simple logic. For example, after ‘call’ statement only subroutine names can be appended to the CC list while function names in CC list is added only after symbols “ = ( . , + - / * ” (with some exceptions). In most cases this logic makes its job and the programming with Code::Blocks is even more pleasing. Unfortunately the used filters can be too strict in some cases. As a result some symbols can be not included in CC list. You can always enable/disable Smart CC in FortranProject settings dialog (Settings->Editor->FortranProject).

For Smart CC to work it is required to know which Fortran keywords are intrinsic function names, which are intrinsic subroutine names, and which are other keywords. To make it possible a file fortran_procedures.f90 was created in the FortranProject images directory (directory_with_C::B_executable/share/CodeBlocks/images/fortranproject). This file contains pseudo-interface blocks for standard intrinsic procedures (together with a short description) and list of other keywords, which can be included in CC list. If some keyword is not present in this file, it will be not included in CC list. Mentioned interface blocks for Fortran intrinsic procedures make possible to have intrinsic procedures not only in CC list, but add possibility to have calltips and short descriptions in Fortran info window for intrinsic procedures.