<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Fortran</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur la programmation en Fortran. Avant de poster -> FAQ Fortran]]></description>
		<language>fr</language>
		<lastBuildDate>Sat, 30 May 2026 15:54:37 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Fortran</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>F90 - problème compréhension fonction retournant un array</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179427&amp;goto=newpost</link>
			<pubDate>Tue, 23 Sep 2025 09:00:09 GMT</pubDate>
			<description>Bonjour, 
 
Je suis assez...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je suis assez mauvais en Fortran. Je cherche à coder une fonction qui retourne un array, sans succès. J'ai bien entendu cherché des exemples sur internet, mais là encore sans succès. Ci-dessous l'un de ces exemples qui est donc sensé fonctionner :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">real</span> <span style="color: #0000ff;">function</span> times2<span class="br0">&#40;</span>x,n<span class="br0">&#41;</span> <span style="color: #0000ff;">result</span><span class="br0">&#40;</span>y<span class="br0">&#41;</span>
    <span style="color: #0000ff;">real</span>, <span style="color: #0000ff;">intent</span><span class="br0">&#40;</span><span style="color: #0000ff;">in</span><span class="br0">&#41;</span> :: x<span class="br0">&#40;</span>n<span class="br0">&#41;</span>
    <span style="color: #0000ff;">integer</span>, <span style="color: #0000ff;">intent</span><span class="br0">&#40;</span><span style="color: #0000ff;">in</span><span class="br0">&#41;</span> :: n
    <span style="color: #0000ff;">real</span>  :: y<span class="br0">&#40;</span>n<span class="br0">&#41;</span>
&nbsp;
    y = <span style="color: #cc66cc;">2</span>*x
<span style="color: #0000ff;">end</span> <span style="color: #0000ff;">function</span></pre></td></tr></table></code><hr />
</div>Je me perds dans les différentes façons de déclarer les variables et les fonctions, alors que peut-être le soucis est ailleurs. Je code donc en Fortran 90. Mon compilateur est Intel Fortran XE 14.0.4.237. Le fichier de debug généré est le suivant :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
&nbsp;
Compiling with Intel<span class="br0">&#40;</span>R<span class="br0">&#41;</span> Visual Fortran Compiler XE <span style="color: #cc66cc;">14.0</span>.<span style="color: #cc66cc;">4.237</span> <span class="br0">&#91;</span>IA-<span style="color: #cc66cc;">32</span><span class="br0">&#93;</span>...
ifort /nologo /debug:full /Od /warn:interfaces /<span style="color: #0000ff;">module</span>:<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\\</span>&quot;</span> /object:<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\\</span>&quot;</span> /Fd<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\v</span>c100.pdb&quot;</span> /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c /Qvc10 /Qlocation,link,<span style="color: #FF0000;">&quot;c:<span style="color: #800000;">\P</span>rogram Files (x86)<span style="color: #800000;">\M</span>icrosoft Visual Studio 10.0<span style="color: #800000;">\I</span>ntel Fortran<span style="color: #800000;">\M</span>icrosoft Files<span style="color: #800000;">\V</span>C<span style="color: #800000;">\\</span>bin&quot;</span> <span style="color: #FF0000;">&quot;C:<span style="color: #800000;">\U</span>sers<span style="color: #800000;">\c</span>c<span style="color: #800000;">\D</span>ocuments<span style="color: #800000;">\R</span>etD<span style="color: #800000;">\D</span>P_Fortran<span style="color: #800000;">\T</span>ests_Math<span style="color: #800000;">\O</span>perations_matricielles<span style="color: #800000;">\C</span>ode_Source<span style="color: #800000;">\M</span>od_Thruster.f90&quot;</span>
<span style="color: #808080;">C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\Mod_Thruster.f90(55): error #6419: This scalar name is invalid in this context.   [Y]</span>
            <span style="color: #0000ff;">real</span>  :: y<span class="br0">&#40;</span>n<span class="br0">&#41;</span>
