Precisão Dupla

Como mencionado, podemos programar em precisão dúpla. Para isto, precisamos alterar um pouco o programa. Abaixo, mostramos a versão de precisão dúpla do codigo acima.

                10 20 30 40 50 60 70 123456789

123456789 123456789 123456789 123456789 123456789 123456789 12

IMPLICIT REAL*8 (A-H,O-Z)
READ(*,*) X
EXACT=DEXP(X)
S=1.D0
EPS=1.D-7
N=0
DSN=1.D0
1 N=N+1
DSN=DSN*X/N
S=S+DSN
IF(DABS(DSN) .GT. EPS*DABS(S)) GO TO 1

ERRO=(S-EXACT)/EXACT

WRITE(*,100) X, EXACT, S,ERRO
STOP
100 FORMAT(F10.4,3E24.15)
END

Na primeira linha, inserimos o comando de declaração, IMPLICIT REAL. Este comando informa a máquina para tratar todas as variáveis que começam letras de A até H e de O até Z como precisão dúpla, mantendo as variáveis inteiras que começam com letras de I até N. Se voce quer a precisão dúpla para inteiros, deve declarar também via

IMPLICIT INTEGER*4 (I,N)

que aumenta o limite de overflow para inteiros.

Quando voce quer especificar apenas algumas variáveis como precisão dúpla, pode usar o comando de declaração,

DOUBLE PRECISION nome1, nome2,.....

Os nomes das funções embutidas devem ser alterados, tipo DEXP, DABS, etc.

Quando utlizar a declaração de precisão dúpla, deve tomar bastante cuidado de todas as variáveis sejam tratadas coerentemente com a declaraçao, em particular, quando comunicar com as funções e subroutinas (ver subsessão para subroutinas).



Prof. Takeshi Kodama


Ultima Alteração: 04 de novembro de 1996