Otra forma de hacer esto es primero especificar explícitamente la precisión que desea en la variable usando el intrínseco SELECTED_REAL_KIND y luego usar esto para definir e inicializar las variables. Algo como:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
Una buena ventaja de hacerlo de esta manera es que puede almacenar la definición de dp
en un módulo, luego USE
ese módulo donde sea necesario. Ahora, si alguna vez desea cambiar la precisión de su programa, solo tiene que cambiar la definición de dp
ese lugar en lugar de buscar y reemplazar todos los D0
s al final de sus inicializaciones variables. (Esta es también la razón por la que recomendaría no usar la 1.0D-1
sintaxis para definir Y como se sugiere. Funciona, pero hace que sea más difícil encontrar y cambiar todas las instancias en el futuro).
Esta página en Fortran Wiki brinda buena información adicional sobre SELECTED_REAL_KIND
.