Compiler du Fortran sous Windows

Compiler du Fortran sous Windows :

Situation :
- Windows XP 32-bit
– 2 versions MATLAB R2011b et R2012b

Pour faire simple , sans le support technique de MathWorks, il est impossible de compiler par exemple l’exemple timestwo.F ([matlabroot ‘\extern\examples\refbook\timestwo.F’]). Donc un grand merci au gars qui m’a aidé!! … entre nous c’est un bug MATLAB qui est à la cause de tout ça ;)

Prérequis :
Avoir le compilateur Fortran qui va bien en R2011b et R2012b:
Intel Visual Fortran Composer XE 2011

Information qu’on retrouve sur le site du support :
compilateur 12b supporté
compilateur 11b supporté

La bonne nouvelle financière c’est qu’avoir Microsoft Windows SDK 7.1 est suffisant .
Une fois la trial téléchargée sur le site d’Intel , on peut commencer à mexer.

Voilà ce qui arrive en faisant un mex -setup:

mex -setup

Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see

http://www.mathworks.com/support/compilers/R2012b/win32.html

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:
[1] Lcc-win32 C 2.4.1 in F:\R2012b\sys\lcc
[2] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files\Microsoft Visual Studio 10.0
[3] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8

[0] None

votre compilateur Intel n’apparait pas

Donc vous recommencez et cette fois ci à la question Would you like mex to locate installed compilers [y]/n? , vous répondez non .

A ce moment là apparait la liste des compilateurs supportés en R2012b:

Select a compiler:
[1] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker)
[2] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker)
[3] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker)
[4] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[5] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker)
[6] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker)
[7] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker)
[8] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker)
[9] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[10] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
[11] Lcc-win32 C 2.4.1
[12] Microsoft Software Development Kit (SDK) 7.1
[13] Microsoft Visual C++ 2005 SP1
[14] Microsoft Visual C++ 2008 SP1
[15] Microsoft Visual C++ 2010
[16] Open WATCOM C++

[0] None

Vous choisissez donc le 5 :

Compiler: 5

Warning: The default location for Intel Visual Fortran compiler is:
« C:\Program Files (x86)\Intel\ComposerXE-2011″
but either that directory does not exist or the configuration
is invalid.

Use C:\Program Files (x86)\Intel\ComposerXE-2011 anyway [y]/n? y

Please verify your choices:

Compiler: Intel Visual Fortran 12
Location: C:\Program Files (x86)\Intel\ComposerXE-2011

Are these correct [y]/n? y

Trying to update options file: D:\Documents and Settings\quefaurs\Application Data\MathWorks\MATLAB\R2012b\mexopts.bat
From template: F:\R2012b\bin\win32\mexopts\intelf12mssdk71opts.bat

Done . . .

Donc déjà j’aurais du le sentir que ça n’allait pas marcher vu le warning précédent:

Warning: The default location for Intel Visual Fortran compiler is:
« C:\Program Files (x86)\Intel\ComposerXE-2011″
but either that directory does not exist or the configuration
is invalid.

Et en effet mex timestwo.F me sort :

Could not find the compiler « ifort » on the DOS path

Donc on recommence les étapes précédentes et cette fois ci à la question:
Use C:\Program Files (x86)\Intel\ComposerXE-2011 anyway [y]/n?
on répond non et on met le chemin exact où ma variable d’environnement PATH me l’indique c’est à dire:
C:\Program Files\Intel\Composer XE 2011 SP1

Cette fois ci je compile avec succès du Fortran. En revanche à chaque fois que je redémarre la 12b , je dois me retaper toutes les étapes précédentes :( . Donc pour que MATLAB comprenne que vous avez bel et bien un compilateur Fortran installé il faut demander à MathWorks le fichier intelf12mssdk71opts.stp . En voici un extrait :

#===================================================================
# intelf12mssdk71opts: Define where the Intel Visual Fortran 12.0
# compiler is installed. Also sets language, version, and
# environment variables.
#===================================================================

Ensuite il faut copier ce fichier dans $MATLAB\bin\win32\mexopts\ (ce qui revient à écraser l’existant)

Cette fois-ci des que vous taperez mex -setup, le compilateur Fortran apparaitra:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:
[1] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker) in C:\Program Files\Intel\Composer XE 2011 SP1\
[2] Lcc-win32 C 2.4.1 in F:\R2012b\sys\lcc
[3] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files\Microsoft Visual Studio 10.0
[4] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8

[0] None

Compiler:

Gagné!

Pour que ça puisse marcher aussi en R2011b, il vous faudra copier les 2 fichiers intelf12mssdk71opts.bat et intelf12mssdk71opts.scp de la R2012b dans le répertoire 11b équivalent : $MATLAB\bin\win32\mexopts\

Là franchement il faut avouer que compiler du Fortran n’est pas trivial du tout quand l’installation à la base est erronée. Enfin bon avec tout ça maintenant plus de problème.

Liens utiles:
Why can’t I use Intel Fortran Composer XE 2011 compiler with Microsoft Software Development Kit 7.1 linker for MEX-files in R2011b? bug report qui devrait être remis à jour suite à mon Service Request .

Télécharger le compilateur Fortran Studio XE 2013 pour Windows

Une réflexion au sujet de « Compiler du Fortran sous Windows »

  1. Ping : Compiler du Fortran sous Windows (part2) | MATLAB pour les geeks

Laisser un commentaire