Daniele1984
28-08-2007, 16:02
Ho creato un piccolo programma in fortran per un esercizio che devo svolgere.
All'interno del programma viene eseguito il seguente ciclo do:
do i=1,n
d(i)=(1.0)/A(i)
end do
Questo ciclo mi permette di eseguire il rapporto 1/ai dove ai sono le componenti di A(i). Le conponenti di A(i) sono numeri reali in doppia precisione (real*8) e a seguito della compilazione del programma (con il compilatore force 2) ottengo il messaggio:
"promotion may not give desired precision: real const (1.0)/real*8 A"
Modificando il codice come segue invece:
do i=1,n
d(i)=(1.d0)/A(i)
end do
il messaggio non si presenta.
Volevo capire esattamente il significato di quella d e cioè se in pratica l'uso della d indica un numero reale al posto di un numero intero.
Scusate per la lunghezza del post. Grazie a chi vorrà rispondere.
All'interno del programma viene eseguito il seguente ciclo do:
do i=1,n
d(i)=(1.0)/A(i)
end do
Questo ciclo mi permette di eseguire il rapporto 1/ai dove ai sono le componenti di A(i). Le conponenti di A(i) sono numeri reali in doppia precisione (real*8) e a seguito della compilazione del programma (con il compilatore force 2) ottengo il messaggio:
"promotion may not give desired precision: real const (1.0)/real*8 A"
Modificando il codice come segue invece:
do i=1,n
d(i)=(1.d0)/A(i)
end do
il messaggio non si presenta.
Volevo capire esattamente il significato di quella d e cioè se in pratica l'uso della d indica un numero reale al posto di un numero intero.
Scusate per la lunghezza del post. Grazie a chi vorrà rispondere.