---------------------^
<span style="color: #808080;">C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\Mod_Thruster.f90(7): error #6404: This name does not have a type, and must have an explicit type.   [GET_THRUST]</span>
    <span style="color: #0000ff;">public</span> :: get_thrust
--------------^
<span style="color: #808080;">C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\Mod_Thruster.f90(57): error #6366: The shapes of the array expressions do not conform.   [Y]</span>
            y = <span style="color: #cc66cc;">2</span>*x
------------^
compilation aborted for C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\Mod_Thruster.f90 <span class="br0">&#40;</span>code <span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>
&nbsp;
ifort /nologo /debug:full /Od /warn:interfaces /<span style="color: #0000ff;">module</span>:<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\\</span>&quot;</span> /object:<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\\</span>&quot;</span> /Fd<span style="color: #FF0000;">&quot;Debug<span style="color: #800000;">\v</span>c100.pdb&quot;</span> /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c /Qvc10 /Qlocation,link,<span style="color: #FF0000;">&quot;c:<span style="color: #800000;">\P</span>rogram Files (x86)<span style="color: #800000;">\M</span>icrosoft Visual Studio 10.0<span style="color: #800000;">\I</span>ntel Fortran<span style="color: #800000;">\M</span>icrosoft Files<span style="color: #800000;">\V</span>C<span style="color: #800000;">\\</span>bin&quot;</span> <span style="color: #FF0000;">&quot;C:<span style="color: #800000;">\U</span>sers<span style="color: #800000;">\c</span>c<span style="color: #800000;">\D</span>ocuments<span style="color: #800000;">\R</span>etD<span style="color: #800000;">\D</span>P_Fortran<span style="color: #800000;">\T</span>ests_Math<span style="color: #800000;">\O</span>perations_matricielles<span style="color: #800000;">\C</span>ode_Source<span style="color: #800000;">\d</span>pl_dll.f90&quot;</span>
<span style="color: #808080;">C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\dpl_dll.f90(138): error #5082: Syntax error, found ',' when expecting one of: &lt;END-OF-STATEMENT&gt; ;</span>
            thrust_arr<span class="br0">&#40;</span><span style="color: #cc66cc;">1</span><span class="br0">&#41;</span> = <span style="color: #cc66cc;">5.0d0</span>, thrust_arr<span class="br0">&#40;</span><span style="color: #cc66cc;">2</span><span class="br0">&#41;</span> = <span style="color: #cc66cc;">11.0d0</span>
---------------------------------^
<span style="color: #808080;">C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\dpl_dll.f90(140): error #6404: This name does not have a type, and must have an explicit type.   [TIMES2]</span>
            res = times2<span class="br0">&#40;</span>thrust_arr, <span style="color: #cc66cc;">3</span><span class="br0">&#41;</span>
------------------^
compilation aborted for C:\Users\cc\Documents\RetD\DP_Fortran\Tests_Math\Operations_matricielles\Code_Source\dpl_dll.f90 <span class="br0">&#40;</span>code <span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>
&nbsp;
&nbsp;
dpl_dll - <span style="color: #cc66cc;">7</span> <span style="color: #0080ff;">error</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>, <span style="color: #cc66cc;">0</span> warning<span class="br0">&#40;</span>s<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div>J'ai essayé un peu tout ce qui me passe par la tête : sans <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><span style="color: #0000ff;">result</span><span class="br0">&#40;</span><span class="br0">&#41;</span></span>, déclarer ou pas le résultat dans la fonction, ajouter le type ou pas devant <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block"><span style="color: #0000ff;">function</span></span>, etc.. <br />
<br />
Est-ce que c'est moi qui déconne ou c'est un problème de compilation ? Sachant que je parviens sans soucis à faire une fonction similaire mais qui renvoi un scalaire à la place.<br />
<br />
J</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f157/general-developpement/algorithme-mathematiques/programmation-parallele-calcul-scientifique-haute-performance-hpc/fortran/">Fortran</category>
			<dc:creator>Julien N</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179427/general-developpement/algorithme-mathematiques/programmation-parallele-calcul-scientifique-haute-performance-hpc/fortran/f90-probleme-comprehension-fonction-retournant-array/</guid>
		</item>
		<item>
			<title>Programmation Orientée Objet - erreur dans le livre de Chapman : Fortran for Scientists and Enginners</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178998&amp;goto=newpost</link>
			<pubDate>Tue, 02 Sep 2025 20:40:34 GMT</pubDate>
			<description>Bonjour, 
 
