Ignore:
Timestamp:
Dec 14, 2015, 11:43:09 AM (9 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2298:2396 into testing branch

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/cv3a_uncompress.F90

    r2298 r2408  
    33                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    44                           ft, fq, fu, fv, ftra,  &
    5                            sigd, ma, mip, vprecip, upwd, dnwd, dnwd0, &
     5                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    66                           qcondc, wd, cape, cin, &
    77                           tvp, &
     
    1717                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    1818                           ft1, fq1, fu1, fv1, ftra1, &
    19                            sigd1, ma1, mip1, vprecip1, upwd1, dnwd1, dnwd01, &
     19                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    2020                           qcondc1, wd1, cape1, cin1, &
    2121                           tvp1, &
     
    5757  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: ma, mip
    5858  REAL, DIMENSION (nloc, nd+1), INTENT (IN)          :: vprecip
     59  REAL, DIMENSION (nloc, nd+1), INTENT (IN)          :: vprecipi
    5960  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: upwd, dnwd, dnwd0
    6061  REAL, DIMENSION (nloc, nd), INTENT (IN)            :: qcondc
     
    9192  REAL, DIMENSION (len, nd), INTENT (OUT)            :: ma1, mip1
    9293  REAL, DIMENSION (len, nd+1), INTENT (OUT)          :: vprecip1
     94  REAL, DIMENSION (len, nd+1), INTENT (OUT)          :: vprecipi1
    9395  REAL, DIMENSION (len, nd), INTENT (OUT)            :: upwd1, dnwd1, dnwd01
    9496  REAL, DIMENSION (len, nd), INTENT (OUT)            :: qcondc1
     
    144146    END DO
    145147   
    146     DO k = 1, nl+1
     148    DO k = 1, nl
    147149      DO i = 1, ncum
    148150        sig1(idcum(i), k) = sig(i, k)
     
    155157        mip1(idcum(i), k) = mip(i, k)
    156158        vprecip1(idcum(i), k) = vprecip(i, k)
     159        vprecipi1(idcum(i), k) = vprecipi(i, k)
    157160        upwd1(idcum(i), k) = upwd(i, k)
    158161        dnwd1(idcum(i), k) = dnwd(i, k)
     
    178181   
    179182      END DO
     183    END DO
     184
     185! Fluxes are defined on a staggered grid and extend up to nl+1
     186    DO i = 1, ncum
     187      ma1(idcum(i), nlp) = 0.
     188      vprecip1(idcum(i), nlp) = 0.
     189      vprecipi1(idcum(i), nlp) = 0.
     190      upwd1(idcum(i), nlp) = 0.
     191      dnwd1(idcum(i), nlp) = 0.
     192      dnwd01(idcum(i), nlp) = 0.
    180193    END DO
    181194   
     
    203216!!      END DO
    204217!!    END DO
    205       DO i = 1, ncum
    206         jdcum=idcum(i)
    207         phi1    (jdcum, 1:nl+1, 1:nl+1) = phi    (i, 1:nl+1, 1:nl+1)          !AC!
    208         phi21   (jdcum, 1:nl+1, 1:nl+1) = phi2   (i, 1:nl+1, 1:nl+1)          !RomP
    209         sigij1  (jdcum, 1:nl+1, 1:nl+1) = sigij  (i, 1:nl+1, 1:nl+1)          !RomP
    210         elij1   (jdcum, 1:nl+1, 1:nl+1) = elij   (i, 1:nl+1, 1:nl+1)          !RomP
    211         epmlmMm1(jdcum, 1:nl+1, 1:nl+1) = epmlmMm(i, 1:nl+1, 1:nl+1)          !RomP+jyg
     218
     219!!      DO i = 1, ncum
     220!!        jdcum=idcum(i)
     221!!        phi1    (jdcum, 1:nl+1, 1:nl+1) = phi    (i, 1:nl+1, 1:nl+1)          !AC!
     222!!        phi21   (jdcum, 1:nl+1, 1:nl+1) = phi2   (i, 1:nl+1, 1:nl+1)          !RomP
     223!!        sigij1  (jdcum, 1:nl+1, 1:nl+1) = sigij  (i, 1:nl+1, 1:nl+1)          !RomP
     224!!        elij1   (jdcum, 1:nl+1, 1:nl+1) = elij   (i, 1:nl+1, 1:nl+1)          !RomP
     225!!        epmlmMm1(jdcum, 1:nl+1, 1:nl+1) = epmlmMm(i, 1:nl+1, 1:nl+1)          !RomP+jyg
     226!!      END DO
     227!  These tracer associated arrays are defined up to nl, not nl+1
     228  DO i = 1, ncum
     229    jdcum=idcum(i)
     230    DO k = 1,nl
     231      DO j = 1,nl
     232        phi1    (jdcum, j, k) = phi    (i, j, k)          !AC!
     233        phi21   (jdcum, j, k) = phi2   (i, j, k)          !RomP
     234        sigij1  (jdcum, j, k) = sigij  (i, j, k)          !RomP
     235        elij1   (jdcum, j, k) = elij   (i, j, k)          !RomP
     236        epmlmMm1(jdcum, j, k) = epmlmMm(i, j, k)          !RomP+jyg
    212237      END DO
     238    ENDDO
     239  ENDDO
    213240!>jyg
    214241    ! AC!
     
    246273      asupmaxmin1(:) = asupmaxmin(:)
    247274!
    248       sig1(:, 1:nl+1) = sig(:, 1:nl+1)
    249       w01(:, 1:nl+1) = w0(:, 1:nl+1)
    250       ft1(:, 1:nl+1) = ft(:, 1:nl+1)
    251       fq1(:, 1:nl+1) = fq(:, 1:nl+1)
    252       fu1(:, 1:nl+1) = fu(:, 1:nl+1)
    253       fv1(:, 1:nl+1) = fv(:, 1:nl+1)
    254       ma1(:, 1:nl+1) = ma(:, 1:nl+1)
    255       mip1(:, 1:nl+1) = mip(:, 1:nl+1)
    256       vprecip1(:, 1:nl+1) = vprecip(:, 1:nl+1)
    257       upwd1(:, 1:nl+1) = upwd(:, 1:nl+1)
    258       dnwd1(:, 1:nl+1) = dnwd(:, 1:nl+1)
    259       dnwd01(:, 1:nl+1) = dnwd0(:, 1:nl+1)
    260       qcondc1(:, 1:nl+1) = qcondc(:, 1:nl+1)
    261       tvp1(:, 1:nl+1) = tvp(:, 1:nl+1)
    262       ftd1(:, 1:nl+1) = ftd(:, 1:nl+1)
    263       fqd1(:, 1:nl+1) = fqd(:, 1:nl+1)
    264       asupmax1(:, 1:nl+1) = asupmax(:, 1:nl+1)
    265 
    266       da1(:, 1:nl+1) = da(:, 1:nl+1)              !AC!
    267       mp1(:, 1:nl+1) = mp(:, 1:nl+1)              !RomP
    268       d1a1(:, 1:nl+1) = d1a(:, 1:nl+1)            !RomP
    269       dam1(:, 1:nl+1) = dam(:, 1:nl+1)            !RomP
    270       clw1(:, 1:nl+1) = clw(:, 1:nl+1)            !RomP
    271       evap1(:, 1:nl+1) = evap(:, 1:nl+1)          !RomP
    272       ep1(:, 1:nl+1) = ep(:, 1:nl+1)              !RomP
    273       eplamM1(:, 1:nl+1) = eplamM(:, 1:nl+1)       !RomP+jyg
    274       wdtrainA1(:, 1:nl+1) = wdtrainA(:, 1:nl+1)  !RomP
    275       wdtrainM1(:, 1:nl+1) = wdtrainM(:, 1:nl+1)  !RomP
    276       qtc1(:, 1:nl+1) = qtc(:, 1:nl+1)
    277       sigt1(:, 1:nl+1) = sigt(:, 1:nl+1)
    278 !
    279       phi1    (:, 1:nl+1, 1:nl+1) = phi    (:, 1:nl+1, 1:nl+1)  !AC!
    280       phi21   (:, 1:nl+1, 1:nl+1) = phi2   (:, 1:nl+1, 1:nl+1)  !RomP
    281       sigij1  (:, 1:nl+1, 1:nl+1) = sigij  (:, 1:nl+1, 1:nl+1)  !RomP
    282       elij1   (:, 1:nl+1, 1:nl+1) = elij   (:, 1:nl+1, 1:nl+1)  !RomP
    283       epmlmMm1(:, 1:nl+1, 1:nl+1) = epmlmMm(:, 1:nl+1, 1:nl+1)  !RomP+jyg
     275      sig1(:, 1:nl) = sig(:, 1:nl)
     276      w01(:, 1:nl) = w0(:, 1:nl)
     277      ft1(:, 1:nl) = ft(:, 1:nl)
     278      fq1(:, 1:nl) = fq(:, 1:nl)
     279      fu1(:, 1:nl) = fu(:, 1:nl)
     280      fv1(:, 1:nl) = fv(:, 1:nl)
     281      ma1(:, 1:nl) = ma(:, 1:nl)
     282      mip1(:, 1:nl) = mip(:, 1:nl)
     283      vprecip1(:, 1:nl) = vprecip(:, 1:nl)
     284      vprecipi1(:, 1:nl) = vprecipi(:, 1:nl)
     285      upwd1(:, 1:nl) = upwd(:, 1:nl)
     286      dnwd1(:, 1:nl) = dnwd(:, 1:nl)
     287      dnwd01(:, 1:nl) = dnwd0(:, 1:nl)
     288      qcondc1(:, 1:nl) = qcondc(:, 1:nl)
     289      tvp1(:, 1:nl) = tvp(:, 1:nl)
     290      ftd1(:, 1:nl) = ftd(:, 1:nl)
     291      fqd1(:, 1:nl) = fqd(:, 1:nl)
     292      asupmax1(:, 1:nl) = asupmax(:, 1:nl)
     293
     294      da1(:, 1:nl) = da(:, 1:nl)              !AC!
     295      mp1(:, 1:nl) = mp(:, 1:nl)              !RomP
     296      d1a1(:, 1:nl) = d1a(:, 1:nl)            !RomP
     297      dam1(:, 1:nl) = dam(:, 1:nl)            !RomP
     298      clw1(:, 1:nl) = clw(:, 1:nl)            !RomP
     299      evap1(:, 1:nl) = evap(:, 1:nl)          !RomP
     300      ep1(:, 1:nl) = ep(:, 1:nl)              !RomP
     301      eplamM1(:, 1:nl) = eplamM(:, 1:nl)       !RomP+jyg
     302      wdtrainA1(:, 1:nl) = wdtrainA(:, 1:nl)  !RomP
     303      wdtrainM1(:, 1:nl) = wdtrainM(:, 1:nl)  !RomP
     304      qtc1(:, 1:nl) = qtc(:, 1:nl)
     305      sigt1(:, 1:nl) = sigt(:, 1:nl)
     306!
     307      ma1(:, nlp) = 0.
     308      vprecip1(:, nlp) = 0.
     309      vprecipi1(:, nlp) = 0.
     310      upwd1(:, nlp) = 0.
     311      dnwd1(:, nlp) = 0.
     312      dnwd01(:, nlp) = 0.
     313
     314!
     315      phi1    (:, 1:nl, 1:nl) = phi    (:, 1:nl, 1:nl)  !AC!
     316      phi21   (:, 1:nl, 1:nl) = phi2   (:, 1:nl, 1:nl)  !RomP
     317      sigij1  (:, 1:nl, 1:nl) = sigij  (:, 1:nl, 1:nl)  !RomP
     318      elij1   (:, 1:nl, 1:nl) = elij   (:, 1:nl, 1:nl)  !RomP
     319      epmlmMm1(:, 1:nl, 1:nl) = epmlmMm(:, 1:nl, 1:nl)  !RomP+jyg
    284320  ENDIF !(compress)
    285321!>jyg
Note: See TracChangeset for help on using the changeset viewer.