CCPP Scientific Documentation
v5.0.0
subroutine, public mp_thompson::mp_thompson_run ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
real(kind_phys), intent(in)  con_g,
real(kind_phys), intent(in)  con_rd,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  spechum,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  qc,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  qr,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  qi,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  qs,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  qg,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  ni,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  nr,
logical, intent(in)  is_aerosol_aware,
real(kind_phys), dimension(:,:), intent(inout), optional  nc,
real(kind_phys), dimension(:,:), intent(inout), optional  nwfa,
real(kind_phys), dimension(:,:), intent(inout), optional  nifa,
real(kind_phys), dimension(:), intent(in), optional  nwfa2d,
real(kind_phys), dimension(:), intent(in), optional  nifa2d,
real(kind_phys), dimension(1:ncol,1:nlev), intent(inout)  tgrs,
real(kind_phys), dimension(1:ncol,1:nlev), intent(in)  prsl,
real(kind_phys), dimension(1:ncol,1:nlev+1), intent(in)  phii,
real(kind_phys), dimension(1:ncol,1:nlev), intent(in)  omega,
real(kind_phys), intent(in)  dtp,
real(kind_phys), dimension(1:ncol), intent(out)  prcp,
real(kind_phys), dimension(1:ncol), intent(out)  rain,
real(kind_phys), dimension(1:ncol), intent(out)  graupel,
real(kind_phys), dimension(1:ncol), intent(out)  ice,
real(kind_phys), dimension(1:ncol), intent(out)  snow,
real(kind_phys), dimension(1:ncol), intent(out)  sr,
real(kind_phys), dimension(1:ncol,1:nlev), intent(out)  refl_10cm,
logical, intent(in)  reset,
logical, intent(in), optional  do_radar_ref,
real(kind_phys), dimension(1:ncol,1:nlev), intent(out), optional  re_cloud,
real(kind_phys), dimension(1:ncol,1:nlev), intent(out), optional  re_ice,
real(kind_phys), dimension(1:ncol,1:nlev), intent(out), optional  re_snow,
integer, intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

mp_thompson_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
ncolhorizontal_loop_extenthorizontal loop extentcountinteger()inFalse
nlevvertical_dimensionnumber of vertical levelscountinteger()inFalse
con_ggravitational_accelerationgravitational accelerationm s-2real()kind_physinFalse
con_rdgas_constant_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physinFalse
spechumwater_vapor_specific_humidity_updated_by_physicswater vapor specific humiditykg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
qccloud_condensed_water_mixing_ratio_updated_by_physicscloud water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
qrrain_water_mixing_ratio_updated_by_physicsrain water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
qiice_water_mixing_ratio_updated_by_physicsice water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
qssnow_water_mixing_ratio_updated_by_physicssnow water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
qggraupel_mixing_ratio_updated_by_physicsgraupel mixing ratio wrt dry+vapor (no condensates)kg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
niice_number_concentration_updated_by_physicsice number concentrationkg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
nrrain_number_concentration_updated_by_physicsrain number concentrationkg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
is_aerosol_awareflag_for_aerosol_physicsflag for aerosol-aware physicsflaglogical()inFalse
nccloud_droplet_number_concentration_updated_by_physicscloud droplet number concentrationkg-1real(horizontal_dimension, vertical_dimension)kind_physinoutTrue
nwfawater_friendly_aerosol_number_concentration_updated_by_physicsnumber concentration of water-friendly aerosolskg-1real(horizontal_dimension, vertical_dimension)kind_physinoutTrue
nifaice_friendly_aerosol_number_concentration_updated_by_physicsnumber concentration of ice-friendly aerosolskg-1real(horizontal_dimension, vertical_dimension)kind_physinoutTrue
nwfa2dtendency_of_water_friendly_aerosols_at_surfaceinstantaneous fake water-friendly surface aerosol sourcekg-1 s-1real(horizontal_dimension)kind_physinTrue
nifa2dtendency_of_ice_friendly_aerosols_at_surfaceinstantaneous fake ice-friendly surface aerosol sourcekg-1 s-1real(horizontal_dimension)kind_physinTrue
tgrsair_temperature_updated_by_physicsmodel layer mean temperatureKreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
prslair_pressuremean layer pressurePareal(horizontal_dimension, vertical_dimension)kind_physinFalse
phiigeopotential_at_interfacegeopotential at model layer interfacesm2 s-2real(horizontal_dimension, vertical_dimension_plus_one)kind_physinFalse
omegaomegalayer mean vertical velocityPa s-1real(horizontal_dimension, vertical_dimension)kind_physinFalse
dtptime_step_for_physicsphysics timestepsreal()kind_physinFalse
prcplwe_thickness_of_explicit_precipitation_amountexplicit precipitation (rain, ice, snow, graupel) on physics timestepmreal(horizontal_dimension)kind_physinoutFalse
rainlwe_thickness_of_explicit_rain_amountexplicit rain fall on physics timestepmreal(horizontal_dimension)kind_physinoutFalse
graupellwe_thickness_of_graupel_amountgraupel fall on physics timestepmreal(horizontal_dimension)kind_physinoutFalse
icelwe_thickness_of_ice_amountice fall on physics timestepmreal(horizontal_dimension)kind_physinoutFalse
snowlwe_thickness_of_snow_amountsnow fall on physics timestepmreal(horizontal_dimension)kind_physinoutFalse
srratio_of_snowfall_to_rainfallratio of snowfall to large-scale rainfallfracreal(horizontal_dimension)kind_physoutFalse
refl_10cmradar_reflectivity_10cminstantaneous refl_10cmdBZreal(horizontal_dimension, vertical_dimension)kind_physoutFalse
resetflag_for_resetting_radar_reflectivity_calculationflag for resetting radar reflectivity calculationflaglogical()inFalse
do_radar_refflag_for_radar_reflectivityflag for radar reflectivityflaglogical()inFalse
re_cloudeffective_radius_of_stratiform_cloud_liquid_water_particle_in_umeff. radius of cloud liquid water particle in micrometer (meter here)mreal(horizontal_dimension, vertical_dimension)kind_physoutTrue
re_iceeffective_radius_of_stratiform_cloud_ice_particle_in_umeff. radius of cloud ice water particle in micrometer (meter here)mreal(horizontal_dimension, vertical_dimension)kind_physoutTrue
re_snoweffective_radius_of_stratiform_cloud_snow_particle_in_umeffective radius of cloud snow particle in micrometer (meter here)mreal(horizontal_dimension, vertical_dimension)kind_physoutTrue
mpicommmpi_commMPI communicatorindexinteger()inFalse
mpirankmpi_rankcurrent MPI-rankindexinteger()inFalse
mpirootmpi_rootmaster MPI-rankindexinteger()inFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse

Thompson MP General Algorithm

  • Convert specific humidity/moist mixing ratios to dry mixing ratios
  • Convert number concentrations from moist to dry
  • Density of air in kg m-3
  • Convert omega in Pa s-1 to vertical velocity w in m s-1
  • Layer width in m from geopotential in m2 s-2
  • Call mp_gt_driver() with or without aerosols
  • Convert dry mixing ratios to specific humidity/moist mixing ratios
  • Convert number concentrations from dry to moist
  • Convert rainfall deltas from mm to m (on physics timestep); add to inout variables

References is_initialized.