diff -rcN EigenExa-2.3L-orig/dcx.F EigenExa-2.3L/dcx.F
*** EigenExa-2.3L-orig/dcx.F	2016-07-26 00:49:13.000000000 +0900
--- EigenExa-2.3L/dcx.F	2018-01-16 12:51:21.000000000 +0900
***************
*** 121,128 ****
        call DLAED6_INIT()
  
  #if defined(__INTEL_COMPILER)
!       MKL_MODE = MKL_GET_DYNAMIC()
!       call MKL_SET_DYNAMIC(0)
  #endif
  
  #if TIMER_PRINT>1
--- 121,128 ----
        call DLAED6_INIT()
  
  #if defined(__INTEL_COMPILER)
! !      MKL_MODE = MKL_GET_DYNAMIC()
! !      call MKL_SET_DYNAMIC(0)
  #endif
  
  #if TIMER_PRINT>1
***************
*** 135,141 ****
  #endif
  
  #if defined(__INTEL_COMPILER)
!       call MKL_SET_DYNAMIC(MKL_MODE)
  #endif
  
  #if TIMER_PRINT>1
--- 135,141 ----
  #endif
  
  #if defined(__INTEL_COMPILER)
! !      call MKL_SET_DYNAMIC(MKL_MODE)
  #endif
  
  #if TIMER_PRINT>1
diff -rcN EigenExa-2.3L-orig/eigen_prd_t6_3.F EigenExa-2.3L/eigen_prd_t6_3.F
*** EigenExa-2.3L-orig/eigen_prd_t6_3.F	2015-06-13 13:03:53.000000000 +0900
--- EigenExa-2.3L/eigen_prd_t6_3.F	2018-01-18 00:05:29.000000000 +0900
***************
*** 30,40 ****
        integer, parameter     ::  LX   = 1024
        integer, parameter     ::  LX2  = 32
  
- #if __IBM_REGISTER_VARS
        integer, parameter     ::  VTOL = 1024000
! #else
!       integer, parameter     ::  VTOL = 1024
! #endif
  !     
        include 'CSTAB.h'
  !     
--- 30,41 ----
        integer, parameter     ::  LX   = 1024
        integer, parameter     ::  LX2  = 32
  
        integer, parameter     ::  VTOL = 1024000
! !#if __IBM_REGISTER_VARS
! !      integer, parameter     ::  VTOL = 1024000
! !#else
! !      integer, parameter     ::  VTOL = 1024
! !#endif
  !     
        include 'CSTAB.h'
  !     
diff -rcN EigenExa-2.3L-orig/eigen_sx.F EigenExa-2.3L/eigen_sx.F
*** EigenExa-2.3L-orig/eigen_sx.F	2016-07-25 23:49:02.000000000 +0900
--- EigenExa-2.3L/eigen_sx.F	2018-01-18 00:04:46.000000000 +0900
***************
*** 95,101 ****
  !-
        SIGMA = ONE
  !     if ( PRESENT( mode ) ) then
! !     if ( mode == 'X' ) then
        call eigen_scaling( n, a(1,1), lda, SIGMA )
  !     end if
  !     end if
--- 95,101 ----
  !-
        SIGMA = ONE
  !     if ( PRESENT( mode ) ) then
! !     if ( mode_ == 'X' ) then
        call eigen_scaling( n, a(1,1), lda, SIGMA )
  !     end if
  !     end if
***************
*** 124,130 ****
        s0 = eigen_get_wtime( )
  #endif
  
!       if ( (mode == 'A' .OR. mode == 'X') .AND. nvec_ > 0 ) then
           e2(0*nme+1:0*nme+N-1) = e(0*nme+2:0*nme+N)
           e2(0*nme+N) = 0
           e2(1*nme+1:1*nme+N-2) = e(1*nme+3:1*nme+N)
--- 124,130 ----
        s0 = eigen_get_wtime( )
  #endif
  
!       if ( (mode_ == 'A' .OR. mode_ == 'X') .AND. nvec_ > 0 ) then
           e2(0*nme+1:0*nme+N-1) = e(0*nme+2:0*nme+N)
           e2(0*nme+N) = 0
           e2(1*nme+1:1*nme+N-2) = e(1*nme+3:1*nme+N)
***************
*** 132,138 ****
           e2(1*nme+N) = 0
           w(1:n)=d(1:n)
           call eigen_dcx( n, nvec_, w, e2, nme, z, ldz, INFO, ret_2 )
!          if ( mode == 'X' ) then
              call eigen_bisect2( d, e, e(1+nme), w, n, 1 )
           end if
        end if
--- 132,138 ----
           e2(1*nme+N) = 0
           w(1:n)=d(1:n)
           call eigen_dcx( n, nvec_, w, e2, nme, z, ldz, INFO, ret_2 )
!          if ( mode_ == 'X' ) then
              call eigen_bisect2( d, e, e(1+nme), w, n, 1 )
           end if
        end if
