1 | include(dom.inc)
2 |
3 | SUBROUTINE EMISSIV(celldata, Lb, Lo, epsil, Tf, nelmts, &
4 | & ieltd, ieltf, nbface, bfbeg, bfend)
5 |
6 | USE mod_pmm
7 | #ifdef USEPALM
8 | USE palmlib
9 | #endif
10 |
11 | IMPLICIT NONE
12 |
13 | include 'dom_constants.h'
14 |
15 | ! IN
16 | DOM_INT :: nelmts,nbface
17 | DOM_INT :: ieltd, ieltf
18 | DOM_INT :: bfbeg, bfend
19 | DOM_REAL, DIMENSION(8,nelmts) :: celldata
20 | DOM_REAL, DIMENSION(nbface) :: epsil, Tf
21 |
22 | ! OUT
23 | DOM_REAL, DIMENSION(nelmts) :: Lb
24 | DOM_REAL, DIMENSION(nbface) :: Lo
25 |
26 | ! LOCAL
27 | DOM_INT :: ielt,m, ibnd
28 | DOM_INT :: local_ncell
29 | DOM_INT :: ierr
30 | DOM_REAL :: planck
31 | DOM_REAL, DIMENSION(nelmts) :: local_Lb
32 | DOM_REAL, DIMENSION(nbface) :: local_Lo
33 |
34 | Lo = 0.
35 | Lb = 0.
36 |
37 | ! -----------------------------!
38 | ! Initializing local cell data !
39 | ! -----------------------------!
40 |
41 | local_Lo = 0.
42 | local_Lb = 0.
43 |
44 | ! --------------------------------------------------------!
45 | ! Intensities at the boundaries in the partitioned domain !
46 | ! --------------------------------------------------------!
47 |
48 | DO ibnd = bfbeg, bfend
49 |
50 | local_Lo(ibnd)=epsil(ibnd)*planck(Tf(ibnd))
51 |
52 | ENDDO
53 |
54 | ! ---------------------------------------------!
55 | ! Spectral intensity in the partitioned domain !
56 | ! ---------------------------------------------!
57 |
58 | DO ielt = ieltd, ieltf
59 |
60 | local_Lb(ielt)=planck(celldata(1,ielt))
61 |
62 | ENDDO
63 |
64 | ! ---------------------------------------!
65 | ! communcation....to put in pmm_reducelb !
66 | ! ---------------------------------------!
67 |
68 | ! print*, " proc ", pmm_rank,": sending L (",ieltd,",",ieltf,")"
69 |
70 | ! CALL MPI_ALLREDUCE(local_Lo, Lo, nbface, &
71 | ! & MPI_DOUBLE_PRECISION, MPI_SUM, COMM_PARA , &
72 | ! & ierr)
73 |
74 | ! CALL MPI_ALLREDUCE(local_Lb, Lb, nelmts, MPI_DOUBLE_PRECISION, &
75 | ! & MPI_SUM, COMM_PARA , ierr)
76 |
77 | Lo = local_Lo
78 | Lb = local_Lb
79 |
80 | END SUBROUTINE EMISSIV
emissiv.F could be called by: