incloud_scav.f90 Source File


This file depends on

sourcefile~~incloud_scav.f90~~EfferentGraph sourcefile~incloud_scav.f90 incloud_scav.f90 sourcefile~yomcst_mod_h.f90 yomcst_mod_h.f90 sourcefile~incloud_scav.f90->sourcefile~yomcst_mod_h.f90 sourcefile~indice_sol_mod.f90 indice_sol_mod.f90 sourcefile~incloud_scav.f90->sourcefile~indice_sol_mod.f90 sourcefile~dimphy.f90 dimphy.f90 sourcefile~incloud_scav.f90->sourcefile~dimphy.f90 sourcefile~chem_mod_h.f90 chem_mod_h.f90 sourcefile~incloud_scav.f90->sourcefile~chem_mod_h.f90 sourcefile~infotrac_phy.f90 infotrac_phy.F90 sourcefile~incloud_scav.f90->sourcefile~infotrac_phy.f90 sourcefile~mod_phys_lmdz_para.f90 mod_phys_lmdz_para.f90 sourcefile~infotrac_phy.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~iniprint_mod_h.f90 iniprint_mod_h.f90 sourcefile~infotrac_phy.f90->sourcefile~iniprint_mod_h.f90 sourcefile~strings_mod.f90 strings_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~strings_mod.f90 sourcefile~readtracfiles_mod.f90 readTracFiles_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~readtracfiles_mod.f90 sourcefile~lmdz_reprobus_wrappers.f90 lmdz_reprobus_wrappers.F90 sourcefile~infotrac_phy.f90->sourcefile~lmdz_reprobus_wrappers.f90 sourcefile~ioipsl_getin_p_mod.f90 ioipsl_getin_p_mod.f90 sourcefile~infotrac_phy.f90->sourcefile~ioipsl_getin_p_mod.f90 sourcefile~lmdz_cppkeys_wrapper.f90 lmdz_cppkeys_wrapper.F90 sourcefile~infotrac_phy.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~mod_phys_lmdz_mpi_data.f90 mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_transfert_para.f90 mod_phys_lmdz_transfert_para.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_transfert_para.f90 sourcefile~mod_grid_phy_lmdz.f90 mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~print_control_mod.f90 print_control_mod.f90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~print_control_mod.f90 sourcefile~mod_phys_lmdz_omp_data.f90 mod_phys_lmdz_omp_data.F90 sourcefile~mod_phys_lmdz_para.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~readtracfiles_mod.f90->sourcefile~strings_mod.f90 sourcefile~readtracfiles_mod.f90->sourcefile~ioipsl_getin_p_mod.f90 sourcefile~lmdz_reprobus_wrappers.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~mod_phys_lmdz_para.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~strings_mod.f90 sourcefile~ioipsl_getin_p_mod.f90->sourcefile~mod_phys_lmdz_transfert_para.f90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_cppkeys_wrapper.f90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~print_control_mod.f90 sourcefile~lmdz_mpi.f90 lmdz_mpi.F90 sourcefile~mod_phys_lmdz_mpi_data.f90->sourcefile~lmdz_mpi.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90 mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_omp_transfert.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90 mod_phys_lmdz_mpi_transfert.f90 sourcefile~mod_phys_lmdz_transfert_para.f90->sourcefile~mod_phys_lmdz_mpi_transfert.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~dimphy.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_data.f90->sourcefile~print_control_mod.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_omp_transfert.f90->sourcefile~mod_phys_lmdz_omp_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_phys_lmdz_mpi_data.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~mod_grid_phy_lmdz.f90 sourcefile~mod_phys_lmdz_mpi_transfert.f90->sourcefile~lmdz_mpi.f90

Contents

Source Code


Source Code

! Subroutine that calculates the effect of precipitation in scavenging
! WITHIN the cloud, for large scale as well as convective precipitation
SUBROUTINE incloud_scav(lminmax,qmin,qmax,masse,henry,kk,prfl, &
        psfl,pmflxr,pmflxs,zrho,zdz,t_seri,pdtphys, &
        his_dhlsc,his_dhcon1,tr_seri)

USE chem_mod_h
    USE dimphy
  USE infotrac_phy, ONLY: nbtr
  USE indice_sol_mod

!!USE paramet_mod_h
USE yomcst_mod_h
IMPLICIT NONE





  !============================= INPUT ===================================
  REAL :: qmin, qmax
  REAL :: masse(nbtr)
  REAL :: henry(nbtr)         !--cste de Henry  mol/l/atm
  REAL :: kk(nbtr)            !--coefficient de var avec T (K)
  REAL :: prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale
   ! REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
  REAL :: pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection
   ! REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
  REAL :: zrho(klon,klev), zdz(klon,klev)
  REAL :: t_seri(klon,klev)
  LOGICAL :: lminmax
  REAL :: pdtphys
   ! REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
   ! REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
  !============================= OUTPUT ==================================
  REAL :: tr_seri(klon,klev,nbtr) ! traceur
  REAL :: aux_var1(klon,klev) ! traceur
  REAL :: aux_var2(klon) ! traceur
  REAL :: aux_var3(klon) ! traceur
  REAL :: his_dhlsc(klon,nbtr)        ! in-cloud scavenging lsc
  REAL :: his_dhcon1(klon,nbtr)       ! in-cloud scavenging con
  !========================= LOCAL VARIABLES =============================
  INTEGER :: it, i, j

  EXTERNAL minmaxqfi, inscav_spl

  DO it=1, nbtr
  !
  DO i=1,klon
    aux_var2(i)=his_dhlsc(i,it)
    aux_var3(i)=his_dhcon1(i,it)
  ENDDO
  DO j=1,klev
  DO i=1,klon
    aux_var1(i,j)=tr_seri(i,j,it)
  ENDDO
  ENDDO
  !
  IF (lminmax) THEN
    CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav')
  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
  ENDIF
  !
  !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
  !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
  !nhl     .             his_dhlsc(1,it))
  CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3, &
        prfl,psfl,zrho,zdz,t_seri,aux_var1,aux_var2)
  !
  IF (lminmax) THEN
    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc')
  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
  ENDIF
  !
  !
  !-scheme for convective in-cloud scavenging
  !
  !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
  !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
  !nhl     .             his_dhcon1(1,it))
  CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3, &
        pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
  !
  IF (lminmax) THEN
    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
  ENDIF
  !
  DO j=1,klev
  DO i=1,klon
    tr_seri(i,j,it)=aux_var1(i,j)
  ENDDO
  ENDDO
  DO i=1,klon
    his_dhlsc(i,it)=aux_var2(i)
    his_dhcon1(i,it)=aux_var3(i)
  ENDDO

  !
  ENDDO !--boucle sur it

END SUBROUTINE incloud_scav