mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-27 05:35:37 -04:00
fix for openmp simd bug in ifort 2023.1
This commit is contained in:
parent
789a52bf63
commit
7dce6cbd44
4 changed files with 21 additions and 14 deletions
|
|
@ -1,3 +1,4 @@
|
|||
#include "gw_simd.fh"
|
||||
subroutine gw_analytic_addrpa(rpa,eia,mynpoles,lpole)
|
||||
c
|
||||
c Adds squared eigenvalue differences to diagonal of
|
||||
|
|
@ -13,12 +14,11 @@ c Equation (32), (34).
|
|||
double precision,intent(out) :: rpa(mynpoles,*)
|
||||
|
||||
integer ipole
|
||||
|
||||
!$omp parallel do simd
|
||||
!$omp parallel do MYSIMD
|
||||
do ipole=lpole,lpole+mynpoles-1
|
||||
rpa(ipole-lpole+1,ipole) = rpa(ipole-lpole+1,ipole) +
|
||||
$ eia(ipole-lpole+1)**2
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
|
||||
end subroutine
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#define ISOGW real(kind=c_double)
|
||||
#define GWTYP double precision
|
||||
#endif
|
||||
|
||||
#include "gw_simd.fh"
|
||||
#define USE_ALLOC 1
|
||||
subroutine gw_cdgw_buildiw(pars,eia,x,wgt,iw,iwidx,nmo,nri,ngl,
|
||||
$ mynmo,maxpoles,maxqp,ipol)
|
||||
|
|
@ -176,7 +176,7 @@ c
|
|||
! Precompute square brackets of Equation (39).
|
||||
!
|
||||
do isp=1,ipol
|
||||
!$omp parallel do simd schedule(static)
|
||||
!$omp parallel do MYSIMD schedule(static)
|
||||
do ipole=1,pars%mynpoles(isp)
|
||||
#ifdef GWCMPLX
|
||||
factor(ipole,isp) = sqrt(
|
||||
|
|
@ -187,7 +187,7 @@ c
|
|||
$ dsqrt(eia(ipole,isp)/(eia(ipole,isp)**2 + w2))
|
||||
#endif
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
enddo
|
||||
|
||||
!
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "gw_simd.fh"
|
||||
subroutine gw_cdgw_buildpi(which,ovup,ovdw,pi,factor,ldpi,nri,
|
||||
$ npoles,main,ipol,maxpoles)
|
||||
C
|
||||
|
|
@ -64,13 +65,13 @@ C Note that we actually compute -\Pi.
|
|||
!
|
||||
! Scale ERIs with factor in square brackets of Equation (39)
|
||||
!
|
||||
!$omp parallel do simd schedule(static) collapse(2)
|
||||
!$omp parallel do MYSIMD schedule(static) collapse(2)
|
||||
do ipole=1,npoles(1)
|
||||
do iri=1,nri
|
||||
ovup(iri,ipole) = ovup(iri,ipole)*factor(ipole,1)
|
||||
enddo
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
|
||||
!
|
||||
! DSFRK is the RFP version of DSYRK
|
||||
|
|
@ -80,13 +81,13 @@ C Note that we actually compute -\Pi.
|
|||
!
|
||||
! Back-transform ERIs, since we are going to need them again
|
||||
!
|
||||
!$omp parallel do simd schedule(static) collapse(2)
|
||||
!$omp parallel do MYSIMD schedule(static) collapse(2)
|
||||
do ipole=1,npoles(1)
|
||||
do iri=1,nri
|
||||
ovup(iri,ipole) = ovup(iri,ipole)/factor(ipole,1)
|
||||
enddo
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
|
||||
endif
|
||||
|
||||
|
|
@ -98,13 +99,13 @@ C Note that we actually compute -\Pi.
|
|||
!
|
||||
! Scale ERIs with factor in square brackets of Equation (39)
|
||||
!
|
||||
!$omp parallel do simd schedule(static) collapse(2)
|
||||
!$omp parallel do MYSIMD schedule(static) collapse(2)
|
||||
do ipole=1,npoles(2)
|
||||
do iri=1,nri
|
||||
ovdw(iri,ipole) = ovdw(iri,ipole)*factor(ipole,2)
|
||||
enddo
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
|
||||
!
|
||||
! DSFRK is the RFP version of DSYRK
|
||||
|
|
@ -114,13 +115,13 @@ C Note that we actually compute -\Pi.
|
|||
!
|
||||
! Back-transform ERIs, since we are going to need them again
|
||||
!
|
||||
!$omp parallel do simd schedule(static) collapse(2)
|
||||
!$omp parallel do MYSIMD schedule(static) collapse(2)
|
||||
do ipole=1,npoles(2)
|
||||
do iri=1,nri
|
||||
ovdw(iri,ipole) = ovdw(iri,ipole)/factor(ipole,2)
|
||||
enddo
|
||||
enddo
|
||||
!$omp end parallel do simd
|
||||
!$omp end parallel do MYSIMD
|
||||
|
||||
endif
|
||||
|
||||
|
|
|
|||
6
src/gwmol/gw_simd.fh
Normal file
6
src/gwmol/gw_simd.fh
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#if (__INTEL_COMPILER_BUILD_DATE>=20230302 && !defined(__INTEL_LLVM_COMPILER))
|
||||
#define MYSIMD
|
||||
#warning do simd disabled
|
||||
#else
|
||||
#define MYSIMD simd
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue