Bonjour,
j'ai récupéré un projet en fortran 77, que je compile avec gfortran (linux). Je voudrais (par curiosité intellectuelle et aussi car le débogueur est parait-il meilleur) le compiler avec ifort.
Mais voilà qu'avec ifort j'ai une erreur à cause d'une fonction rand() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
utils/UTR.F(62): error #6404: This name does not have a type, and must have an explicit type.   [RAND]
      x1 = rand(s)
J'ai lu que le fortran 77 n'avait pas de standard en ce qui concerne la génération de pseudo-aléatoire, je pense donc que ça vient de là : confirmez-vous et que me conseilleriez-vous ?
Merci !

ps : voici le code de la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
      DOUBLE PRECISION FUNCTION rn()
      IMPLICIT NONE
      DOUBLE PRECISION x1, x2, PI2, EPS
      PARAMETER ( PI2 = 6.283185307d0, EPS=1.d-15  )
      INTEGER init_seed_linux, s   
      EXTERNAL init_seed_linux
      INTRINSIC SQRT, LOG, COS
 
      s = init_seed()           
      x1 = rand(s)
      DO WHILE (x1 .LT. EPS)
         x1 = rand()
      ENDDO
      x2 = rand()
      rn = SQRT(-2.0*LOG(x1))*COS(PI2*x2)
      RETURN
      END