emissiv_snb.F [SRC] [CPP] [JOB] [SCAN]
SOURCES / MODELSEQCODE/MODEL [=]



   1 | include(dom.inc)
   2 | 
   3 |        SUBROUTINE EMISSIV_SNB(nfcelt,celldata,Lb,Lo,epsil,Tf,WVNB_SI,   &
   4 |      &                        ncells,nfacemax,celld,cellf,bcell,bface,  &
   5 |      &                        nbface)
   6 | 
   7 |        USE mod_pmm
   8 | 
   9 |        IMPLICIT NONE
  10 | 
  11 |        include 'dom_constants.h'
  12 | 
  13 | !      IN
  14 |        DOM_INT                              :: ncells,nfacemax,nbface
  15 |        DOM_INT                              :: celld, cellf
  16 |        DOM_INT, DIMENSION (ncells)          :: nfcelt
  17 |        DOM_REAL                             :: WVNB_SI
  18 |        DOM_REAL, DIMENSION(8,ncells)        :: celldata
  19 |        DOM_REAL, DIMENSION(nbface)          :: epsil, Tf
  20 |        DOM_INT , DIMENSION(nbface)          :: bcell, bface
  21 | 
  22 | !      OUT
  23 |        DOM_REAL, DIMENSION(ncells)          :: Lb
  24 |        DOM_REAL, DIMENSION(nfacemax,ncells) :: Lo
  25 | 
  26 | !      LOCAL
  27 |        DOM_INT                              :: ielt,m, ibnd
  28 |        DOM_INT                              :: local_ncell
  29 |        DOM_INT                              :: ierr
  30 |        DOM_REAL                             :: blae
  31 |        DOM_REAL, DIMENSION(ncells)          :: local_Lb
  32 |        DOM_REAL, DIMENSION(nfacemax,ncells) :: 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 |        ibnd = 1
  49 |        DO WHILE ( bcell(ibnd).lt.celld )
  50 |          ibnd = ibnd + 1
  51 |        ENDDO
  52 | 
  53 |        DO WHILE ((ibnd.le.nbface).and.(bcell(ibnd).le.cellf))
  54 | 
  55 |          ielt = bcell(ibnd)
  56 |          m    = bface(ibnd)
  57 | 
  58 |          local_Lo(m,ielt)=epsil(ibnd)/pi*blae(WVNB_SI,Tf(ibnd))
  59 |          ibnd = ibnd + 1
  60 | 
  61 |        ENDDO
  62 | 
  63 | !      ---------------------------------------------!
  64 | !      Spectral intensity in the partitioned domain !
  65 | !      ---------------------------------------------!
  66 | 
  67 |        DO ielt = celld, cellf
  68 | 
  69 |           local_Lb(ielt)=blae(WVNB_SI,celldata(1,ielt))/pi
  70 | 
  71 |        ENDDO
  72 | 
  73 | !      ---------------------------------------!
  74 | !      communcation....to put in pmm_reducelb !
  75 | !      ---------------------------------------!
  76 | 
  77 | !      print*, " proc ", pmm_rank,": sending L (",celld,",",cellf,")"
  78 |        CALL MPI_ALLREDUCE(local_Lo, Lo, nfacemax*ncells,                &
  79 |      &                    MPI_DOUBLE_PRECISION, MPI_SUM, MPI_COMM_WORLD,&
  80 |      &                    ierr)
  81 | 
  82 |        CALL MPI_ALLREDUCE(local_Lb, Lb, ncells, MPI_DOUBLE_PRECISION,   &
  83 |      &                    MPI_SUM, MPI_COMM_WORLD, ierr)
  84 | 
  85 |        END SUBROUTINE EMISSIV_SNB


emissiv_snb.F could be called by:
Makefile [SEQCODE] - 73
Makefile [SOURCES] - 122 - 199
prissma.F [SEQCODE/MAIN] - 298
slave.F [SOURCES/MAIN/SLAVE] - 365