Code::Blocks IDE for Fortran
Code::Blocks is a free, cross platform Integrated Development Environment (IDE) oriented towards the C/C++ language. You can find more information at its home page (www.codeblocks.org).
I want to make Code::Blocks more useful for Fortran programmers. I have added some features which are not present in the official Code::Blocks distribution. First of all, I am developing a plugin called FortranProject. Additionally I have added the support of some Fortran compilers and some more. With these addons the Code::Blocks can serve as a good Fortran IDE. Pre-built binaries available for Windows and Linux.
A new release candidate is out. Just two small bugs were fixed in building of code-completion list.
A new release candidate is out. I would call it “a bug fixing release”. Since v1.1 a few bugs in FortranProject plugin were found and fixed. Symbols browser displays now type of variables. Call-tips is shown for arrays too. This release is based on C::B 13.12 source code.
From www.codeblocks.org : “More stable, feature-rich and major compiler enhancement, the new Code::Blocks release has arrived.” It is about Code::Blocks 13.12 . This time C::B includes FortranProject plugin on Windows too (but not on Linux). C::B comes with an installer and GFortran too. Therefore it may be the easiest way for new users to start programming with Fortran. You can download C::B from www.codeblocks.org/downloads .
A new version of Code::Blocks for Fortran is released.
It has the same features as RC2, so if you feel comfortable with 1.1RC2, you don’t need to update to the newer version. But if you are using v1.0, try new one. As always: your feedback is welcome.
A new 1.1RC2 is out. There was made attempt to improve debugging Fortran code using GDB. “A temporary workaround” (described here and here) was implemented in GDB debugger plugin which allows read values of allocatable and assumed-shape arrays. If you like to view values of such array, you should set “Watch as array” and “Pointer-like” in a watch properties dialog (see screen-shots) for this variable. I consider this solution as temporal and I hope improvements in GDB itself in the future.
A new release candidate is out. There are quite a lot of changes in the core of C::B in this release (thanks to Code::Blocks team). Changes/improvements in this release:
Code-completion list shows types of variables. You can enable/disable this feature on FortranProject settings dialog.
Brace completion now works for Fortran too. You can enable/disable this feature on “Settings->Editor settings” dialog (“General settings” page).
Abbreviations (“Settings->Editor->Abbreviations”) now can be defined for every programming language separately. C::B comes with several simple abbreviations for Fortran, but you can change it according to your preference.
There were made changes in folding of Fortran files. Particularly in how “if-elseif-endif” and “select case” constructs are folded. Please report any problems related to folding of Fortran files to me.
There was implemented simple “tab-to-space” refactoring (“Fortran->Tab2space”). Some of C::B users have to deal with old tab-based non-standard Fortran source files, in which tabs are used instead of spaces. This tool can be used to make Fortran files standard.
C::B team released a new version of C::B, 12.11. While this version comes without FP plugin, it is possible to install it manually. A precompiled version of FP plugin for Windows or source code can be downloaded from Downloads page.
C::B for Fortran IDE 1.0 is out. Just a few minor bugs were fixed since the RC1.
A new release candidate is out. This time I switched a version number to 1.0rc1. Using ‘1.0’ I wanted to indicate, that C::B with FP is not in an ‘alpha’ stage, but rather a full-featured IDE. New in this RC1:
Part of the parsing work was uploaded to the secondary thread. A Fortran code now is parsed directly when an user is making changes in the editor. As a result the code-completion list is always kept updated. The Symbol browser is updated on ‘save’ only (as it was always).
Improved call-tips for generic procedures. The call-tip for every concrete implementation of the generic procedure is showed in a separate page (window). You can switch between the pages using Ctrl+Up and Ctrl+Down keyboard shortcuts (menu: Fortran->’Next call tip’ or ‘Prev call tip’) when such call-tip is showed. (look at screenshot bellow)
Added code-completion support for keywords from OpenMP and OpenACC. If you are typing after ‘!$omp’ or ‘!$acc’, CC list will include keywords from corresponding standard.
Added code-completion support for items from Fortran intrinsic modules: iso_c_binding, iso_fortran_env etc.
Implemented ‘Change case’ refactoring (Fortran->Cange case). Using it the user can change the character case for Fortran keywords and/or for other names in the code.
Added code-completion support for ‘Select type’ construct (Fortran 2003 feature).
Other useful improvements in core of C::B and FormatFortranIndent plugin.
Editor with Fortran syntax highlighting (fixed and free form).
Compilation of Fortran project directly from IDE. FortranProject plugin should care about Fortran file dependencies. Alternatively you can use your supplied makefile.
Possibility to jump directly to the code line with an error (currently the support of gfortran, g95, Intel Fortran, Oracle Solaris Studio Fortran and PGI Fortran is implemented).
Symbols browser with defined program units (functions, subroutines, modules etc.) in your project.
Possibility to jump to code line with subroutine/function definition directly from editor (right click on the name and select "Jump to: 'name'") or from the symbols browser (double click on the name) or using menu 'Search->Jump to declaration'.
Program debugging using GNU GDB or IDB (Intel's debugger on Linux).
Completion of names when you type or when you press Ctrl+Space (you can change the key combinations in Editor's Settings). The support for subroutine/function names, the names of variables, the components of derived types and the type-bound procedures is implemented.
Call-tips with subroutine/function argument list. Appears automatically or when you press Ctrl+Shift+Space.
Appearance of tooltips when you hold mouse on variable or name of subroutine.
Jump back and forth again to the edited file or the marked line (use toolbar or Alt+arrow).
Possibility to generate a Makefile (Tools->Fortran->Genarate Makefile). This feature should generate a working makefile for the active target in simple cases. Or the generated makefile can be used as a draft in more sophisticated projects.
Code::Blocks (and FortranProject plugin) is distributed at GPLv3.
Just extract archive in your favored directory. To launch Code::Blocks run codeblocks.exe (on Win) or codeblocks_run.sh (on Linux). If you have another Code::Blocks distribution on your system you may want to start Code::Blocks as a portable app by executing startup script codeblocks_portable.bat (codeblocks_run_portable.sh). Code::Blocks saves all settings in installation directory if you launch program using codeblocks_portable.bat (codeblocks_run_portable.sh).
To be able to compile your Fortran files you should have an installed Fortran compiler (gfortran, g95 or another one). Windows users should install MinGW on a system first. I would suggest to install MinGW from tdm-gcc.tdragon.net. If you are going to use gfortran, don't forget to mark it during installation. It may be useful to read gfortran-wiki page. You may find useful to look at short tutorial posted to CBFortran Google group: how to setup Fortran with C::B on Windows.
Linux users should have 'gtk2' and 'xterm' installed on their system. Linux versions were tested on several different distributions.
Setup of compiler's installation directory
You should read Notes page.
You can download the Code::Blocks user manual from www.codeblocks.org/user-manual .
Project has page on Google Code. There you can report bugs, send your patches, download latest code from svn.
My name is Darius Markauskas. I develop for this project on my spare time.
You can read here about my main work.
Have questions, suggestions? Found a bug?