@@ -74,6 +74,8 @@ subroutine get_vrhs(self, mol, cn, xvec, dxdcn)
7474 real (wp) :: tmp
7575
7676 if (present (dxdcn)) then
77+ ! $omp parallel do default(none) schedule(runtime) &
78+ ! $omp shared(mol, self, cn, xvec, dxdcn) private(iat, izp, tmp)
7779 do iat = 1 , mol% nat
7880 izp = mol% id(iat)
7981 tmp = self% kcn(izp) / sqrt (cn(iat) + reg)
@@ -82,6 +84,8 @@ subroutine get_vrhs(self, mol, cn, xvec, dxdcn)
8284 end do
8385 dxdcn(mol% nat+1 ) = 0.0_wp
8486 else
87+ ! $omp parallel do default(none) schedule(runtime) &
88+ ! $omp shared(mol, self, cn, xvec) private(iat, izp, tmp)
8589 do iat = 1 , mol% nat
8690 izp = mol% id(iat)
8791 tmp = self% kcn(izp) / sqrt (cn(iat) + reg)
@@ -124,6 +128,9 @@ subroutine get_amat_0d(self, mol, amat)
124128
125129 amat(:, :) = 0.0_wp
126130
131+ ! $omp parallel do default(none) schedule(runtime) &
132+ ! $omp reduction(+:amat) shared(mol, self) &
133+ ! $omp private(iat, izp, jat, jzp, gam, vec, r2, tmp)
127134 do iat = 1 , mol% nat
128135 izp = mol% id(iat)
129136 do jat = 1 , iat-1
@@ -162,6 +169,9 @@ subroutine get_amat_3d(self, mol, wsc, alpha, amat)
162169 call get_dir_trans(mol% lattice, dtrans)
163170 call get_rec_trans(mol% lattice, rtrans)
164171
172+ ! $omp parallel do default(none) schedule(runtime) &
173+ ! $omp reduction(+:amat) shared(mol, self, wsc, dtrans, rtrans, alpha, vol) &
174+ ! $omp private(iat, izp, jat, jzp, gam, wsw, vec, dtmp, rtmp)
165175 do iat = 1 , mol% nat
166176 izp = mol% id(iat)
167177 do jat = 1 , iat-1
@@ -256,6 +266,9 @@ subroutine get_damat_0d(self, mol, qvec, dadr, dadL, atrace)
256266 dadr(:, :, :) = 0.0_wp
257267 dadL(:, :, :) = 0.0_wp
258268
269+ ! $omp parallel do default(none) schedule(runtime) &
270+ ! $omp reduction(+:atrace, dadr, dadL) shared(mol, self, qvec) &
271+ ! $omp private(iat, izp, jat, jzp, gam, r2, vec, dG, dS, dtmp, arg)
259272 do iat = 1 , mol% nat
260273 izp = mol% id(iat)
261274 do jat = 1 , iat-1
@@ -301,6 +314,11 @@ subroutine get_damat_3d(self, mol, wsc, alpha, qvec, dadr, dadL, atrace)
301314 call get_dir_trans(mol% lattice, dtrans)
302315 call get_rec_trans(mol% lattice, rtrans)
303316
317+ ! $omp parallel do default(none) schedule(runtime) &
318+ ! $omp reduction(+:atrace, dadr, dadL) &
319+ ! $omp shared(mol, self, wsc, alpha, vol, dtrans, rtrans, qvec) &
320+ ! $omp private(iat, izp, jat, jzp, img, gam, wsw, vec, dG, dS, &
321+ ! $omp& dGr, dSr, dGd, dSd)
304322 do iat = 1 , mol% nat
305323 izp = mol% id(iat)
306324 do jat = 1 , iat-1
0 commit comments