Changeset 5605 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Apr 7, 2025, 4:05:50 PM (4 months ago)
Author:
lebasn
Message:

StratAer?: add new diags (4 new longwaves for ext+AOD and SO2 chem loss) + update field/file_def.

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

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/StratAer/calcaerosolstrato_rrtm.f90

    r5559 r5605  
    77  USE iniprint_mod_h
    88  USE phys_state_var_mod, ONLY: tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, tau_aero_lw_rrtm
    9   USE phys_local_var_mod, ONLY: mdw, tausum_aero, tausum_strat, tau_strat_550, tau_strat_1020, stratomask
     9  USE phys_local_var_mod, ONLY: mdw, tausum_aero, tausum_strat, tau_strat_443, tau_strat_550, &
     10       tau_strat_670, tau_strat_765, tau_strat_1020, tau_strat_10um, stratomask
    1011  USE aero_mod
    1112  USE dimphy
     
    8687  DO k=1,klev
    8788    IF (stratomask(i,k).GT.0.5) THEN
    88       tausum_strat(i,1)=tausum_strat(i,1)+tau_strat_wave(i,k,2)  !--550 nm
    89       tausum_strat(i,2)=tausum_strat(i,2)+tau_strat_wave(i,k,5)  !--1020 nm
    90       tausum_strat(i,3)=tausum_strat(i,3)+tau_strat_wave(i,k,6)  !--10 um
     89      tausum_strat(i,1)=tausum_strat(i,1)+tau_strat_wave(i,k,1)  !--443 nm
     90      tausum_strat(i,2)=tausum_strat(i,2)+tau_strat_wave(i,k,2)  !--550 nm
     91      tausum_strat(i,3)=tausum_strat(i,3)+tau_strat_wave(i,k,3)  !--670 nm
     92      tausum_strat(i,4)=tausum_strat(i,4)+tau_strat_wave(i,k,4)  !--765 nm
     93      tausum_strat(i,5)=tausum_strat(i,5)+tau_strat_wave(i,k,5)  !--1020 nm
     94      tausum_strat(i,6)=tausum_strat(i,6)+tau_strat_wave(i,k,6)  !--10 um
    9195    ENDIF
    9296  ENDDO
     
    97101    zrho=pplay(i,k)/t_seri(i,k)/RD            !air density in kg/m3
    98102    zdz=(paprs(i,k)-paprs(i,k+1))/zrho/RG     !thickness of layer in m
    99     tau_strat_550(i,k)=tau_strat_wave(i,k,2)/zdz
    100     tau_strat_1020(i,k)=tau_strat_wave(i,k,5)/zdz
     103        tau_strat_443(i,k)=tau_strat_wave(i,k,1)/zdz
     104        tau_strat_550(i,k)=tau_strat_wave(i,k,2)/zdz
     105        tau_strat_670(i,k)=tau_strat_wave(i,k,3)/zdz
     106        tau_strat_765(i,k)=tau_strat_wave(i,k,4)/zdz
     107        tau_strat_1020(i,k)=tau_strat_wave(i,k,5)/zdz
     108        tau_strat_10um(i,k)=tau_strat_wave(i,k,6)/zdz
    101109  ENDDO
    102110  ENDDO
  • LMDZ6/trunk/libf/phylmd/StratAer/so2_to_h2so4.f90

    r5268 r5605  
    99  USE yomcst_mod_h, ONLY : RG, RD
    1010  ! lifetime (sec) et O3_clim (VMR)
    11   USE phys_local_var_mod, ONLY : SO2_lifetime, H2SO4_lifetime, O3_clim, budg_3D_so2_to_h2so4, budg_so2_to_h2so4
     11  USE phys_local_var_mod, ONLY : SO2_lifetime,H2SO4_lifetime,O3_clim,budg_3D_so2_to_h2so4,budg_so2_to_h2so4,SO2_chlm
    1212  USE strataer_local_var_mod, ONLY : flag_OH_reduced, flag_H2SO4_photolysis, flag_min_rreduce
    1313 
     
    3232  budg_3D_so2_to_h2so4(:,:)=0.0
    3333  budg_so2_to_h2so4(:)=0.0
    34 
     34  SO2_chlm(:,:)=0.0
     35 
    3536  DO ilon=1, klon
    3637     DO ilev=1, klev
     
    108109           ! IF (SO2_lifetime(ilon,ilev).GT.0.0 .AND. SO2_lifetime(ilon,ilev).LT.1.E10) THEN
    109110           
     111           SO2_chlm(ilon,ilev) = tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/rreduce)) * &
     112                pplay(ilon,ilev)/(t_seri(ilon,ilev)*1.38e-19)  / pdtphys  !SO2 loss rate [mole.cm-3.s-1]
    110113           
    111114           IF (flag_H2SO4_photolysis) THEN
     
    145148                (paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys
    146149           budg_so2_to_h2so4(ilon)=budg_so2_to_h2so4(ilon)+budg_3D_so2_to_h2so4(ilon,ilev)
     150        ELSE
     151           ! troposphere
     152           ! SO2 tropospheric lifetime (in sec) set to 5 days
     153           rreduce =  5.0*24.0*60.0*60.0
     154           rrate =tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/rreduce))
     155           tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) - rrate
     156           SO2_chlm(ilon,ilev) = rrate * &
     157                pplay(ilon,ilev)/(t_seri(ilon,ilev)*1.38e-19)  / pdtphys  !SO2 loss rate [moleccm-3s-1]
    147158        ENDIF
    148159        ! IF (is_strato(ilon,ilev)) THEN
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r5569 r5605  
    745745      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: cg_bin
    746746!$OMP THREADPRIVATE(cg_bin)
     747      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: SO2_chlm
     748!$OMP THREADPRIVATE(SO2_chlm)
     749      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_443
     750!$OMP THREADPRIVATE(tau_strat_443)
    747751      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_550
    748752!$OMP THREADPRIVATE(tau_strat_550)
     753      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_670
     754!$OMP THREADPRIVATE(tau_strat_670)
     755      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_765
     756!$OMP THREADPRIVATE(tau_strat_765)
    749757      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_1020
    750758!$OMP THREADPRIVATE(tau_strat_1020)
     759      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tau_strat_10um
     760!$OMP THREADPRIVATE(tau_strat_10um)
    751761      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tausum_strat
    752762!$OMP THREADPRIVATE(tausum_strat)
     
    12541264      ALLOCATE (piz_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
    12551265      ALLOCATE (cg_bin(nbands_sw_rrtm+nbands_lw_rrtm+nwave,nbtr))
     1266      ALLOCATE (SO2_chlm(klon,klev))
     1267      ALLOCATE (tau_strat_443(klon,klev))
    12561268      ALLOCATE (tau_strat_550(klon,klev))
     1269      ALLOCATE (tau_strat_670(klon,klev))
     1270      ALLOCATE (tau_strat_765(klon,klev))
    12571271      ALLOCATE (tau_strat_1020(klon,klev))
     1272      ALLOCATE (tau_strat_10um(klon,klev))
    12581273      ALLOCATE (tausum_strat(klon,3))
    12591274      ALLOCATE (budg_dep_dry_ocs(klon))
     
    16521667      DEALLOCATE (piz_bin)
    16531668      DEALLOCATE (cg_bin)
     1669      DEALLOCATE (SO2_chlm)
     1670      DEALLOCATE (tau_strat_443)
    16541671      DEALLOCATE (tau_strat_550)
     1672      DEALLOCATE (tau_strat_670)
     1673      DEALLOCATE (tau_strat_765)
    16551674      DEALLOCATE (tau_strat_1020)
     1675      DEALLOCATE (tau_strat_10um)
    16561676      DEALLOCATE (tausum_strat)
    16571677      DEALLOCATE (surf_PM25_sulf)
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r5491 r5605  
    14471447
    14481448!--extinction coefficient
     1449  TYPE(ctrl_out), SAVE :: o_ext_strat_443 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1450    'ext_strat_443', 'Strat. aerosol extinction coefficient at 443 nm', '1/m', (/ ('', i=1, 10) /))
    14491451  TYPE(ctrl_out), SAVE :: o_ext_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14501452    'ext_strat_550', 'Strat. aerosol extinction coefficient at 550 nm', '1/m', (/ ('', i=1, 10) /))
     1453  TYPE(ctrl_out), SAVE :: o_ext_strat_670 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1454    'ext_strat_670', 'Strat. aerosol extinction coefficient at 670 nm', '1/m', (/ ('', i=1, 10) /))
     1455  TYPE(ctrl_out), SAVE :: o_ext_strat_765 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1456    'ext_strat_765', 'Strat. aerosol extinction coefficient at 765 nm', '1/m', (/ ('', i=1, 10) /))
    14511457  TYPE(ctrl_out), SAVE :: o_ext_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14521458    'ext_strat_1020', 'Strat. aerosol extinction coefficient at 1020 nm', '1/m', (/ ('', i=1, 10) /))
     1459  TYPE(ctrl_out), SAVE :: o_ext_strat_10um = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1460    'ext_strat_10um', 'Strat. aerosol extinction coefficient at 10 um', '1/m', (/ ('', i=1, 10) /))
    14531461!--strat aerosol optical depth
     1462  TYPE(ctrl_out), SAVE :: o_tau_strat_443 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1463    'OD443_strat_only', 'Stratospheric Aerosol Optical depth at 443 nm ', '1', (/ ('', i=1, 10) /))
    14541464  TYPE(ctrl_out), SAVE :: o_tau_strat_550 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14551465    'OD550_strat_only', 'Stratospheric Aerosol Optical depth at 550 nm ', '1', (/ ('', i=1, 10) /))
     1466  TYPE(ctrl_out), SAVE :: o_tau_strat_670 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1467    'OD670_strat_only', 'Stratospheric Aerosol Optical depth at 670 nm ', '1', (/ ('', i=1, 10) /))
     1468  TYPE(ctrl_out), SAVE :: o_tau_strat_765 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1469    'OD765_strat_only', 'Stratospheric Aerosol Optical depth at 765 nm ', '1', (/ ('', i=1, 10) /))
    14561470  TYPE(ctrl_out), SAVE :: o_tau_strat_1020 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14571471    'OD1020_strat_only', 'Stratospheric Aerosol Optical depth at 1020 nm ', '1', (/ ('', i=1, 10) /))
     1472  TYPE(ctrl_out), SAVE :: o_tau_strat_10um = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1473    'OD10um_strat_only', 'Stratospheric Aerosol Optical depth at 10 um ', '1', (/ ('', i=1, 10) /))
    14581474  TYPE(ctrl_out), SAVE :: o_SAD_sulfate = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14591475    'SAD_sulfate', 'SAD WET sulfate aerosols', 'cm2/cm3', (/ ('', i=1, 10) /))
     
    14671483  TYPE(ctrl_out), SAVE :: o_R2SO4 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14681484    'R2SO4', 'H2SO4 mass fraction in aerosol', '%', (/ ('', i=1, 10) /))
     1485  TYPE(ctrl_out), SAVE :: o_SO2_chlm = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
     1486    'SO2_CHLM', 'SO2 chemical loss rate', 'part/cm3/s', (/ ('', i=1, 10) /))
    14691487  TYPE(ctrl_out), SAVE :: o_OCS_lifetime = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 1/), &
    14701488    'OCS_lifetime', 'OCS lifetime', 's', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r5585 r5605  
    264264         o_budg_emi_ocs, o_budg_emi_so2, o_budg_emi_h2so4, o_budg_emi_part, &
    265265         o_budg_ocs_to_so2, o_budg_so2_to_h2so4, o_budg_h2so4_to_part, &
    266          o_surf_PM25_sulf, o_ext_strat_550, o_tau_strat_550, &
    267          o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet, &
    268          o_SAD_sulfate, o_reff_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode
     266         o_surf_PM25_sulf, o_ext_strat_443, o_tau_strat_443, o_ext_strat_550, o_tau_strat_550, &
     267         o_ext_strat_670, o_tau_strat_670, o_ext_strat_765, o_tau_strat_765, o_vsed_aer, &
     268         o_tau_strat_1020, o_ext_strat_1020, o_tau_strat_10um, o_ext_strat_10um, o_f_r_wet, &
     269         o_SAD_sulfate, o_reff_sulfate, o_sulfmmr, o_nd_mode, o_sulfmmr_mode,o_SO2_chlm
    269270
    270271    USE lmdz_lscp_ini, ONLY: ok_poprecip
     
    424425         budg_emi_ocs, budg_emi_so2, budg_emi_h2so4, budg_emi_part, &
    425426         budg_ocs_to_so2, budg_so2_to_h2so4, budg_h2so4_to_part, &
    426          surf_PM25_sulf, tau_strat_550, tausum_strat, &
    427          vsed_aer, tau_strat_1020, f_r_wet, &
    428          SAD_sulfate, reff_sulfate, sulfmmr, nd_mode, sulfmmr_mode
     427         surf_PM25_sulf,  tau_strat_443, tau_strat_550, tau_strat_670, tau_strat_765, &
     428         tausum_strat, vsed_aer, tau_strat_1020, tau_strat_10um, f_r_wet, &
     429         SAD_sulfate, reff_sulfate, sulfmmr, nd_mode, sulfmmr_mode, SO2_chlm
    429430
    430431    USE carbon_cycle_mod, ONLY: fco2_ff, fco2_bb, fco2_land, fco2_ocean
     
    18711872          CALL histwrite_phy(o_vsed_aer, vsed_aer)
    18721873          CALL histwrite_phy(o_f_r_wet, f_r_wet)
     1874          CALL histwrite_phy(o_SO2_chlm, SO2_chlm)
     1875          CALL histwrite_phy(o_ext_strat_443, tau_strat_443)
    18731876          CALL histwrite_phy(o_ext_strat_550, tau_strat_550)
     1877          CALL histwrite_phy(o_ext_strat_670, tau_strat_670)
     1878          CALL histwrite_phy(o_ext_strat_765, tau_strat_765)
    18741879          CALL histwrite_phy(o_ext_strat_1020, tau_strat_1020)
    1875           CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,1))
    1876           CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,2))
     1880          CALL histwrite_phy(o_ext_strat_10um, tau_strat_10um)
     1881          CALL histwrite_phy(o_tau_strat_443, tausum_strat(:,1))
     1882          CALL histwrite_phy(o_tau_strat_550, tausum_strat(:,2))
     1883          CALL histwrite_phy(o_tau_strat_670, tausum_strat(:,3))
     1884          CALL histwrite_phy(o_tau_strat_765, tausum_strat(:,4))
     1885          CALL histwrite_phy(o_tau_strat_1020, tausum_strat(:,5))
     1886          CALL histwrite_phy(o_tau_strat_10um, tausum_strat(:,6))
    18771887          CALL histwrite_phy(o_SAD_sulfate, SAD_sulfate)
    18781888          CALL histwrite_phy(o_reff_sulfate, reff_sulfate)
Note: See TracChangeset for help on using the changeset viewer.