Changeset 5219 for LMDZ6/branches/Amaury_dev/libf/phylmd
- Timestamp:
- Sep 23, 2024, 2:25:05 PM (3 months ago)
- Location:
- LMDZ6/branches/Amaury_dev
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5150
- Property svn:mergeinfo changed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/traccoag_mod.F90
r5117 r5219 12 12 USE phys_local_var_mod, ONLY: mdw, R2SO4, DENSO4, f_r_wet, surf_PM25_sulf, & 13 13 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 15 14 R2SO4B, DENSO4B, f_r_wetB, sulfmmr, SAD_sulfate, sulfmmr_mode, nd_mode, reff_sulfate 16 15 USE dimphy 17 16 USE infotrac_phy, ONLY: nbtr_bin, nbtr_sulgas, nbtr, id_SO2_strat … … 83 82 INTEGER :: injdur_sai ! injection duration for SAI case [days] 84 83 INTEGER :: yr, is_bissext 84 REAL :: samoment2, samoment3! 2nd and 3rd order moments of size distribution 85 85 86 86 IF (is_mpi_root .AND. flag_verbose_strataer) THEN … … 355 355 sulfmmr_mode(:, :, :) = 0.0 356 356 nd_mode(:, :, :) = 0.0 357 357 reff_sulfate(:,:)=0.0 358 358 DO i = 1, klon 359 359 DO j = 1, klev 360 DO it = 1, nbtr_bin 360 samoment2=0.0 361 samoment3=0.0DO it = 1, nbtr_bin 361 362 !surf_PM25_sulf(i)=surf_PM25_sulf(i)+tr_seri(i,1,it+nbtr_sulgas)*m_part(i,1,it) & 362 363 !assume that particles consist of ammonium sulfate at the surface (132g/mol) … … 381 382 SAD_sulfate(i, j) = SAD_sulfate(i, j) + nd_mode(i, j, it) & ! [DRY part/m3A (in bin it)] 382 383 * 4. * RPI * (mdw(it) * f_r_wetB(i, j, it) / 2.)**2. & ! [WET SA of part it in m2] 383 * 1.e-2 ! conversion from m2/m3 to cm2/cm3A 384 * 1.e-2 ! conversion from m2/m3 to cm2/cm3A! samoment2 : 2nd order moment of WET sulfate aerosols (m2/m3) 385 samoment2 = samoment2 + nd_mode(i,j,it) & ! [DRY part/m3A (in bin it)] 386 & *( mdw(it)*f_r_wetB(i,j,it)/2. )**2. ! [WET SA of part it in m2] 387 ! samoment3 : 3nd order moment of WET sulfate aerosols (cm2/cm3) 388 samoment3 = samoment3 + nd_mode(i,j,it) & ! [DRY part/m3A (in bin it)] 389 & *( mdw(it)*f_r_wetB(i,j,it)/2. )**3. ! [WET SA of part it in m2] 384 390 ELSE 385 391 ! SAD_sulfate: SAD WET sulfate aerosols (cm2/cm3) … … 387 393 * 4. * RPI * (mdw(it) * f_r_wet(i, j) / 2.)**2. & ! [WET SA of part it in m2] 388 394 * 1.e-2 ! conversion from m2/m3 to cm2/cm3A 389 ENDIF 390 ENDDO 395 ! samoment2 : 2nd order moment of WET sulfate aerosols (m2/m3) 396 samoment2 = samoment2 + nd_mode(i,j,it) & ! [DRY part/m3A (in bin it)] 397 & *( mdw(it)*f_r_wet(i,j)/2. )**2. ! [WET SA of part it in m2] 398 ! samoment3 : 3nd order moment of WET sulfate aerosols (cm2/cm3) 399 samoment3 = samoment3 + nd_mode(i,j,it) & ! [DRY part/m3A (in bin it)] 400 & *( mdw(it)*f_r_wet(i,j)/2. )**3. ! [WET SA of part it in m2] ENDIF 401 ENDDO! reff_sulfate: effective radius of WET sulfate aerosols (cm) 402 reff_sulfate(i,j) = (samoment3 / samoment2) & 403 & *1.e2 ! conversion from m to cm 391 404 ENDDO 392 405 ENDDO 393 394 406 END SUBROUTINE traccoag 395 407 -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_local_var_mod.F90
r5193 r5219 763 763 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :) :: SAD_sulfate 764 764 !$OMP THREADPRIVATE(SAD_sulfate) 765 ! sulfate MMR in different modes (based on sulfmmr, it must be dry mmr) 765 ! Effective radius of wet surface aerosols (cm) 766 REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: reff_sulfate 767 !$OMP THREADPRIVATE(reff_sulfate) 768 ! sulfate MMR in different modes (based on sulfmmr, it must be dry mmr) 766 769 REAL, ALLOCATABLE, SAVE, DIMENSION(:, :, :) :: sulfmmr_mode 767 770 !$OMP THREADPRIVATE(sulfmmr_mode) … … 1265 1268 ALLOCATE (sulfmmr(klon, klev)) 1266 1269 ALLOCATE (SAD_sulfate(klon, klev)) 1270 ALLOCATE (reff_sulfate(klon,klev)) 1267 1271 ALLOCATE (sulfmmr_mode(klon, klev, nbtr_bin)) 1268 1272 ALLOCATE (nd_mode(klon, klev, nbtr_bin)) … … 1638 1642 DEALLOCATE (sulfmmr) 1639 1643 DEALLOCATE (SAD_sulfate) 1644 DEALLOCATE (reff_sulfate) 1640 1645 DEALLOCATE (sulfmmr_mode) 1641 1646 DEALLOCATE (nd_mode) -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_output_ctrlout_mod.F90
r5132 r5219 1452 1452 TYPE(ctrl_out), SAVE :: o_SAD_sulfate = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1453 1453 'SAD_sulfate', 'SAD WET sulfate aerosols', 'cm2/cm3', (/ ('', i=1, 10) /)) 1454 TYPE(ctrl_out), SAVE :: o_reff_sulfate = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1455 'reff_sulfate', 'Effective radius of WET sulfate aerosols', 'cm', (/ ('', i=1, 10) /)) 1454 1456 TYPE(ctrl_out), SAVE :: o_sulfmmr = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), & 1455 1457 'sulfMMR', 'Sulfate aerosol concentration (dry mass mixing ratio)', 'kg(H2SO4)/kg(air)', (/ ('', i=1, 10) /)) -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_output_write_mod.F90
r5218 r5219 258 258 o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, & 259 259 o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet, & 260 o_SAD_sulfate, o_ sulfmmr, o_nd_mode, o_sulfmmr_mode260 o_SAD_sulfate, o_reff_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode 261 261 262 262 USE ice_sursat_mod, ONLY: flight_m, flight_h2o … … 415 415 surf_PM25_sulf, tau_strat_550, tausum_strat, & 416 416 vsed_aer, tau_strat_1020, f_r_wet, & 417 SAD_sulfate, sulfmmr, nd_mode, sulfmmr_mode417 SAD_sulfate, reff_sulfate, sulfmmr, nd_mode, sulfmmr_mode 418 418 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_STRATAER 419 419 … … 1840 1840 CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2)) 1841 1841 CALL histwrite_phy(o_SAD_sulfate, SAD_sulfate) 1842 CALL histwrite_phy(o_reff_sulfate, reff_sulfate) 1842 1843 CALL histwrite_phy(o_sulfmmr, sulfmmr) 1843 1844 ! All BINs fields
Note: See TracChangeset
for help on using the changeset viewer.