c Program to copy a member of a structure to another array program double_array_sample1_ex1 implicit none c type Vector real*8, allocatable :: a(:), b(:), c(:), d(:), e(:), f(:), & g(:), h(:) end type Vector c type(Vector) :: vec real*8, allocatable :: r(:) integer i, k, n integer*8 time0, time1, dtime real*8 time c write(*,*)"Array size Elapsed time [sec]" do k=1,20 c Array size n = k * 2000000 c Allocation allocate(vec%a(n), vec%b(n), vec%c(n), vec%d(n), & vec%e(n), vec%f(n), vec%g(n), vec%h(n), r(n)) c Initialization do i=1,n vec%a(i) = 1d0 vec%b(i) = 1d0 vec%c(i) = 1d0 vec%d(i) = 1d0 vec%e(i) = 1d0 vec%f(i) = 1d0 vec%g(i) = 1d0 vec%h(i) = 1d0 end do c Start time call system_clock(time0) c Main calculation: copy the member a to r do i=1,n r(i) = vec%a(i) end do c Finish time call system_clock(time1, dtime) c Output time time = 1d0*(time1-time0)/dtime write(*,"(i11,f16.7)")n, time c Deallocation deallocate(vec%a, vec%b, vec%c, vec%d, vec%e, & vec%f, vec%g, vec%h, r) end do end program