CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ mp_thompson_run()

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), intent(in) con_eps,
logical, intent(in) convert_dry_rho,
real(kind_phys), dimension(:,:), intent(inout) spechum,
real(kind_phys), dimension(:,:), intent(inout) qc,
real(kind_phys), dimension(:,:), intent(inout) qr,
real(kind_phys), dimension(:,:), intent(inout) qi,
real(kind_phys), dimension(:,:), intent(inout) qs,
real(kind_phys), dimension(:,:), intent(inout) qg,
real(kind_phys), dimension(:,:), intent(inout) ni,
real(kind_phys), dimension(:,:), intent(inout) nr,
logical, intent(in) is_aerosol_aware,
logical, intent(in) merra2_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,
logical, intent(in), optional aero_ind_fdb,
real(kind_phys), dimension(:,:), intent(inout) tgrs,
real(kind_phys), dimension(:,:), intent(in) prsl,
real(kind_phys), dimension(:,:), intent(in) phii,
real(kind_phys), dimension(:,:), intent(in) omega,
logical, intent(in) sedi_semi,
integer, intent(in) decfl,
integer, dimension(:), intent(in) islmsk,
real(kind_phys), intent(in) dtp,
real, intent(in) dt_inner,
logical, intent(in) first_time_step,
integer, intent(in) istep,
integer, intent(in) nsteps,
real(kind_phys), dimension(:), intent(inout) prcp,
real(kind_phys), dimension(:), intent(inout), optional rain,
real(kind_phys), dimension(:), intent(inout), optional graupel,
real(kind_phys), dimension(:), intent(inout), optional ice,
real(kind_phys), dimension(:), intent(inout), optional snow,
real(kind_phys), dimension(:), intent(out) sr,
real(kind_phys), dimension(:,:), intent(inout) refl_10cm,
logical, intent(in) fullradar_diag,
real(kind_phys), dimension(:), intent(inout) max_hail_diam_sfc,
logical, intent(in) do_radar_ref,
real(kind_phys), dimension(:,:,:), intent(in) aerfld,
type(mpi_comm), intent(in) mpicomm,
integer, intent(in) mpirank,
integer, intent(in) mpiroot,
integer, intent(in) blkno,
logical, intent(in) ext_diag,
real(kind_phys), dimension(:,:,:), intent(inout), optional, target diag3d,
logical, intent(in) reset_diag3d,
real(kind_phys), dimension(:,:), intent(in), optional spp_wts_mp,
integer, intent(in) spp_mp,
integer, intent(in) n_var_spp,
real(kind_phys), dimension(:), intent(in), optional spp_prt_list,
character(len=10), dimension(:), intent(in), optional spp_var_list,
real(kind_phys), dimension(:), intent(in) spp_stddev_cutoff,
logical, intent(in) cplchm,
real(kind=kind_phys), dimension(:,:), intent(inout), optional pfi_lsan,
real(kind=kind_phys), dimension(:,:), intent(inout), optional pfl_lsan,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg )

Argument Table