J’étudie la...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J’étudie la Programmation Orientée Objet (POO) en FORTRAN avec le livre de Stephen J. Chapman, Fortran for Scientists and Engineers, 4ième édition de 2018 (je n’ai pas trouvé d’ouvrages pédagogiques en français).<br />
<br />
J’ai lu pas à pas son chapitre 16, de la page 763 à 836, que j’ai trouvé sur le net à l’adresse suivante <a rel="nofollow" href="https://mega.nz/file/d0VAWDaK#lf3iIsbnhSq6q-Ku123YVP1d0qMJvOM0rkAF--Wnf4U" target="_blank">https://mega.nz/file/d0VAWDaK#lf3iIs...OM0rkAF--Wnf4U</a>. Il est très intéressant (<font size="2"><i>et mériterait d'être traduit en français pour les élèves</i></font>) mais quand je suis arrivé à la section 16.9.3 (page 804) sur la relation entre les objets des super-classes et les objets des sous-classes, j’ai constaté que son programme ne donnait pas les mêmes résultats que ceux obtenus sur mon PC (compilateur Intel) et sur mon Raspberry 500 (compilateur gnu). Mes deux machines donnent le même résultat.<br />
<br />
Je vous joins le listing du programme (<a rel="nofollow" href="https://mega.nz/file/gwUFQazA#Vr7GkB-tprmXZp3EhKP0ijJ2iOF6OTUlfbgMtzhNjyg" target="_blank">https://mega.nz/file/gwUFQazA#Vr7GkB...TUlfbgMtzhNjyg</a>) et je pose deux questions sur les deux problèmes que j’ai rencontrés :<br />
<br />
a) <u>Les sous-classes n’héritent pas des méthodes de la super-classes</u> :<br />
<br />
L’initialisation des données avec les méthodes d’initialisation de la super-classe (<i>employee_class</i>), qui ne figurent pas (données &amp; méthodes) dans les sous-classes (<i>salaried_employee_class</i> et <i>hourly_employee_class</i>), ne permet pas l’affichage de ces données avec les méthodes d’affichage qui sont dans la super-classe, méthodes dont devrait pourtant « hériter » les sous-classes, comme si l’initialisation avait échoué. <font color="#FF0000">Est-ce normal et pourquoi ?</font><br />
<br />
b) <u>La méthode polymorphe de calcule de la paie ne fonctionne pas</u> :<br />
<br />
Stephen Chapman défini ensuite dans cet exemple pédagogique (page 804, figure 16-18) deux super-classes nommées emp1 et emp2. Il fait pointer chacune de ces super-classes sur une des sous-classes précédentes, et là, l’affichage des données avec les méthodes définies dans ces super-classes s’effectue correctement !<br />
En revanche le calcul de la paie, avec les méthodes définies dans les sous-classes (les employés salariés et les employés horaires ne sont pas payés pareils), ne s’effectue pas. L’affichage effectué à partir des pointeurs (les super-classes emp1 et emp2) donne un résultat faux (0€), et même s’il est effectué directement à partir des sous-classes, cela ne marche pas quand même (toujours 0€).<br />
<font color="#FF0000">Sauriez-vous pourquoi ?</font><br />
<br />
Merci de votre aide</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f157/general-developpement/algorithme-mathematiques/programmation-parallele-calcul-scientifique-haute-performance-hpc/fortran/">Fortran</category>
			<dc:creator>latomicien</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178998/general-developpement/algorithme-mathematiques/programmation-parallele-calcul-scientifique-haute-performance-hpc/fortran/programmation-orientee-objet-erreur-livre-chapman-fortran-for-scientists-and-enginners/</guid>
		</item>
	</channel>
</rss>
