module circle_constant real, parameter :: pi = 3.14159 type meta_data character(len=10) :: color real :: circumference real :: diameter real :: radius real :: area end type meta_data contains subroutine meta_comp(r, item) type(meta_data) :: item item%diameter = 2.0 * r item%area = pi * r **2 item%circumference = 2.0 * pi * r end subroutine end module circle_constant program circle_comp ! make the content of module available use circle_constant real :: r integer :: iloop type(meta_data), dimension(10) :: circles ! r = 2.0 circles(1)%radius = 4 circles(1)%color = "red" call meta_comp(r, circles(1)) ! Call the module function circles(2:10)%color = "blue" ! array operation r = 4.0 circles(2:10)%radius = r ! array operation do iloop=2,10 call meta_comp(r,circles(iloop)) end do end program circle_comp