mp_thompson_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
ncolhorizontal_loop_extenthorizontal loop extentcountinteger()in
nlevvertical_layer_dimensionnumber of vertical levelscountinteger()in
con_ggravitational_accelerationgravitational accelerationm s-2real()kind_physin
con_rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
con_epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physin
convert_dry_rhoflag_for_converting_hydrometeors_from_moist_to_dry_airflag for converting hydrometeors from moist to dry airflaglogical()in
spechumspecific_humidity_of_new_statewater vapor specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
qccloud_liquid_water_mixing_ratio_of_new_statecloud water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
qrrain_mixing_ratio_of_new_staterain water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
qicloud_ice_mixing_ratio_of_new_stateice water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
qssnow_mixing_ratio_of_new_statesnow water mixing ratio wrt dry+vapor (no condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
qggraupel_mixing_ratio_of_new_stategraupel mixing ratio wrt dry+vapor (no condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
nimass_number_concentration_of_cloud_ice_water_crystals_in_air_of_new_stateice number concentrationkg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
nrmass_number_concentration_of_rain_of_new_staterain number concentrationkg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
is_aerosol_awareflag_for_aerosol_physicsflag for aerosol-aware physicsflaglogical()in
merra2_aerosol_awaredo_merra2_aerosol_awarenessflag for merra2 aerosol-aware physics for example the thompson microphysicsflaglogical()in
ncmass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_statecloud droplet number concentrationkg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
nwfamass_number_concentration_of_hygroscopic_aerosols_of_new_statenumber concentration of water-friendly aerosolskg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
nifamass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_of_new_statenumber concentration of ice-friendly aerosolskg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
nwfa2dtendency_of_hygroscopic_aerosols_at_surface_adjacent_layerinstantaneous fake water-friendly surface aerosol sourcekg-1 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
nifa2dtendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layerinstantaneous fake ice-friendly surface aerosol sourcekg-1 s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physin
aero_ind_fdbdo_smoke_aerosol_indirect_feedbackflag for wfa ifa emission indirect feedbackflaglogical()in
tgrsair_temperature_of_new_statemodel layer mean temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
prslair_pressuremean layer pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
phiigeopotential_at_interfacegeopotential at model layer interfacesm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
omegalagrangian_tendency_of_air_pressurelayer mean vertical velocityPa s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
sedi_semiflag_for_semi_lagrangian_sedi_rainflag for semi Lagrangian sedi of rainflaglogical()in
decfldeformed_cfl_factordeformed CFL factorcountinteger()in
islmsksea_land_ice_masksea/land/ice mask (=0/1/2)flaginteger(ccpp_constant_one:horizontal_loop_extent)in
dtptimestep_for_physicsphysics timestepsreal()kind_physin
dt_innertime_step_for_inner_looptime step for inner loopsreal()kind_physin
first_time_stepflag_for_first_timestepflag for first time step for time integration loop (cold/warmstart)flaglogical()in
istepccpp_loop_counterloop counter for subcycling loops in CCPPindexinteger()in
nstepsccpp_loop_extentloop extent for subcycling loops in CCPPcountinteger()in
prcplwe_thickness_of_explicit_precipitation_amountexplicit precipitation (rain, ice, snow, graupel) on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rainlwe_thickness_of_explicit_rain_amountexplicit rain fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
graupellwe_thickness_of_graupel_amountgraupel fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
icelwe_thickness_of_ice_amountice fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snowlwe_thickness_of_snow_amountsnow fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
srratio_of_snowfall_to_rainfallratio of snowfall to large-scale rainfallfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
refl_10cmradar_reflectivity_10cminstantaneous refl_10cmdBZreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
max_hail_diam_sfcmax_hail_diameter_sfcinstantaneous maximum hail diameter at lowest model levelmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
fullradar_diagdo_full_radar_reflectivityflag for computing full radar reflectivityflaglogical()in
do_radar_refflag_for_radar_reflectivityflag for radar reflectivityflaglogical()in
aerfldmass_mixing_ratio_of_aerosol_from_gocart_or_merra2mass mixing ratio of aerosol from gocart or merra2kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_aerosol_tracers_MG)kind_physin
mpicommmpi_communicatorMPI communicatorindexMPI_Comm()MPI_Commin
mpirankmpi_rankcurrent MPI-rankindexinteger()in
mpirootmpi_rootmaster MPI-rankindexinteger()in
blknoccpp_block_numbernumber of block for explicit data blocking in CCPPindexinteger()in
ext_diagflag_for_extended_diagnostic_output_from_thompson_microphysicsflag for extended diagnostic output from thompson microphysicsflaglogical()in
diag3dextended_diagnostics_output_from_thompson_microphysicsset of 3d arrays for extended diagnostics output from thompson microphysicsnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_3d_diagnostic_output_arrays_from_thompson_microphysics)kind_physinout
reset_diag3dflag_reset_extended_diagnostics_output_arrays_from_thompson_microphysicsflag for resetting extended diagnostics output arrays from thompson microphysicsflaglogical()in
spp_wts_mpspp_weights_for_microphysics_schemespp weights for microphysics scheme1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
spp_mpcontrol_for_microphysics_spp_perturbationscontrol for microphysics spp perturbationscountinteger()in
n_var_sppnumber_of_perturbed_spp_schemesnumber of perturbed spp schemescountinteger()in
spp_prt_listmagnitude_of_spp_perturbationsmagnitude of spp perturbations1real(ccpp_constant_one:number_of_perturbed_spp_schemes)kind_physin
spp_stddev_cutoffmagnitude_of_spp_standard_deviation_cutoffmagnitude of spp standard deviation cutoff1real(ccpp_constant_one:number_of_perturbed_spp_schemes)kind_physin
spp_var_listperturbed_spp_schemesperturbed spp schemesnonecharacter(ccpp_constant_one:number_of_perturbed_spp_schemes)len=10in
cplchmflag_for_chemistry_couplingflag controlling cplchm collection (default off)flaglogical()in
pfi_lsanice_flux_due_to_large_scale_precipitationinstantaneous 3D flux of ice from nonconvective precipitationkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
pfl_lsanliquid_flux_due_to_large_scale_precipitationinstantaneous 3D flux of liquid water from nonconvective precipitationkg m-2 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

Thompson MP General Algorithm

  • Convert specific humidity to water vapor mixing ratio.
  • Also, hydrometeor variables are mass or number mixing ratio
  • either kg of species per kg of dry air, or per kg of (dry + vapor).
  • 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, with or without effective radii, ...
  • Convert water vapor mixing ratio back to specific humidity
  • Convert rainfall deltas from mm to m (on physics timestep); add to inout variables

Definition at line 322 of file mp_thompson.F90.

References module_mp_thompson::mp_gt_driver().

Here is the call graph for this function: