Changeset 5150 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Jul 31, 2024, 3:40:08 PM (4 months ago)
Author:
lebasn
Message:

StratAer?: add effective radius diag.

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

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/StratAer/traccoag_mod.F90

    r4998 r5150  
    1212    USE phys_local_var_mod, ONLY: mdw, R2SO4, DENSO4, f_r_wet, surf_PM25_sulf, &
    1313        & budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part, &
    14         & R2SO4B, DENSO4B, f_r_wetB, sulfmmr, SAD_sulfate, sulfmmr_mode, nd_mode
     14        & R2SO4B, DENSO4B, f_r_wetB, sulfmmr, SAD_sulfate, sulfmmr_mode, nd_mode, reff_sulfate
    1515   
    1616    USE dimphy
     
    8383    INTEGER                                :: injdur_sai          ! injection duration for SAI case [days]
    8484    INTEGER                                :: yr, is_bissext
     85    REAL                                   :: samoment2, samoment3! 2nd and 3rd order moments of size distribution
    8586
    8687    IF (is_mpi_root .AND. flag_verbose_strataer) THEN
     
    355356     sulfmmr_mode(:,:,:)=0.0
    356357     nd_mode(:,:,:)=0.0
     358     reff_sulfate(:,:)=0.0
    357359     
    358360     DO i=1,klon
    359361        DO j=1,klev
     362           samoment2=0.0
     363           samoment3=0.0
    360364           DO it=1, nbtr_bin
    361365              !surf_PM25_sulf(i)=surf_PM25_sulf(i)+tr_seri(i,1,it+nbtr_sulgas)*m_part(i,1,it) &
     
    382386                      &  *4.*RPI*( mdw(it)*f_r_wetB(i,j,it)/2. )**2. &       ! [WET SA of part it in m2]
    383387                      &  *1.e-2                                              ! conversion from m2/m3 to cm2/cm3A
     388!    samoment2 : 2nd order moment of WET sulfate aerosols (m2/m3)
     389                 samoment2 = samoment2 + nd_mode(i,j,it) &     ! [DRY part/m3A (in bin it)]
     390                      &  *( mdw(it)*f_r_wetB(i,j,it)/2. )**2.                     ! [WET SA of part it in m2]
     391!    samoment3 : 3nd order moment of WET sulfate aerosols (cm2/cm3)
     392                 samoment3 = samoment3 + nd_mode(i,j,it) &     ! [DRY part/m3A (in bin it)]
     393                      &  *( mdw(it)*f_r_wetB(i,j,it)/2. )**3.                     ! [WET SA of part it in m2]
    384394              ELSE
    385                  !     SAD_sulfate: SAD WET sulfate aerosols (cm2/cm3)
     395!     SAD_sulfate: SAD WET sulfate aerosols (cm2/cm3)
    386396                 SAD_sulfate(i,j) = SAD_sulfate(i,j) + nd_mode(i,j,it) &     ! [DRY part/m3A (in bin it)]
    387397                      &  *4.*RPI*( mdw(it)*f_r_wet(i,j)/2. )**2. &           ! [WET SA of part it in m2]
    388398                      &  *1.e-2                                              ! conversion from m2/m3 to cm2/cm3A
     399!    samoment2 : 2nd order moment of WET sulfate aerosols (m2/m3)
     400                 samoment2 = samoment2 + nd_mode(i,j,it) &     ! [DRY part/m3A (in bin it)]
     401                      &  *( mdw(it)*f_r_wet(i,j)/2. )**2.                          ! [WET SA of part it in m2]
     402!    samoment3 : 3nd order moment of WET sulfate aerosols (cm2/cm3)
     403                 samoment3 = samoment3 + nd_mode(i,j,it) &     ! [DRY part/m3A (in bin it)]
     404                      &  *( mdw(it)*f_r_wet(i,j)/2. )**3.                          ! [WET SA of part it in m2]
    389405              ENDIF
    390406           ENDDO
     407!     reff_sulfate: effective radius of WET sulfate aerosols (cm)
     408           reff_sulfate(i,j) = (samoment3 / samoment2) &
     409                & *1.e2                                              ! conversion from m to cm
    391410        ENDDO
    392411     ENDDO
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r5148 r5150  
    768768      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SAD_sulfate
    769769!$OMP THREADPRIVATE(SAD_sulfate)
     770!     Effective radius of wet surface aerosols (cm)
     771      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: reff_sulfate
     772!$OMP THREADPRIVATE(reff_sulfate)
    770773!     sulfate MMR in different modes (based on sulfmmr, it must be dry mmr)
    771774      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sulfmmr_mode
     
    12771280      ALLOCATE (sulfmmr(klon,klev))
    12781281      ALLOCATE (SAD_sulfate(klon,klev))
     1282      ALLOCATE (reff_sulfate(klon,klev))
    12791283      ALLOCATE (sulfmmr_mode(klon,klev,nbtr_bin))
    12801284      ALLOCATE (nd_mode(klon,klev,nbtr_bin))
     
    16501654      DEALLOCATE (sulfmmr)
    16511655      DEALLOCATE (SAD_sulfate)
     1656      DEALLOCATE (reff_sulfate)
    16521657      DEALLOCATE (sulfmmr_mode)
    16531658      DEALLOCATE (nd_mode)
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r5109 r5150  
    14531453  TYPE(ctrl_out), SAVE :: o_SAD_sulfate = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14541454    'SAD_sulfate', 'SAD WET sulfate aerosols', 'cm2/cm3', (/ ('', i=1, 10) /))
     1455  TYPE(ctrl_out), SAVE :: o_reff_sulfate = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1456    'reff_sulfate', 'Effective radius of WET sulfate aerosols', 'cm', (/ ('', i=1, 10) /))
    14551457  TYPE(ctrl_out), SAVE :: o_sulfmmr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14561458    'sulfMMR', 'Sulfate aerosol concentration (dry mass mixing ratio)', 'kg(H2SO4)/kg(air)', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r5138 r5150  
    259259         o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, &
    260260         o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet, &
    261          o_SAD_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode
     261         o_SAD_sulfate, o_reff_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode
    262262#endif
    263263
     
    418418         surf_PM25_sulf, tau_strat_550, tausum_strat, &
    419419         vsed_aer, tau_strat_1020, f_r_wet, &
    420          SAD_sulfate, sulfmmr, nd_mode, sulfmmr_mode
     420         SAD_sulfate, reff_sulfate, sulfmmr, nd_mode, sulfmmr_mode
    421421#endif
    422422
     
    18501850          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2))
    18511851          CALL histwrite_phy(o_SAD_sulfate, SAD_sulfate)
     1852          CALL histwrite_phy(o_reff_sulfate, reff_sulfate)
    18521853          CALL histwrite_phy(o_sulfmmr, sulfmmr)
    18531854          ! All BINs fields
Note: See TracChangeset for help on using the changeset viewer.