1 | include(dom.inc)
2 |
3 | SUBROUTINE GATHER_FACES(vect, vect_face, ndata)
4 |
5 | USE mod_pmm
6 | USE mod_slave
7 |
8 | IMPLICIT NONE
9 |
10 | ! IN
11 | DOM_INT :: ndata
12 | DOM_REAL, DIMENSION(ndata,is_nnodes) :: vect
13 |
14 | ! LOCAL
15 | DOM_INT :: ibnd, k, inode
16 |
17 | ! OUT
18 | DOM_REAL,DIMENSION(ndata,is_nbfaces) :: vect_face
19 |
20 | vect_face = 0.
21 |
22 | !$OMP PARALLEL DO &
23 | !$OMP& PRIVATE(k,inode) &
24 | !$OMP& SHARED(vect_face)
25 |
26 | DO ibnd = 1, is_nbfaces
27 |
28 | DO k=1, is_bface_nnode(ibnd)
29 | inode = is_bface_nodes(k,ibnd)
30 | vect_face(:,ibnd) = vect_face(:,ibnd) + vect(:,inode)
31 | ENDDO
32 |
33 | vect_face(:,ibnd) = vect_face(:,ibnd) / &
34 | & real(is_bface_nnode(ibnd))
35 |
36 | ENDDO
37 |
38 | !$OMP END PARALLEL DO
39 |
40 | END SUBROUTINE GATHER_FACES
gather_faces.F could be called by: