diff --git a/AMSS_NCKU_source/diff_new.f90 b/AMSS_NCKU_source/diff_new.f90 index 93954f1..ad4c2d8 100644 --- a/AMSS_NCKU_source/diff_new.f90 +++ b/AMSS_NCKU_source/diff_new.f90 @@ -69,10 +69,12 @@ fy = ZEO fz = ZEO +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) +!DIR$ UNROLL PARTIAL(4) do k=1,ex(3)-1 do j=1,ex(2)-1 do i=1,ex(1)-1 -! x direction +! x direction if(i+1 <= imax .and. i-1 >= imin)then ! ! - f(i-1) + f(i+1) @@ -371,6 +373,8 @@ fxz = ZEO fyz = ZEO +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) +!DIR$ UNROLL PARTIAL(4) do k=1,ex(3)-1 do j=1,ex(2)-1 do i=1,ex(1)-1 diff --git a/AMSS_NCKU_source/fmisc.f90 b/AMSS_NCKU_source/fmisc.f90 index 1b57677..4baf147 100644 --- a/AMSS_NCKU_source/fmisc.f90 +++ b/AMSS_NCKU_source/fmisc.f90 @@ -883,13 +883,17 @@ subroutine symmetry_bd(ord,extc,func,funcc,SoA) integer::i +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) funcc(1:extc(1),1:extc(2),1:extc(3)) = func +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) do i=0,ord-1 funcc(-i,1:extc(2),1:extc(3)) = funcc(i+1,1:extc(2),1:extc(3))*SoA(1) enddo +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) do i=0,ord-1 funcc(:,-i,1:extc(3)) = funcc(:,i+1,1:extc(3))*SoA(2) enddo +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) do i=0,ord-1 funcc(:,:,-i) = funcc(:,:,i+1)*SoA(3) enddo @@ -1112,6 +1116,7 @@ end subroutine d2dump ! Lagrangian polynomial interpolation !------------------------------------------------------------------------------ +!DIR$ ATTRIBUTES FORCEINLINE :: polint subroutine polint(xa, ya, x, y, dy, ordn) implicit none diff --git a/AMSS_NCKU_source/kodiss.f90 b/AMSS_NCKU_source/kodiss.f90 index a12ada4..a516393 100644 --- a/AMSS_NCKU_source/kodiss.f90 +++ b/AMSS_NCKU_source/kodiss.f90 @@ -65,6 +65,8 @@ real*8,intent(in) :: eps ! dx^4 ! note the sign (-1)^r-1, now r=2 +!DIR$ SIMD VECTORLENGTHFOR(KNOWN_INTEGER=8) +!DIR$ UNROLL PARTIAL(4) do k=1,ex(3) do j=1,ex(2) do i=1,ex(1)