Program main
implicit none
real, dimension(1000,1000), target :: array1, array2, tempArray
real, dimension(:,:), pointer :: ptr1, ptr2, temptr
call RANDOM_SEED
call RANDOM_NUMBER(array1)
call RANDOM_NUMBER(array2)
print*, array1
print*, array2
call ChangeArray1
print*, array1
print*, array2
call ChangeArray2
print*, array1
print*, array2
contains
subroutine ChangeArray1 !.. 一般方法
implicit none
tempArray = array1
array1 = array2
array2 = tempArray
end subroutine ChangeArray1
subroutine ChangeArray2 !.. 使用指针的方法
implicit none
ptr1 => array1
ptr2 => array2
temptr => ptr1
ptr1 => ptr2
ptr2 => temptr
end subroutine ChangeArray2
End program main
在排序或交换大型数组或派生数据类型时,交换指向数据的指针要比操作数据本身高效的多!