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