diff -rcN EigenExa-2.3L-orig/eigen_trd_t6_3.F EigenExa-2.3L/eigen_trd_t6_3.F
*** EigenExa-2.3L-orig/eigen_trd_t6_3.F	2016-11-05 16:39:53.000000000 +0900
--- EigenExa-2.3L/eigen_trd_t6_3.F	2018-01-17 23:23:45.000000000 +0900
***************
*** 240,264 ****
  ! otherwise done here.
  !
        if ( .NOT. flag_putoff ) then
-          x_pos = eigen_translate_g2l(L, x_nnod,x_inod)
        if ( flag_oncache ) then
!          call datacast_dblx( m0, v_y, v_x, ldv,
       &                       u_t(1), v_t(1), x_pos, 2 )
        else
           call datacast_dbl( v_y(1), v_x(1), u_t(1), v_t(1), x_pos, 2 )
        end if
        end if
  
        call eigen_vector_zeropad_x( v_x(1), L )
-       if ( .NOT. flag_putoff ) then
-       if ( flag_oncache ) then
-          do k_1=1,m0
-          call eigen_vector_zeropad_y( v_y(1+ldv*(k_1-1)), L )
-          end do
-       else
-          call eigen_vector_zeropad_y( v_y(1), L )
-       end if
-       end if
  
  !$OMP END MASTER
  
--- 240,261 ----
  ! otherwise done here.
  !
        if ( .NOT. flag_putoff ) then
        if ( flag_oncache ) then
!          l_2 = num_v_done + 1
!          x_pos = eigen_translate_g2l(L+l_2-1, x_nnod,x_inod)
!          call datacast_dblx( l_2, v_y, v_x, ldv,
       &                       u_t(1), v_t(1), x_pos, 2 )
+          do k_1=1,l_2
+          call eigen_vector_zeropad_y( v_y(1+ldv*(k_1-1)), L+k_1-1 )
+          end do
        else
+          x_pos = eigen_translate_g2l(L, x_nnod,x_inod)
           call datacast_dbl( v_y(1), v_x(1), u_t(1), v_t(1), x_pos, 2 )
+          call eigen_vector_zeropad_y( v_y(1), L )
        end if
        end if
  
        call eigen_vector_zeropad_x( v_x(1), L )
  
  !$OMP END MASTER
  
diff -rcN EigenExa-2.3L-orig/Makefile EigenExa-2.3L/Makefile
*** EigenExa-2.3L-orig/Makefile	2017-05-25 00:01:18.000000000 +0900
--- EigenExa-2.3L/Makefile	2018-01-17 00:43:08.000000000 +0900
***************
*** 7,19 ****
  # select an appropriate make_inc file
  #
  #include make_incs/make_inc.gcc
! include make_incs/make_inc.Intel
  #include make_incs/make_inc.Intel.shared
  #include make_incs/make_inc.BX900
  #include make_incs/make_inc.K_FX10
  #include make_incs/make_inc.K_FX10.shared
  #include make_incs/make_inc.BlueGeneQ
  #include make_incs/make_inc.SX
  
  
  #
--- 7,20 ----
  # select an appropriate make_inc file
  #
  #include make_incs/make_inc.gcc
! #include make_incs/make_inc.Intel
  #include make_incs/make_inc.Intel.shared
  #include make_incs/make_inc.BX900
  #include make_incs/make_inc.K_FX10
  #include make_incs/make_inc.K_FX10.shared
  #include make_incs/make_inc.BlueGeneQ
  #include make_incs/make_inc.SX
+ include make_incs/make_inc.ofp
  
  
  #
diff -rcN EigenExa-2.3L-orig/make_incs/make_inc.ofp EigenExa-2.3L/make_incs/make_inc.ofp
*** EigenExa-2.3L-orig/make_incs/make_inc.ofp	1970-01-01 09:00:00.000000000 +0900
--- EigenExa-2.3L/make_incs/make_inc.ofp	2018-01-17 00:53:22.000000000 +0900
***************
*** 0 ****
--- 1,18 ----
+ FF             = mpiifort
+ FC             = mpiifort
+ CC             = mpiicc
+ AR             = ar
+ SMPFLAG        = -qopenmp
+ CCFLAG         = -g $(SMPFLAG) -O3 -axMIC-AVX512
+ C0FLAG         = -g $(SMPFLAG) -O0 -axMIC-AVX512
+ CPPFLAG        = -cpp
+ MACRO_D_PREFIX = -D
+ INCFLAG        = -I./
+ MODFLAG        = -module ./
+ BLAS           = -mkl=parallel
+ LAPACK         = 
+ LDFLAG         = -I$(MKLROOT)/include -L$(MKLROOT)/lib/intel64 \
+ -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core \
+ -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl
+ TEST_FLAG      = -fp-model strict
+ 
