Skip to content
Snippets Groups Projects

Variant of copy for 2d dpsp

Merged Dylan Kierans requested to merge feature-copy2d-dpsp into master
All threads resolved!
1 file
+ 3
67
Compare changes
  • Side-by-side
  • Inline
+ 3
67
@@ -165,7 +165,6 @@ MODULE mo_fortran_tools
MODULE PROCEDURE copy_3d_sp
MODULE PROCEDURE copy_4d_sp
MODULE PROCEDURE copy_5d_sp
MODULE PROCEDURE copy_2d_dpsp
MODULE PROCEDURE copy_3d_dpsp
MODULE PROCEDURE copy_2d_spdp
MODULE PROCEDURE copy_3d_spdp
@@ -864,7 +863,7 @@ CONTAINS
m2 = SIZE(dest, 2)
!$ACC PARALLEL LOOP DEFAULT(PRESENT) ASYNC(1) COLLAPSE(2) IF(lzacc)
#if (defined(__INTEL_COMPILER))
#ifdef __INTEL_COMPILER
!$omp do private(i1,i2)
#else
!$omp do collapse(2)
@@ -877,7 +876,8 @@ CONTAINS
!$omp end do nowait
CALL acc_wait_if_requested(1, opt_acc_async)
END SUBROUTINE copy_2d_dpsp
END SUBROUTINE copy_3d_dpsp
!> copy state, omp parallel, does not wait for other threads to complete
SUBROUTINE copy_3d_dpsp(src, dest, lacc, opt_acc_async)
@@ -2261,22 +2261,6 @@ CONTAINS
base_shape(2) = in_shape(2)
CALL insert_dimension_r_dp_3_2_s(ptr_out, ptr_in(1, 1), &
base_shape, new_dim_rank)
IF (in_stride(1) > 1 .OR. in_stride(2) > in_shape(1) &
.OR. base_shape(1) /= in_shape(1)) THEN
out_stride(1) = in_stride(1)
out_stride(2) = 1
out_shape(1:out_rank - 1) = in_shape
DO i = out_rank, new_dim_rank + 1, -1
out_shape(i) = out_shape(i - 1)
out_stride(i) = out_stride(i - 1)
END DO
out_stride(new_dim_rank) = 1
out_shape(new_dim_rank) = 1
out_shape = (out_shape - 1)*out_stride + 1
ptr_out => ptr_out(:out_shape(1):out_stride(1), &
& :out_shape(2):out_stride(2), &
& :out_shape(3):out_stride(3))
END IF
ELSE
out_shape(1:out_rank - 1) = SHAPE(ptr_in)
DO i = out_rank, new_dim_rank + 1, -1
@@ -2338,22 +2322,6 @@ CONTAINS
base_shape(2) = in_shape(2)
CALL insert_dimension_r_sp_3_2_s(ptr_out, ptr_in(1, 1), &
base_shape, new_dim_rank)
IF (in_stride(1) > 1 .OR. in_stride(2) > in_shape(1) &
.OR. base_shape(1) /= in_shape(1)) THEN
out_stride(1) = in_stride(1)
out_stride(2) = 1
out_shape(1:out_rank - 1) = in_shape
DO i = out_rank, new_dim_rank + 1, -1
out_shape(i) = out_shape(i - 1)
out_stride(i) = out_stride(i - 1)
END DO
out_stride(new_dim_rank) = 1
out_shape(new_dim_rank) = 1
out_shape = (out_shape - 1)*out_stride + 1
ptr_out => ptr_out(:out_shape(1):out_stride(1), &
& :out_shape(2):out_stride(2), &
& :out_shape(3):out_stride(3))
END IF
ELSE
out_shape(1:out_rank - 1) = SHAPE(ptr_in)
DO i = out_rank, new_dim_rank + 1, -1
@@ -2415,22 +2383,6 @@ CONTAINS
base_shape(2) = in_shape(2)
CALL insert_dimension_i4_3_2_s(ptr_out, ptr_in(1, 1), &
base_shape, new_dim_rank)
IF (in_stride(1) > 1 .OR. in_stride(2) > in_shape(1) &
.OR. base_shape(1) /= in_shape(1)) THEN
out_stride(1) = in_stride(1)
out_stride(2) = 1
out_shape(1:out_rank - 1) = in_shape
DO i = out_rank, new_dim_rank + 1, -1
out_shape(i) = out_shape(i - 1)
out_stride(i) = out_stride(i - 1)
END DO
out_stride(new_dim_rank) = 1
out_shape(new_dim_rank) = 1
out_shape = (out_shape - 1)*out_stride + 1
ptr_out => ptr_out(:out_shape(1):out_stride(1), &
& :out_shape(2):out_stride(2), &
& :out_shape(3):out_stride(3))
END IF
ELSE
out_shape(1:out_rank - 1) = SHAPE(ptr_in)
DO i = out_rank, new_dim_rank + 1, -1
@@ -2490,22 +2442,6 @@ CONTAINS
base_shape(2) = in_shape(2)
CALL insert_dimension_l_3_2_s(ptr_out, ptr_in(1, 1), &
base_shape, new_dim_rank)
IF (in_stride(1) > 1 .OR. in_stride(2) > in_shape(1) &
.OR. base_shape(1) /= in_shape(1)) THEN
out_stride(1) = in_stride(1)
out_stride(2) = 1
out_shape(1:out_rank - 1) = in_shape
DO i = out_rank, new_dim_rank + 1, -1
out_shape(i) = out_shape(i - 1)
out_stride(i) = out_stride(i - 1)
END DO
out_stride(new_dim_rank) = 1
out_shape(new_dim_rank) = 1
out_shape = (out_shape - 1)*out_stride + 1
ptr_out => ptr_out(:out_shape(1):out_stride(1), &
& :out_shape(2):out_stride(2), &
& :out_shape(3):out_stride(3))
END IF
ELSE
out_shape(1:out_rank - 1) = SHAPE(ptr_in)
DO i = out_rank, new_dim_rank + 1, -1
Loading