Fortran 90 permite la creación de nuevos tipos de datos derivados de la combinación de los 5 tipos de datos intrínsecos y/o nuevos tipos de datos previamente declarados.
! Definicion de punto
TYPE punto
REAL :: x, y
END TYPE
!Definicion de triangulo
TYPE triangulo
TYPE(punto) :: a, b, c
REAL :: area
END TYPE
Una vez declarados los tipos de datos es posible declarar variables que correspondan a estos tipos de datos y asignarle valores a las componentes de los mismos
TYPE(punto) :: pto1, pto2
pto1%x = 0.0; pto1%y = 0.0
pto2%x = 1.0; pto2%y = -3.5
Es posible redefinir algunos operadores y funciones existentes para realizar transformaciones sobre estos nuevos tipos de datos mediante el uso de bloque INTERFACE
INTERFACE OPERATOR(-) ! Interfaz del nuevo operador
FUNCTION resta_puntos(p1,p2)
TYPE(punto) :: resta_puntos, p1, p2
END FUNCTION
END INTERFACE
FUNCTION resta_puntos(p1,p2) ! Funcion que resta dos puntos
TYPE(punto) : resta_puntos, p1, p2
resta_puntos%x = p1%x - p2%x ! x = x1 - x2
resta_puntos%y = p1%y - p2%y ! y = y1 - y2
END FUNCTION resta_puntos
Con esto está permitido escribir en el código fuente del programa la operación resta entre dos valores del tipo punto
TYPE(punto) :: a, b
...
a - b