Changeset 2284 for LMDZ5/trunk/libf


Ignore:
Timestamp:
May 19, 2015, 6:33:30 PM (9 years ago)
Author:
jyg
Message:

Bug fixing concerning aerosol scavenging (bugs in
cvltr_scav and in lsc_scav) and aerosol
concentration output (the values at beginning,
instead of end, of time step were output).

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

Legend:

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

    r2147 r2284  
    122122  real                           :: conservMA
    123123
    124   ! ======================================================
    125   ! calcul de l'impaction
    126   ! ======================================================
    127 
    128   ! impaction sur la surface de la colonne de la descente insaturee
    129   ! On prend la moyenne des precip entre le niveau i+1 et i
    130   ! I=3/4* (P(1+1)+P(i))/2 / (sigd*r*rho_l)
    131   ! 1000kg/m3= densite de l'eau
    132   ! 0.75e-3 = 3/4 /1000
    133   ! Par la suite, I est tout le temps multiplie par sig_d pour avoir l'impaction sur la surface de la maille
    134   ! on le neglige ici pour simplifier le code
    135 
    136   DO j=1,klev-1
    137      DO i=1,klon
    138         imp(i,j) = coefcoli_3d(i,j)*0.75e-3/rdrop *&
    139              0.5*(pmflxr(i,j+1)+pmflxs(i,j+1)+pmflxr(i,j)+pmflxs(i,j))
    140      ENDDO
    141   ENDDO
     124!jyg<
     125!!  ! ======================================================
     126!!  ! calcul de l'impaction
     127!!  ! ======================================================
     128!!
     129!!  ! impaction sur la surface de la colonne de la descente insaturee
     130!!  ! On prend la moyenne des precip entre le niveau i+1 et i
     131!!  ! I=3/4* (P(1+1)+P(i))/2 / (sigd*r*rho_l)
     132!!  ! 1000kg/m3= densite de l'eau
     133!!  ! 0.75e-3 = 3/4 /1000
     134!!  ! Par la suite, I est tout le temps multiplie par sig_d pour avoir l'impaction sur la surface de la maille
     135!!!!  ! on le neglige ici pour simplifier le code
     136!!
     137!!  DO j=1,klev-1
     138!!     DO i=1,klon
     139!!        imp(i,j) = coefcoli_3d(i,j)*0.75e-3/rdrop *&
     140!!             0.5*(pmflxr(i,j+1)+pmflxs(i,j+1)+pmflxr(i,j)+pmflxs(i,j))
     141!!     ENDDO
     142!!  ENDDO
     143!>jyg
    142144  !
    143145  ! initialisation pour flux de traceurs, td et autre
     
    237239  END DO
    238240
     241!jyg<
     242  ! ======================================================
     243  ! calcul de l'impaction
     244  ! ======================================================
     245
     246  ! impaction sur la surface de la colonne de la descente insaturee
     247  ! On prend la moyenne des precip entre le niveau i+1 et i
     248  ! I=3/4* (P(1+1)+P(i))/2 / (sigd*r*rho_l)
     249  ! 1000kg/m3= densite de l'eau
     250  ! 0.75e-3 = 3/4 /1000
     251  ! Par la suite, I est tout le temps multiplie par sig_d pour avoir l'impaction sur la surface de la maille
     252  ! on le neglige ici pour simplifier le code
     253
     254  DO j=1,klev-1
     255     DO i=1,klon
     256        imp(i,j) = coefcoli_3d(i,j)*0.75e-3/rdrop *&
     257             0.5*(pmflxr(i,j+1)+pmflxs(i,j+1)+pmflxr(i,j)+pmflxs(i,j))
     258     ENDDO
     259  ENDDO
     260!>jyg
    239261  ! =========================================
    240262  ! calcul des tendances liees au downdraft
  • LMDZ5/trunk/libf/phylmd/lsc_scav.F90

    r1907 r2284  
    11!$Id $
    22
    3 SUBROUTINE lsc_scav(pdtime,it,iflag_lscav,oliq,flxr,flxs,rneb,beta_fisrt,  &
     3SUBROUTINE lsc_scav(pdtime,it,iflag_lscav,  &
     4!jyg<
     5                    aerosol,  &
     6!>jyg
     7                    oliq,flxr,flxs,rneb,beta_fisrt,  &
    48                    beta_v1,pplay,paprs,t,tr_seri,d_tr_insc,          &
    59                    d_tr_bcscav,d_tr_evap,qPrls)
     
    3741  REAL,DIMENSION(klon,klev),INTENT(IN)   :: t        ! temperature
    3842! tracers
     43  LOGICAL,DIMENSION(nbtr), INTENT(IN)         :: aerosol
    3944  REAL,DIMENSION(klon,klev,nbtr),INTENT(IN)   :: tr_seri        ! q de traceur 
    4045  REAL,DIMENSION(klon,klev),INTENT(IN)        :: beta_fisrt     ! taux de conversion de l'eau cond
     
    172177  ENDDO
    173178
    174     IF (it.gt.1) THEN                               !  aerosol   
     179!jyg<
     180!!    IF (it.gt.1) THEN                               !  aerosol   
     181!! Temporary correction: all non-aerosol tracers are dealt with in the same way.
     182!! Should be updated once it has been decided how gases should be dealt with.
     183    IF (aerosol(it)) THEN
     184!>jyg
    175185      frac_ev=frac_aer
    176186    ELSE                                                !  gas
     
    178188    ENDIF
    179189
    180     IF(it.gt.1) then  ! aerosol
     190!jyg<
     191!!    IF (it.gt.1) THEN                               !  aerosol   
     192    IF (aerosol(it)) THEN
     193!>jyg
    181194     DO k=1, klev
    182195      DO i=1, klon
     
    214227
    215228!  below-cloud impaction
    216     IF(it.eq.1) then
     229!jyg<
     230!!    IF (it.eq.1) THEN
     231    IF (.NOT.aerosol(it)) THEN
     232!>jyg
    217233      d_tr_bcscav(i,k,it)=0.
    218234    ELSE
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2282 r2284  
    215215         lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, &
    216216         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
    217          ql_seri, zphi, u_seri, v_seri, omega, cldfra, &
     217!jyg<
     218!!         ql_seri, zphi, u_seri, v_seri, omega, cldfra, &
     219         ql_seri, tr_seri, &
     220         zphi, u_seri, v_seri, omega, cldfra, &
     221!>jyg
    218222         rneb, rnebjn, zx_rh, d_t_dyn, d_q_dyn, &
    219223         d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
     
    14521456              IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    14531457
    1454              CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
     1458!jyg<
     1459!!             CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
     1460             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
     1461!>jyg
    14551462             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
    14561463             CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
     
    14691476             IF(vars_defined) THEN
    14701477                DO k=1,klev
    1471                    zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
     1478!jyg<
     1479!!                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
     1480                   zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
     1481!>jyg
    14721482                ENDDO
    14731483             ENDIF
  • LMDZ5/trunk/libf/phylmd/phytrac_mod.F90

    r2210 r2284  
    769769             ! Liu (2001) proposed to use 1.5e-3 kg/kg
    770770
    771              CALL lsc_scav(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
     771!jyg<
     772!!             CALL lsc_scav(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
     773             CALL lsc_scav(pdtphys,it,iflag_lscav,aerosol,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
     774!>jyg
    772775                  beta_v1,pplay,paprs,t_seri,tr_seri,d_tr_insc,   &
    773776                  d_tr_bcscav,d_tr_evapls,qPrls)
Note: See TracChangeset for help on using the changeset viewer.