Ignore:
Timestamp:
Nov 5, 2018, 3:24:59 PM (6 years ago)
Author:
Laurent Fairhead
Message:

Undoing merge with trunk (r3356) to properly register Yann's latest modifications

Location:
LMDZ6/branches/DYNAMICO-conv
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/DYNAMICO-conv

  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/aerophys.F90

    r3356 r3411  
    22!
    33MODULE aerophys
    4 !
    5   IMPLICIT NONE
    64!
    75  REAL,PARAMETER                         :: ropx=1500.0              ! default aerosol particle mass density [kg/m3]
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/interp_sulf_input.F90

    r3356 r3411  
    3232  INTEGER, SAVE :: n_lev   ! number of levels in the input data
    3333  INTEGER n_mth   ! number of months in the input data
     34  REAL OCS_tmp, SO2_tmp
    3435  INTEGER, SAVE :: mth_pre
    3536!$OMP THREADPRIVATE(mth_pre)
     
    237238    DO k=1, klev
    238239      !
    239       !--OCS and SO2 prescribed back to their clim values below p_bound
     240      OCS_tmp=tr_seri(i,k,id_OCS_strat)
     241      SO2_tmp=tr_seri(i,k,id_SO2_strat)
     242      !--OCS and SO2 prescribed below p_bound
    240243      IF (paprs(i,k).GT.p_bound) THEN
    241         budg_3D_backgr_ocs(i,k)=OCS_clim(i,k)-tr_seri(i,k,id_OCS_strat)
    242         budg_3D_backgr_so2(i,k)=SO2_clim(i,k)-tr_seri(i,k,id_SO2_strat)
    243244        tr_seri(i,k,id_OCS_strat)=OCS_clim(i,k)
    244245        tr_seri(i,k,id_SO2_strat)=SO2_clim(i,k)
    245246      ENDIF
     247      budg_3D_backgr_ocs(i,k)=tr_seri(i,k,id_OCS_strat)-OCS_tmp
     248      budg_3D_backgr_so2(i,k)=tr_seri(i,k,id_SO2_strat)-SO2_tmp
    246249    ENDDO
    247250  ENDDO
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/micphy_tstep.F90

    r3356 r3411  
    44  USE aerophys
    55  USE infotrac
    6   USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, budg_h2so4_to_part, R2SO4, DENSO4, f_r_wet
     6  USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, R2SO4, DENSO4, f_r_wet
    77  USE nucleation_tstep_mod
    88  USE cond_evap_tstep_mod
     
    2525  ! local variables in coagulation routine
    2626  INTEGER, PARAMETER        :: nbtstep=4  ! Max number of time steps in microphysics per time step in physics
    27   INTEGER                   :: it,ilon,ilev,count_tstep
     27  INTEGER                   :: it,ilon,ilev,IK,count_tstep
    2828  REAL                      :: rhoa !H2SO4 number density [molecules/cm3]
    2929  REAL                      :: ntot !total number of molecules in the critical cluster (ntot>4)
     
    4343  REAL H2SO4_sat(nbtr_bin)
    4444
    45   DO it=1,nbtr_bin
    46     Vbin(it)=4.0*RPI*((mdw(it)/2.)**3)/3.0
     45  DO IK=1,nbtr_bin
     46    Vbin(IK)=4.0*RPI*((mdw(IK)/2.)**3)/3.0
    4747  ENDDO
    4848
     
    6464
    6565  DO ilon=1, klon
    66 !
    67 !--initialisation of diagnostic
    68   budg_h2so4_to_part(ilon)=0.0
    69 !
    7066  DO ilev=1, klev
    71 !
    72 !--initialisation of diagnostic
    73   budg_3D_nucl(ilon,ilev)=0.0
    74   budg_3D_cond_evap(ilon,ilev)=0.0
    75 !
    7667  ! only in the stratosphere
    7768  IF (is_strato(ilon,ilev)) THEN
    7869    ! initialize sulfur fluxes
     70    budg_3D_nucl(ilon,ilev)=0.0
     71    budg_3D_cond_evap(ilon,ilev)=0.0
    7972    H2SO4_init=tr_seri(ilon,ilev,id_H2SO4_strat)
    8073    ! adaptive timestep for nucleation and condensation
     
    9588             & RRSI,Vbin,FL,ASO4,DNDR)
    9689      ! consider only condensation (positive FL)
    97       DO it=1,nbtr_bin
    98         FL(it)=MAX(FL(it),0.)
     90      DO IK=1,nbtr_bin
     91        FL(IK)=MAX(FL(IK),0.)
    9992      ENDDO
    10093      ! compute total H2SO4 cond flux for all particles
    10194      cond_evap_rate=0.0
    102       DO it=1, nbtr_bin
    103         cond_evap_rate=cond_evap_rate+tr_seri(ilon,ilev,it+nbtr_sulgas)*FL(it)*mH2SO4mol
     95      DO IK=1, nbtr_bin
     96        cond_evap_rate=cond_evap_rate+tr_seri(ilon,ilev,IK+nbtr_sulgas)*FL(IK)*mH2SO4mol
    10497      ENDDO
    10598      ! determine appropriate time step
     
    131124           & RRSI,Vbin,FL,ASO4,DNDR)
    132125    ! limit evaporation (negative FL) over one physics time step to H2SO4 content of the droplet
    133     DO it=1,nbtr_bin
    134       FL(it)=MAX(FL(it)*pdtphys,0.-ASO4(it))/pdtphys
     126    DO IK=1,nbtr_bin
     127      FL(IK)=MAX(FL(IK)*pdtphys,0.-ASO4(IK))/pdtphys
    135128      ! consider only evap (negative FL)
    136       FL(it)=MIN(FL(it),0.)
     129      FL(IK)=MIN(FL(IK),0.)
    137130    ENDDO
    138131    ! compute total H2SO4 evap flux for all particles
    139132    evap_rate=0.0
    140     DO it=1, nbtr_bin
    141       evap_rate=evap_rate+tr_seri(ilon,ilev,it+nbtr_sulgas)*FL(it)*mH2SO4mol
     133    DO IK=1, nbtr_bin
     134      evap_rate=evap_rate+tr_seri(ilon,ilev,IK+nbtr_sulgas)*FL(IK)*mH2SO4mol
    142135    ENDDO
    143136    ! update H2SO4 concentration after evap
     
    148141    budg_3D_cond_evap(ilon,ilev)=budg_3D_cond_evap(ilon,ilev)+mSatom/mH2SO4mol &
    149142             & *evap_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG
    150     ! compute vertically integrated flux due to the net effect of nucleation and condensation/evaporation
    151     budg_h2so4_to_part(ilon)=budg_h2so4_to_part(ilon)+(H2SO4_init-tr_seri(ilon,ilev,id_H2SO4_strat)) &
    152              & *mSatom/mH2SO4mol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys
    153143  ENDIF
    154144  ENDDO
     
    158148    DO ilon=1, klon
    159149    DO ilev=1, klev   
    160     DO it=1, nbtr
    161       IF (tr_seri(ilon,ilev,it).LT.0.0) THEN
    162         PRINT *, 'micphy_tstep: negative concentration', tr_seri(ilon,ilev,it), ilon, ilev, it
     150    DO IK=1, nbtr
     151      IF (tr_seri(ilon,ilev,IK).LT.0.0) THEN
     152        PRINT *, 'micphy_tstep: negative concentration', tr_seri(ilon,ilev,IK), ilon, ilev, IK
    163153      ENDIF
    164154    ENDDO
  • LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/traccoag_mod.F90

    r3356 r3411  
    203203            !vertically distributed emission
    204204            DO k=1, klev
    205               ! stretch emission over one day (minus one timestep) of Pinatubo eruption
    206               emission=m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/1./(86400.-pdtphys)
     205              ! stretch emission over one day of Pinatubo eruption
     206              emission=m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/1./86400.
    207207              tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+emission*pdtphys
    208208              budg_emi_so2(i)=budg_emi_so2(i)+emission*zdm(k)*mSatom/mSO2mol
Note: See TracChangeset for help on using the changeset viewer.