Changeset 3318


Ignore:
Timestamp:
Apr 16, 2018, 6:30:59 PM (6 years ago)
Author:
jghattas
Message:

Integration des developpements fait sur la trunk par O. Boucher concernant le MACspV2 aerosol plume climatology(nouveau option flag_aersol=7). Les commits suivants fait sur le trunk sont ici merge : [3274], [3279], [3287], [3288], [3290], [3295], [3296], [3297].
Tout les modifications dans newmicro.f90 ne sont pas retenu mais les changemnets lie au flag_aerosol=7 sont prise.

Location:
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/conf_phys_m.F90

    r3137 r3318  
    414414    ! - flag_aerosol=5 => dust only
    415415    ! - flag_aerosol=6 => all aerosol
     416    ! - flag_aerosol=7 => natural aerosol + MACv2SP
    416417
    417418    flag_aerosol_omp = 0
     
    24482449
    24492450    ! Flag_aerosol cannot be to zero if we are in coupled mode for aerosol
    2450     IF (aerosol_couple .AND. flag_aerosol .eq. 0 ) THEN
     2451    IF (aerosol_couple .AND. flag_aerosol .EQ. 0 ) THEN
    24512452       CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if aerosol_couple=y ', 1)
    24522453    ENDIF
    24532454
    24542455    ! flag_aerosol need to be different to zero if ok_cdnc is activated
    2455     IF (ok_cdnc .AND. flag_aerosol .eq. 0) THEN
     2456    IF (ok_cdnc .AND. flag_aerosol .EQ. 0) THEN
    24562457       CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if ok_cdnc is activated ', 1)
    24572458    ENDIF
     
    24602461    IF (ok_aie .AND. .NOT. ok_cdnc) THEN
    24612462       CALL abort_physic('conf_phys', 'ok_cdnc must be set to y if ok_aie is activated',1)
     2463    ENDIF
     2464
     2465    ! flag_aerosol=7 => MACv2SP climatology
     2466    IF (flag_aerosol.EQ.7.AND. iflag_rrtm.NE.1) THEN
     2467       CALL abort_physic('conf_phys', 'flag_aerosol=7 (MACv2SP) can only be activated with RRTM',1)
     2468    ENDIF
     2469    IF (flag_aerosol.EQ.7.AND. NSW.NE.6) THEN
     2470       CALL abort_physic('conf_phys', 'flag_aerosol=7 (MACv2SP) can only be activated with NSW=6',1)
    24622471    ENDIF
    24632472
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/newmicro.F90

    r3283 r3318  
    33
    44
    5 SUBROUTINE newmicro(ok_cdnc, bl95_b0, bl95_b1, paprs, pplay, t, pqlwp, pclc, &
     5SUBROUTINE newmicro(flag_aerosol, ok_cdnc, bl95_b0, bl95_b1, paprs, pplay, t, pqlwp, pclc, &
    66    pcltau, pclemi, pch, pcl, pcm, pct, pctlwp, xflwp, xfiwp, xflwc, xfiwc, &
    77    mass_solu_aero, mass_solu_aero_pi, pcldtaupi, re, fl, reliq, reice, &
     
    1010  USE dimphy
    1111  USE phys_local_var_mod, ONLY: scdnc, cldncl, reffclwtop, lcc, reffclws, &
    12     reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, zfice
     12    reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, &
     13    zfice, dNovrN
    1314  USE phys_state_var_mod, ONLY: rnebcon, clwcon
    1415  USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14)
     
    142143  ! within the grid cell)
    143144
     145  INTEGER flag_aerosol
    144146  LOGICAL ok_cdnc
    145147  REAL bl95_b0, bl95_b1 ! Parameter in B&L 95-Formula
     
    257259        ! to be within [20, 1000 cm^3]
    258260
    259         ! --present-day case
    260         cdnc(i, k) = 10.**(bl95_b0+bl95_b1*log(max(mass_solu_aero(i,k), &
    261           1.E-4))/log(10.))*1.E6 !-m-3
    262         cdnc(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc(i,k)))
    263261
    264262        ! --pre-industrial case
     
    266264          1.E-4))/log(10.))*1.E6 !-m-3
    267265        cdnc_pi(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc_pi(i,k)))
     266
     267        ! --present-day case
     268        ! --flag_aerosol=7 => MACv2SP climatology 
     269        ! in this case there is an enhancement factor
     270        IF (flag_aerosol .EQ. 7) THEN
     271           cdnc(i, k) = cdnc_pi(i,k)*dNovrN(i)
     272        ELSE
     273           !--standard case, present day
     274           cdnc(i, k) = 10.**(bl95_b0+bl95_b1*log(max(mass_solu_aero(i,k), &
     275                1.E-4))/log(10.))*1.E6 !-m-3
     276           cdnc(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc(i,k)))
     277        END IF
     278
     279
    268280
    269281        ! --present-day case
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_local_var_mod.F90

    r3250 r3318  
    151151      REAL, SAVE, ALLOCATABLE :: scdnc(:,:)
    152152      !$OMP THREADPRIVATE(scdnc)
     153      REAL, SAVE, ALLOCATABLE :: dNovrN(:)
     154      !$OMP THREADPRIVATE(dNovrN)
    153155      REAL, SAVE, ALLOCATABLE :: cldncl(:)
    154156      !$OMP THREADPRIVATE(cldncl)
     
    615617      ALLOCATE(tau3d_aero(klon,klev,nwave,naero_tot))
    616618      ALLOCATE(scdnc(klon, klev))
     619      ALLOCATE(dNovrN(klon))
    617620      ALLOCATE(cldncl(klon))
    618621      ALLOCATE(reffclwtop(klon))
     
    909912      DEALLOCATE(tau3d_aero)
    910913      DEALLOCATE(scdnc)
     914      DEALLOCATE(dNovrN)
    911915      DEALLOCATE(cldncl)
    912916      DEALLOCATE(reffclwtop)
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90

    r3301 r3318  
    35643564                        tausum_aero, drytausum_aero, tau3d_aero)
    35653565#endif
     3566
     3567                   IF (flag_aerosol .EQ. 7) THEN
     3568                      CALL MACv2SP(pphis,pplay,paprs,longitude_deg,latitude_deg,  &
     3569                                   tau_aero_sw_rrtm,piz_aero_sw_rrtm,cg_aero_sw_rrtm)
     3570                   ENDIF
     3571
    35663572                   !
    35673573                ELSE IF (NSW.EQ.2) THEN
     
    36883694#endif
    36893695          ENDIF
    3690           CALL newmicro (ok_cdnc, bl95_b0, bl95_b1, &
     3696          CALL newmicro (flag_aerosol, ok_cdnc, bl95_b0, bl95_b1, &
    36913697               paprs, pplay, t_seri, cldliq, cldfra, &
    36923698               cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, &
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90

    r2951 r3318  
    381381     ALLOCATE (aerosol_name(nb_aer))
    382382     aerosol_name(1) = id_CIDUSTM_phy
    383   ELSEIF (flag_aerosol .EQ. 6) THEN
     383  ELSEIF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
    384384     nb_aer = 13
    385385     ALLOCATE (aerosol_name(nb_aer))
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90

    r2842 r3318  
    507507     ALLOCATE (aerosol_name(nb_aer))
    508508     aerosol_name(1) = id_CIDUSTM_phy
    509   ELSEIF (flag_aerosol .EQ. 6) THEN
     509  ELSEIF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
    510510     nb_aer = 13
    511511     ALLOCATE (aerosol_name(nb_aer))
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_lw_rrtm.F90

    r3101 r3318  
    4646  IF (ok_alw) THEN                                   !--aerosol LW effects
    4747   !
    48    IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6) THEN  !-Dust
     48   IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6.OR.flag_aerosol.EQ.7) THEN  !-Dust
    4949    !
    5050    zdh(:,:)=pdel(:,:)/(RG*zrho(:,:))      ! m
Note: See TracChangeset for help on using the changeset viewer.