1 | include(dom.inc)
2 |
3 | SUBROUTINE POSTPROCESSING( &
4 | & gb_Lbtot, loc_Gtot, loc_Qrtot, loc_Qptot,& ! IN
5 | & Lbtot, Gtot, Qrtot, Qptot, Qw) ! OUT
6 |
7 | USE mod_slave
8 | USE mod_pmm
9 | #ifdef USEPALM
10 | USE palmlib
11 | #endif
12 |
13 | IMPLICIT NONE
14 |
15 | ! IN
16 | DOM_REAL,DIMENSION(is_ncells) :: loc_Gtot, gb_Lbtot
17 | DOM_REAL,DIMENSION(3,is_ncells) :: loc_Qrtot
18 | DOM_REAL,DIMENSION(3,is_nprobes) :: loc_Qptot
19 |
20 | ! OUT
21 | DOM_REAL,DIMENSION(is_nnodes) :: Gtot, Lbtot
22 | DOM_REAL,DIMENSION(3,is_nnodes) :: Qrtot
23 | DOM_REAL,DIMENSION(is_nbfaces) :: Qw
24 | DOM_REAL,DIMENSION(3,is_nprobes) :: Qptot
25 |
26 | ! LOCAL
27 | DOM_INT :: ibnd, i, j, ierr
28 | DOM_REAL,DIMENSION(is_ncells) :: gb_Gtot
29 | DOM_REAL,DIMENSION(3,is_ncells) :: gb_Qrtot
30 | DOM_REAL,DIMENSION(3,is_nbfaces) :: Qrtot_face
31 |
32 | ! -------------------------------------------------------------!
33 | ! Sum over ALL slave quadrature point/frequency and directions !
34 | ! -------------------------------------------------------------!
35 |
36 | CALL MPI_ALLREDUCE(loc_Gtot, gb_Gtot, is_ncells, &
37 | & MPI_DOUBLE_PRECISION, MPI_SUM, COMM_PARA , ierr)
38 |
39 | CALL MPI_ALLREDUCE(loc_Qrtot, gb_Qrtot, 3*is_ncells, &
40 | & MPI_DOUBLE_PRECISION, MPI_SUM, COMM_PARA , ierr)
41 |
42 | CALL MPI_ALLREDUCE(loc_Qptot, Qptot, 3*is_nprobes, &
43 | & MPI_DOUBLE_PRECISION, MPI_SUM, COMM_PARA , ierr)
44 |
45 | ! ----------------!
46 | ! Scatter results !
47 | ! ----------------!
48 |
49 | CALL SCATTER(gb_Lbtot, Lbtot, 1)
50 | CALL SCATTER(gb_Gtot , Gtot , 1)
51 | CALL SCATTER(gb_Qrtot, Qrtot, 3)
52 |
53 | CALL GATHER_FACES(Qrtot,Qrtot_face,3)
54 | ! --------------------------------------------!
55 | ! Calculation of the wall radiative heat flux !
56 | ! --------------------------------------------!
57 |
58 | DO ibnd = 1,is_nbfaces
59 |
60 | j = is_bcell(ibnd)
61 | i = is_bface(ibnd)
62 |
63 | Qw(ibnd) = gb_Qrtot(1,j)*s_norm(1,i,j) + &
64 | & gb_Qrtot(2,j)*s_norm(2,i,j) + &
65 | & gb_Qrtot(3,j)*s_norm(3,i,j)
66 |
67 | ! Qw(ibnd) = Qrtot_face(1,ibnd)*s_norm(1,i,j) + &
68 | ! & Qrtot_face(2,ibnd)*s_norm(2,i,j) + &
69 | ! & Qrtot_face(3,ibnd)*s_norm(3,i,j)
70 |
71 | ENDDO
72 |
73 |
74 | ENDSUBROUTINE POSTPROCESSING
postprocessing.F could be called by: