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() :
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 ?
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)
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
Partager