MODULE Geom2D IMPLICIT NONE TYPE punto REAL :: x,y END TYPE punto TYPE cerchio TYPE(punto) :: centro REAL :: raggio END TYPE cerchio CONTAINS SUBROUTINE Stampa_Cerchio(c) IMPLICIT NONE TYPE(cerchio), INTENT(IN) :: c WRITE (*,*) 'Cerchio come tipo derivato:' WRITE (*,*) c WRITE (*,*) 'Cerchio per componenti:' WRITE (*,'(A,F6.2,",",F6.2)',ADVANCE='NO') "Il cerchio ha centro in ",c%centro%x,c%centro%y WRITE (*,'(A,3F6.2,/)') " e raggio ",c%raggio RETURN END SUBROUTINE Stampa_Cerchio END MODULE Geom2D PROGRAM Stampa_Geom2D USE Geom2D IMPLICIT NONE TYPE(punto) :: o TYPE(cerchio) :: mezzo o = punto(1.0,2.0) mezzo = cerchio(o,0.5) CALL Stampa_Cerchio(mezzo) STOP "Fine esecuzione" END PROGRAM Stampa_Geom2D