Outra maneira de fazer isso é primeiro especificar explicitamente a precisão desejada na variável usando o intrínseco SELECTED_REAL_KIND e depois usá-lo para definir e inicializar as variáveis. Algo como:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
Uma boa vantagem de fazer dessa maneira é que você pode armazenar a definição de dp
em um módulo e, em seguida, USE
nesse módulo, quando necessário. Agora, se você quiser alterar a precisão do seu programa, precisará alterar apenas a definição dp
nesse local em vez de pesquisar e substituir todos os D0
s no final de suas inicializações de variáveis. (É também por isso que eu recomendo não usar a 1.0D-1
sintaxe para definir Y como sugerido. Funciona, mas torna mais difícil encontrar e alterar todas as instâncias no futuro.)
Esta página no Fortran Wiki fornece boas informações adicionais sobre SELECTED_REAL_KIND
.