Changeset 2306 for LMDZ5/trunk/libf


Ignore:
Timestamp:
Jun 23, 2015, 11:33:09 AM (9 years ago)
Author:
jyg
Message:

Improved diagnostics: pmflxr and pmflxs are now
the true vertical profiles of liquid and solid
convective precipitation (previously they where
merely diagnosed through a test on temperature).
The convective scheme internal variable for ice
precipitation is Vprecipi.

Location:
LMDZ5/trunk/libf/phylmd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/concvl.F90

    r2259 r2306  
    6060! Ma---------output-R-adiabatic ascent mass flux (kg/m2/s)
    6161! mip--------output-R-mass flux shed by adiabatic ascent (kg/m2/s)
    62 ! Vprecip----output-R-vertical profile of precipitations (kg/m2/s)
     62! Vprecip----output-R-vertical profile of total precipitation (kg/m2/s)
    6363! Tconv------output-R-environment temperature seen by convective scheme (K)
    6464! Cape-------output-R-CAPE (J/kg)
     
    109109!!       REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev)     !jyg
    110110  REAL Ma(klon, klev), mip(klon, klev), Vprecip(klon, klev+1)      !jyg
     111  REAL Vprecipi(klon, klev+1)                                      !jyg
    111112  REAL wght(klon, klev)                                            !RL
    112113
     
    415416                    iflag, d_t, d_q, d_u, d_v, d_tra, rain, kbas, ktop, &
    416417                    cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, &
    417                     Ma, mip, Vprecip, upwd, dnwd, dnwdbis, qcondc, wd, &
     418                    Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, &
    418419                    cape, cin, tvp, &
    419420                    dd_t, dd_q, plim1, plim2, asupmax, supmax0, &
     
    476477    END DO
    477478  END DO
    478 !                                                   !jyg
    479 ! --Separation neige/pluie (pour diagnostics)       !jyg
    480   DO k = 1, klev                                    !jyg
    481     DO i = 1, klon                                  !jyg
    482       IF (t1(i,k)<rtt) THEN                         !jyg
    483         pmflxs(i, k) = Vprecip(i, k)                !jyg
    484       ELSE                                          !jyg
    485         pmflxr(i, k) = Vprecip(i, k)                !jyg
    486       END IF                                        !jyg
    487     END DO                                          !jyg
    488   END DO                                            !jyg
     479!                                                     !jyg
     480  IF (iflag_con == 30 .OR. iflag_ice_thermo ==0) THEN
     481! --Separation neige/pluie (pour diagnostics)         !jyg
     482    DO k = 1, klev                                    !jyg
     483      DO i = 1, klon                                  !jyg
     484        IF (t1(i,k)<rtt) THEN                         !jyg
     485          pmflxs(i, k) = Vprecip(i, k)                !jyg
     486        ELSE                                          !jyg
     487          pmflxr(i, k) = Vprecip(i, k)                !jyg
     488        END IF                                        !jyg
     489      END DO                                          !jyg
     490    END DO                                            !jyg
     491  ELSE
     492    DO k = 1, klev                                    !jyg
     493      DO i = 1, klon                                  !jyg
     494        pmflxs(i, k) = Vprecipi(i, k)                 !jyg
     495        pmflxr(i, k) = Vprecip(i, k)-Vprecipi(i, k)   !jyg
     496      END DO                                          !jyg
     497    END DO                                            !jyg
     498  ENDIF
    489499
    490500! c      IF (if_ebil.ge.2) THEN
  • LMDZ5/trunk/libf/phylmd/cv3_routines.F90

    r2287 r2306  
    28042804                     nent, elij, traent, sig, &
    28052805                     tv, tvp, wghti, &
    2806                      iflag, precip, Vprecip, ft, fr, fu, fv, ftra, &
     2806                     iflag, precip, Vprecip, Vprecipi, &     ! jyg: Vprecipi
     2807                     ft, fr, fu, fv, ftra, &                 ! jyg
    28072808                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    28082809!!                     tls, tps,                             ! useless . jyg
     
    28552856      REAL dnwd0(nloc, nd), mip(nloc, nd)
    28562857      REAL Vprecip(nloc, nd+1)
     2858      REAL Vprecipi(nloc, nd+1)                           ! jyg: Vprecipi
    28572859!!      REAL tls(nloc, nd), tps(nloc, nd)                 ! useless . jyg
    28582860      REAL qcondc(nloc, nd) ! cld
     
    28912893    precip(il) = 0.0
    28922894    Vprecip(il, nd+1) = 0.0
     2895    Vprecipi(il, nd+1) = 0.0                              ! jyg: Vprecipi
    28932896    wd(il) = 0.0 ! gust
    28942897  END DO
     
    28972900    DO il = 1, ncum
    28982901      Vprecip(il, i) = 0.0
     2902      Vprecipi(il, i) = 0.0                               ! jyg
    28992903      ft(il, i) = 0.0
    29002904      fr(il, i) = 0.0
     
    29572961        IF (cvflag_ice) THEN
    29582962          Vprecip(il, i) = wt(il, i)*sigd(il)*(water(il,i)+ice(il,i))/grav
     2963          Vprecipi(il, i) = wt(il, i)*sigd(il)*ice(il,i)/grav                   ! jyg
    29592964        ELSE
    29602965          Vprecip(il, i) = wt(il, i)*sigd(il)*water(il, i)/grav
     2966          Vprecipi(il, i) = 0.                                                  ! jyg
    29612967        END IF
    29622968      END IF
     
    36053611        m(il, i) = m(il, i)/alpha_qpos(il)
    36063612        mp(il, i) = mp(il, i)/alpha_qpos(il)
    3607         Vprecip(il, i) = vprecip(il, i)/alpha_qpos(il)
     3613        Vprecip(il, i) = Vprecip(il, i)/alpha_qpos(il)
     3614        Vprecipi(il, i) = Vprecipi(il, i)/alpha_qpos(il)                     ! jyg
    36083615      END IF
    36093616    END DO
  • LMDZ5/trunk/libf/phylmd/cv3a_uncompress.F90

    r2259 r2306  
    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
     
    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)
     
    255258      mip1(:, 1:nl+1) = mip(:, 1:nl+1)
    256259      vprecip1(:, 1:nl+1) = vprecip(:, 1:nl+1)
     260      vprecipi1(:, 1:nl+1) = vprecipi(:, 1:nl+1)
    257261      upwd1(:, 1:nl+1) = upwd(:, 1:nl+1)
    258262      dnwd1(:, 1:nl+1) = dnwd(:, 1:nl+1)
  • LMDZ5/trunk/libf/phylmd/cva_driver.F90

    r2259 r2306  
    1616                      sig1, w01, & !input/output
    1717                      ptop21, sigd1, &
    18                       ma1, mip1, Vprecip1, upwd1, dnwd1, dnwd01, &
     18                      ma1, mip1, Vprecip1, Vprecipi1, upwd1, dnwd1, dnwd01, &      ! jyg
    1919                      qcondc1, wd1, &
    2020                      cape1, cin1, tvp1, &
     
    9898! Ma1           Real           Output       mass flux adiabatic updraft
    9999! mip1          Real           Output       mass flux shed by the adiabatic updraft
    100 ! Vprecip1      Real           Output       vertical profile of precipitations
     100! Vprecip1      Real           Output       vertical profile of total precipitation
     101! Vprecipi1     Real           Output       vertical profile of ice precipitation
    101102! upwd1         Real           Output       total upward mass flux (adiab+mixed)
    102103! dnwd1         Real           Output       saturated downward mass flux (mixed)
     
    222223! real Vprecip1(len,nd)
    223224  REAL, DIMENSION (len, ndp1), INTENT (OUT)          :: vprecip1
     225  REAL, DIMENSION (len, ndp1), INTENT (OUT)          :: vprecipi1
    224226  REAL, DIMENSION (len, nd), INTENT (OUT)            :: upwd1
    225227  REAL, DIMENSION (len, nd), INTENT (OUT)            :: dnwd1
     
    500502! real Vprecip(nloc,klev)
    501503  REAL vprecip(nloc, klev+1)
     504  REAL vprecipi(nloc, klev+1)
    502505  REAL tra(nloc, klev, ntra), trap(nloc, klev, ntra)
    503506  REAL ftra(nloc, klev, ntra), traent(nloc, klev, klev, ntra)
     
    593596  mip1(:, :) = 0.
    594597  vprecip1(:, :) = 0.
     598  vprecipi1(:, :) = 0.
    595599  upwd1(:, :) = 0.
    596600  dnwd1(:, :) = 0.
     
    10221026                     nent, elij, traent, sig, &
    10231027                     tv, tvp, wghti, &
    1024                      iflag, precip, vprecip, ft, fq, fu, fv, ftra, &
     1028                     iflag, precip, Vprecip, Vprecipi, ft, fq, fu, fv, ftra, &      ! jyg
    10251029                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    10261030!!                     tls, tps, &                            ! useless . jyg
     
    10711075                           precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, &
    10721076                           ft, fq, fu, fv, ftra, &
    1073                            sigd, ma, mip, vprecip, upwd, dnwd, dnwd0, &
     1077                           sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, &
    10741078                           qcondc, wd, cape, cin, &
    10751079                           tvp, &
     
    10841088                           precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, &
    10851089                           ft1, fq1, fu1, fv1, ftra1, &
    1086                            sigd1, ma1, mip1, vprecip1, upwd1, dnwd1, dnwd01, &
     1090                           sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, &
    10871091                           qcondc1, wd1, cape1, cin1, &
    10881092                           tvp1, &
Note: See TracChangeset for help on using the changeset viewer.