Bonjour tout le monde,

Je rencontre un problème pour calculer une nombre complexe en Fortran.
Le code source est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
program ProgComplex
  implicit none
  complex(8) :: NbrComp
  NbrComp  =  (5.0,8.0)
  write(6,"('ProgComplex: real(NbrComp) = ',f5.2,3x,'aimag(NbrComp) = ',f5.2)") real(NbrComp), aimag(NbrComp)
  NbrComp  =  CMPLX((-1.0)**(2.25))
  write(6,"('ProgComplex: real(NbrComp) = ',f5.2,3x,'aimag(NbrComp) = ',f5.2)") real(NbrComp), aimag(NbrComp)
end program ProgComplex
et il retourne à l'écran les 2 lignes suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
ProgComplex: real(NbrComp) =  5.00   aimag(NbrComp) =  8.00
ProgComplex: real(NbrComp) =   NaN   aimag(NbrComp) =  0.00
La 1ère instruction 'write' imprime à l'écran la partie réelle et imaginaire de x = 5 + 8i.
On voit que les valeurs retournées correspondent bien au nombre défini.

Le 2ème nombre défini correspond à x = (-1)^(2.25).
En utilisant, Matlab, je trouve :

x = (-1)^(2.25) = 0.7071 + 0.7071i

Je n'arrive pas à retrouver ce résultat en Fortran.
En effet, le code ci-dessus me retourne un "NaN" pour le partie réelle et 0.0 pour la partie imaginaire.

Où se trouve mon erreur ?
Comment puis-je calculer un nombre complexe en Fortran ?
Merci d'avance.