! Test pointers ! Program TestPointers INTEGER, PARAMETER :: N=700, M=30 REAL, TARGET, ALLOCATABLE, DIMENSION(:,:,:) :: W1, W2, W3 REAL, DIMENSION(:,:,:), POINTER :: Y REAL(8) :: summ=0. Do i=1,M If(i==1)Then ALLOCATE(W1(N,N,N)) W1 = 1. Y => W1 ElseIF (i==2)Then ALLOCATE(W2(N,N,N)) W2 = 123. Y => W2 Else ALLOCATE(W3(N,N,N)) W3 = 512.1278 Y => W3 EndIf write (*,'(i3,5g14.5)') m,Y(1,1,1),Y(N,N,N) summ =0. Do k=1,N Do j=1,N Do ii=1,N summ = summ +Y(ii,j,k) enddo enddo enddo ! summ(i) =SUM(Y) If(i==1)Then DEALLOCATE(W1) ElseIF (i==2)Then DEALLOCATE(W2) Else DEALLOCATE(W3) EndIf write(*,*)summ/float(N)**3 endDo Stop End Program TestPointers