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 dpen un módulo, luego USEese 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 dpese lugar en lugar de buscar y reemplazar todos los D0s al final de sus inicializaciones variables. (Esta es también la razón por la que recomendaría no usar la 1.0D-1sintaxis 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.