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



   1 | include(dom.inc)
   2 | 
   3 |       SUBROUTINE CK_CASE(all_k_abs, w, Lb, celldata, ielmts, all_WVNB,  &
   4 |      &                    all_DWVNB, ngbands,                           &   
   5 |      &                    i_bande, nallbandes, nkabs, ieltd, ieltf)
   6 | 
   7 |       USE mod_inout
   8 |       USE mod_pmm
   9 | #ifdef USEPALM
  10 |       USE palmlib
  11 | #endif
  12 | 
  13 |       IMPLICIT NONE
  14 | 
  15 | !     IN
  16 |       DOM_INT                          :: nallbandes
  17 |       DOM_INT                          :: nkabs, ieltd, ieltf
  18 |       DOM_INT                          :: ielmts,ngbands
  19 |       DOM_REAL,DIMENSION(nallbandes)   :: all_WVNB,all_DWVNB
  20 |       DOM_REAL,DIMENSION(ielmts)       :: Lb
  21 |       DOM_REAL,DIMENSION(8,ielmts)     :: celldata
  22 | 
  23 | !     OUT
  24 |       DOM_REAL,DIMENSION(nkabs)        :: w
  25 |       DOM_REAL,DIMENSION(nkabs,ielmts) :: all_k_abs
  26 | 
  27 | !     LOCAL
  28 |       DOM_REAL,DIMENSION(nkabs,ielmts) :: local_all_k_abs
  29 |       DOM_REAL,DIMENSION(2,ngbands)    :: SNBDATA
  30 |       DOM_REAL,DIMENSION(ielmts)       :: WVSOOT
  31 |       DOM_REAL,DIMENSION(nkabs)        :: k_absmel
  32 |       DOM_REAL,DIMENSION(ngbands)      :: F
  33 |       DOM_REAL                         :: blae
  34 |       DOM_REAL                         :: WVNB,DWVNB,WVNB_SI,DWVNB_SI
  35 |       DOM_INT                          :: ielt, i, ierr
  36 |       DOM_INT                          :: i_bande
  37 |       DOM_INT                          :: ICO,ICO2,IH2O
  38 |       LOGICAL                          :: LICO,LICO2,LIH2O
  39 | 
  40 |       WVNB      = all_WVNB(i_bande)
  41 |       DWVNB     = all_DWVNB(i_bande)
  42 |       WVNB_SI   = 100.*WVNB
  43 |       DWVNB_SI  = 100.*DWVNB 
  44 |       WVSOOT    = WVNB_SI*5.5*celldata(8,:) 
  45 | 
  46 |       local_all_k_abs = 0.
  47 |       all_k_abs       = 0.
  48 |       k_absmel        = 0.
  49 | 
  50 | !     ----------------------------------------!
  51 | !     Spectral index lecture for each species !
  52 | !     ----------------------------------------!
  53 |    
  54 |       IF (WVNB.le.9300.0) THEN
  55 |         CALL FINDI(LICO,LICO2,LIH2O,ICO,ICO2,IH2O,WVNB,DWVNB)
  56 |       ENDIF
  57 | 
  58 | !     -----------------------!
  59 | !     Non-homogeneous system !
  60 | !     -----------------------!
  61 |       IF (homosyst.eq.'NO') THEN
  62 | 
  63 |         DO ielt = ieltd, ieltf
  64 | 
  65 | !         print*, pmm_rank, "Doing cell:",ielt,"/",ieltd,"->",ieltf
  66 | 
  67 |           IF (WVNB<=9300.0) THEN
  68 | 
  69 |             CALL KBARANDPHI(celldata(:,ielt),LICO,LICO2,LIH2O,ICO,ICO2, &
  70 |      &           IH2O,SNBDATA,nallbandes)
  71 | 
  72 | !           print*, pmm_rank, "       phi_mix, k_mix=", SNBDATA(2,1),   &
  73 | !    &                                                  SNBDATA(1,1)
  74 | 
  75 | !         -------------------------------------------------!
  76 | !         Band groupment multiplicative factor (=1 for ck) !
  77 | !         -------------------------------------------------!
  78 |           DO i = 1, ngbands
  79 |             F(i) = 1.
  80 |           ENDDO
  81 |           
  82 |           CALL k_distributeur(F, ngbands, SNBDATA, nkabs, k_absmel, w)
  83 | 
  84 |           ENDIF
  85 | 
  86 |           local_all_k_abs(:,ielt)=k_absmel(:)+WVSOOT(ielt)
  87 | 
  88 |         ENDDO
  89 | 
  90 | !     -------------------!
  91 | !     Homogeneous system !
  92 | !     -------------------!
  93 | 
  94 |       ELSEIF (homosyst.eq.'YES') THEN 
  95 | 
  96 |         IF (WVNB<=9300.0) THEN
  97 |           CALL KBARANDPHI(celldata(:,1),LICO,LICO2,LIH2O,ICO,ICO2,IH2O, &
  98 |      &         SNBDATA,nallbandes)
  99 | 
 100 | !         -------------------------------------------------!
 101 | !         Band groupment multiplicative factor (=1 for ck) !
 102 | !         -------------------------------------------------!
 103 |           DO i = 1, ngbands
 104 |             F(i) = 1.
 105 |           ENDDO
 106 | 
 107 |           CALL k_distributeur(F, ngbands, SNBDATA, nkabs, k_absmel, w)
 108 | 
 109 |         ENDIF
 110 | 
 111 |         DO ielt = ieltd, ieltf
 112 |           local_all_k_abs(:,ielt) = k_absmel(:) + WVSOOT(1)
 113 |         ENDDO
 114 | 
 115 |       ENDIF
 116 | 
 117 | !     ------------------------------------------------!
 118 | !     sending all_k_abs....change to a pmm subroutine !
 119 | !     ------------------------------------------------!
 120 | 
 121 |        CALL MPI_ALLREDUCE(local_all_k_abs, all_k_abs, nkabs*ielmts,     &
 122 |      &                    MPI_DOUBLE_PRECISION, MPI_SUM, COMM_PARA ,    &
 123 |      &                    ierr)
 124 | 
 125 | !     if (pmm_rank.eq.0) then
 126 | !     do i = 1, ielmts
 127 | !       print*, "kabs:",all_k_abs(:,i)
 128 | !     enddo
 129 | !     endif
 130 | 
 131 |       END SUBROUTINE CK_CASE
 132 |                


ck_case.F could be called by:
deri_kappa_snb.F [SOURCES/SCHEMES] - 58
Makefile [TOOLS/RAY] - 71
Makefile [SEQCODE] - 78
Makefile [SOURCES] - 156
Makefile [TOOLS/TABFSK] - 70
prissma.F [SEQCODE/MAIN] - 301
ray.F [TOOLS/RAY/SRC] - 265
slave.F [SOURCES/MAIN/SLAVE] - 454