|
10 | 10 | implicit none |
11 | 11 | integer :: i |
12 | 12 |
|
| 13 | + ! For provide outside of openMP section |
| 14 | + call give_all_aos_at_r(final_grid_points(1,1), aos_in_r_array(1,1)) |
| 15 | + |
13 | 16 | !$OMP PARALLEL DO & |
14 | 17 | !$OMP DEFAULT (NONE) & |
15 | 18 | !$OMP PRIVATE (i) & |
16 | 19 | !$OMP SHARED(aos_in_r_array,n_points_final_grid,final_grid_points) |
17 | | - do i = 1, n_points_final_grid |
| 20 | + do i = 2, n_points_final_grid |
18 | 21 | call give_all_aos_at_r(final_grid_points(1,i), aos_in_r_array(1,i)) |
19 | 22 | enddo |
20 | 23 | !$OMP END PARALLEL DO |
|
58 | 61 | double precision :: r(3) |
59 | 62 | double precision, allocatable :: aos_grad_array(:,:), aos_array(:) |
60 | 63 |
|
| 64 | + ! For provide outside of openMP section |
| 65 | + allocate(aos_grad_array(3,ao_num), aos_array(ao_num)) |
| 66 | + call give_all_aos_and_grad_at_r(final_grid_points(1,1),aos_array,aos_grad_array) |
| 67 | + do m = 1, 3 |
| 68 | + do j = 1, ao_num |
| 69 | + aos_grad_in_r_array(j,1,m) = aos_grad_array(m,j) |
| 70 | + enddo |
| 71 | + enddo |
| 72 | + deallocate(aos_grad_array, aos_array) |
| 73 | + |
61 | 74 | !$OMP PARALLEL & |
62 | 75 | !$OMP DEFAULT (NONE) & |
63 | 76 | !$OMP PRIVATE (i,j,m,r,aos_array,aos_grad_array) & |
64 | 77 | !$OMP SHARED(aos_grad_in_r_array,n_points_final_grid,ao_num,final_grid_points) |
65 | 78 | allocate(aos_grad_array(3,ao_num), aos_array(ao_num)) |
66 | 79 |
|
67 | 80 | !$OMP DO |
68 | | - do i = 1, n_points_final_grid |
| 81 | + do i = 2, n_points_final_grid |
69 | 82 | call give_all_aos_and_grad_at_r(final_grid_points(1,i),aos_array,aos_grad_array) |
70 | 83 | do m = 1, 3 |
71 | 84 | do j = 1, ao_num |
|
123 | 136 | integer :: i,j,m |
124 | 137 | double precision, allocatable :: aos_lapl_array(:,:), aos_grad_array(:,:), aos_array(:) |
125 | 138 |
|
| 139 | + ! For provide outside of openMP section |
| 140 | + allocate( aos_array(ao_num), aos_grad_array(3,ao_num), aos_lapl_array(3,ao_num)) |
| 141 | + call give_all_aos_and_grad_and_lapl_at_r(final_grid_points(1,1),aos_array,aos_grad_array,aos_lapl_array) |
| 142 | + do j = 1, ao_num |
| 143 | + do m = 1, 3 |
| 144 | + aos_lapl_in_r_array(m,j,1) = aos_lapl_array(m,j) |
| 145 | + enddo |
| 146 | + enddo |
| 147 | + deallocate( aos_array, aos_grad_array, aos_lapl_array) |
| 148 | + |
126 | 149 | !$OMP PARALLEL & |
127 | 150 | !$OMP DEFAULT (NONE) & |
128 | 151 | !$OMP PRIVATE (i,aos_array,aos_grad_array,aos_lapl_array,j,m) & |
129 | 152 | !$OMP SHARED(aos_lapl_in_r_array,n_points_final_grid,ao_num,final_grid_points) |
130 | 153 | allocate( aos_array(ao_num), aos_grad_array(3,ao_num), aos_lapl_array(3,ao_num)) |
131 | 154 | !$OMP DO |
132 | | - do i = 1, n_points_final_grid |
| 155 | + do i = 2, n_points_final_grid |
133 | 156 | call give_all_aos_and_grad_and_lapl_at_r(final_grid_points(1,i),aos_array,aos_grad_array,aos_lapl_array) |
134 | 157 | do j = 1, ao_num |
135 | 158 | do m = 1, 3 |
|
185 | 208 | ! aos_in_r_array_extra(i,j) = value of the ith ao on the jth grid point of the EXTRA grid |
186 | 209 | END_DOC |
187 | 210 | integer :: i |
| 211 | + ! For provide outside of OpenMP |
| 212 | + call give_all_aos_at_r(final_grid_points_extra(1,1),aos_in_r_array_extra(1,1)) |
| 213 | + |
188 | 214 | !$OMP PARALLEL DO & |
189 | 215 | !$OMP DEFAULT (NONE) PRIVATE (i) & |
190 | 216 | !$OMP SHARED(aos_in_r_array_extra,n_points_extra_final_grid,final_grid_points_extra) |
191 | | - do i = 1, n_points_extra_final_grid |
| 217 | + do i = 2, n_points_extra_final_grid |
192 | 218 | call give_all_aos_at_r(final_grid_points_extra(1,i),aos_in_r_array_extra(1,i)) |
193 | 219 | enddo |
194 | 220 | !$OMP END PARALLEL DO |
|
224 | 250 | integer :: i, j, m |
225 | 251 | double precision, allocatable :: aos_array(:), aos_grad_array(:,:) |
226 | 252 |
|
| 253 | +! For provide outside of OpenMP |
| 254 | + allocate(aos_array(ao_num), aos_grad_array(3,ao_num)) |
| 255 | + call give_all_aos_and_grad_at_r(final_grid_points_extra(1,1), aos_array, aos_grad_array) |
| 256 | + do m = 1, 3 |
| 257 | + do j = 1, ao_num |
| 258 | + aos_grad_in_r_array_extra(j,1,m) = aos_grad_array(m,j) |
| 259 | + enddo |
| 260 | + enddo |
| 261 | + deallocate(aos_array,aos_grad_array) |
227 | 262 |
|
228 | 263 | !$OMP PARALLEL & |
229 | 264 | !$OMP DEFAULT (NONE) & |
230 | 265 | !$OMP PRIVATE (i,j,m,aos_array,aos_grad_array) & |
231 | 266 | !$OMP SHARED(aos_grad_in_r_array_extra,n_points_extra_final_grid,ao_num,final_grid_points_extra) |
232 | 267 | allocate(aos_array(ao_num), aos_grad_array(3,ao_num)) |
233 | 268 | !$OMP DO |
234 | | - do i = 1, n_points_extra_final_grid |
| 269 | + do i = 2, n_points_extra_final_grid |
235 | 270 | call give_all_aos_and_grad_at_r(final_grid_points_extra(1,i), aos_array, aos_grad_array) |
236 | 271 | do m = 1, 3 |
237 | 272 | do j = 1, ao_num |
|
0 commit comments