← Back to Documentation Home
CCPP SciDoc v8.0.0  v8.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
NSSL MP Module
Collaboration diagram for NSSL MP Module:

Modules

 NSSL 2-moment microphysics modules
 This module provides a 1/2/3-moment bulk microphysics scheme based on a combination of Straka and Mansell (2005, JAM) and Zeigler (1985, JAS) and modified/upgraded in in Mansell, Zeigler, and Bruning (2010, JAS). Two-moment adaptive sedimentation follows Mansell (2010, JAS), using parameter infall = 4.
 
subroutine, public mp_nssl::mp_nssl_init (ncol, nlev, errflg, errmsg, threads, restart, fn_nml, input_nml_file, mpirank, mpiroot, mpicomm, qc, qr, qi, qs, qh, ccw, crw, cci, csw, chw, vh, con_g, con_rd, con_cp, con_rv, con_t0c, con_cliq, con_csol, con_eps, imp_physics, imp_physics_nssl, nssl_cccn, nssl_alphah, nssl_alphahl, nssl_alphar, nssl_ehw0, nssl_ehlw0, nssl_ccn_on, nssl_hail_on, nssl_invertccn, nssl_3moment)
 This subroutine is a wrapper around the nssl_2mom_init().
 
subroutine, public mp_nssl::mp_nssl_run (ncol, nlev, con_g, con_rd, mpirank, spechum, cccn, cccna, qc, qr, qi, qs, qh, qhl, ccw, crw, cci, csw, chw, chl, vh, vhl, zrw, zhw, zhl, tgrs, prslk, prsl, phii, omega, dtp, prcp, rain, graupel, ice, snow, sr, refl_10cm, do_radar_ref, first_time_step, restart, re_cloud, re_ice, re_snow, re_rain, nleffr, nieffr, nseffr, nreffr, imp_physics, convert_dry_rho, imp_physics_nssl, nssl_ccn_on, nssl_hail_on, nssl_invertccn, nssl_3moment, ntccn, ntccna, ten_t, ten_qv, ten_qc, ten_qr, ten_qi, ten_qs, ten_qh, ten_qhl, ten_cccn, ten_ccw, ten_crw, ten_cci, ten_csw, ten_chw, ten_chl, ten_vh, ten_vhl, ten_zrw, ten_zhw, ten_zhl, errflg, errmsg)
 

Detailed Description

Function/Subroutine Documentation

◆ mp_nssl_init()

subroutine, public mp_nssl::mp_nssl_init ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
integer, intent(out)  errflg,
character(len=*), intent(out)  errmsg,
integer, intent(in)  threads,
logical, intent(in)  restart,
character(len=*), intent(in)  fn_nml,
character(len=*), dimension(:), intent(in)  input_nml_file,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
type(mpi_comm), intent(in)  mpicomm,
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)  qh,
real(kind_phys), dimension(:,:), intent(inout)  ccw,
real(kind_phys), dimension(:,:), intent(inout)  crw,
real(kind_phys), dimension(:,:), intent(inout)  cci,
real(kind_phys), dimension(:,:), intent(inout)  csw,
real(kind_phys), dimension(:,:), intent(inout)  chw,
real(kind_phys), dimension (:,:), intent(inout)  vh,
real(kind_phys), intent(in)  con_g,
real(kind_phys), intent(in)  con_rd,
real(kind_phys), intent(in)  con_cp,
real(kind_phys), intent(in)  con_rv,
real(kind_phys), intent(in)  con_t0c,
real(kind_phys), intent(in)  con_cliq,
real(kind_phys), intent(in)  con_csol,
real(kind_phys), intent(in)  con_eps,
integer, intent(in)  imp_physics,
integer, intent(in)  imp_physics_nssl,
real(kind_phys), intent(in)  nssl_cccn,
real(kind_phys), intent(in)  nssl_alphah,
real(kind_phys), intent(in)  nssl_alphahl,
real(kind_phys), intent(in)  nssl_alphar,
real(kind_phys), intent(in)  nssl_ehw0,
real(kind_phys), intent(in)  nssl_ehlw0,
logical, intent(in)  nssl_ccn_on,
logical, intent(in)  nssl_hail_on,
logical, intent(in)  nssl_invertccn,
logical, intent(in)  nssl_3moment 
)

This subroutine is a wrapper around the nssl_2mom_init().

Argument Table

Definition at line 30 of file mp_nssl.F90.

References module_mp_nssl_2mom::nssl_2mom_init(), and module_mp_nssl_2mom::nssl_2mom_init_const().

Here is the call graph for this function:

◆ mp_nssl_run()

subroutine, public mp_nssl::mp_nssl_run ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
real(kind_phys), intent(in)  con_g,
real(kind_phys), intent(in)  con_rd,
integer, intent(in)  mpirank,
real(kind_phys), dimension(:,:), intent(in)  spechum,
real(kind_phys), dimension(:,:), intent(in), optional  cccn,
real(kind_phys), dimension(:,:), intent(in), optional  cccna,
real(kind_phys), dimension (:,:), intent(in)  qc,
real(kind_phys), dimension (:,:), intent(in)  qr,
real(kind_phys), dimension (:,:), intent(in)  qi,
real(kind_phys), dimension (:,:), intent(in)  qs,
real(kind_phys), dimension (:,:), intent(in)  qh,
real(kind_phys), dimension(:,:), intent(in), optional  qhl,
real(kind_phys), dimension(:,:), intent(in)  ccw,
real(kind_phys), dimension(:,:), intent(in)  crw,
real(kind_phys), dimension(:,:), intent(in)  cci,
real(kind_phys), dimension(:,:), intent(in)  csw,
real(kind_phys), dimension(:,:), intent(in)  chw,
real(kind_phys), dimension(:,:), intent(in), optional  chl,
real(kind_phys), dimension (:,:), intent(in)  vh,
real(kind_phys), dimension(:,:), intent(in), optional  vhl,
real(kind_phys), dimension(:,:), intent(in), optional  zrw,
real(kind_phys), dimension(:,:), intent(in), optional  zhw,
real(kind_phys), dimension(:,:), intent(in), optional  zhl,
real(kind_phys), dimension (:,:), intent(in)  tgrs,
real(kind_phys), dimension(:,:), intent(in)  prslk,
real(kind_phys), dimension (:,:), intent(in)  prsl,
real(kind_phys), dimension (:,:), intent(in)  phii,
real(kind_phys), dimension(:,:), intent(in)  omega,
real(kind_phys), intent(in)  dtp,
real(kind_phys), dimension (:), intent(out)  prcp,
real(kind_phys), dimension (:), intent(out)  rain,
real(kind_phys), dimension(:), intent(out)  graupel,
real(kind_phys), dimension (:), intent(out)  ice,
real(kind_phys), dimension (:), intent(out)  snow,
real(kind_phys), dimension (:), intent(out)  sr,
real(kind_phys), dimension(:,:), intent(inout)  refl_10cm,
logical, intent(in)  do_radar_ref,
logical, intent(in)  first_time_step,
logical, intent(in)  restart,
real(kind_phys), dimension(:,:), intent(inout), optional  re_cloud,
real(kind_phys), dimension(:,:), intent(inout), optional  re_ice,
real(kind_phys), dimension(:,:), intent(inout), optional  re_snow,
real(kind_phys), dimension(:,:), intent(inout), optional  re_rain,
integer, intent(in)  nleffr,
integer, intent(in)  nieffr,
integer, intent(in)  nseffr,
integer, intent(in)  nreffr,
integer, intent(in)  imp_physics,
logical, intent(in)  convert_dry_rho,
integer, intent(in)  imp_physics_nssl,
logical, intent(in)  nssl_ccn_on,
logical, intent(in)  nssl_hail_on,
logical, intent(in)  nssl_invertccn,
logical, intent(in)  nssl_3moment,
integer, intent(in)  ntccn,
integer, intent(in)  ntccna,
real(kind_phys), dimension(:,:), intent(out)  ten_t,
real(kind_phys), dimension(:,:), intent(out)  ten_qv,
real(kind_phys), dimension(:,:), intent(out)  ten_qc,
real(kind_phys), dimension(:,:), intent(out)  ten_qr,
real(kind_phys), dimension(:,:), intent(out)  ten_qi,
real(kind_phys), dimension(:,:), intent(out)  ten_qs,
real(kind_phys), dimension(:,:), intent(out)  ten_qh,
real(kind_phys), dimension(:,:), intent(out), optional  ten_qhl,
real(kind_phys), dimension(:,:), intent(out), optional  ten_cccn,
real(kind_phys), dimension(:,:), intent(out)  ten_ccw,
real(kind_phys), dimension(:,:), intent(out)  ten_crw,
real(kind_phys), dimension(:,:), intent(out)  ten_cci,
real(kind_phys), dimension(:,:), intent(out)  ten_csw,
real(kind_phys), dimension(:,:), intent(out)  ten_chw,
real(kind_phys), dimension(:,:), intent(out), optional  ten_chl,
real(kind_phys), dimension(:,:), intent(out)  ten_vh,
real(kind_phys), dimension(:,:), intent(out), optional  ten_vhl,
real(kind_phys), dimension(:,:), intent(out), optional  ten_zrw,
real(kind_phys), dimension(:,:), intent(out), optional  ten_zhw,
real(kind_phys), dimension(:,:), intent(out), optional  ten_zhl,
integer, intent(out)  errflg,
character(len=*), intent(out)  errmsg 
)

NSSL MP General Algorithm: interface to driver

Argument Table

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

Definition at line 203 of file mp_nssl.F90.

References module_mp_nssl_2mom::calcnfromq(), and module_mp_nssl_2mom::nssl_2mom_driver().

Here is the call graph for this function: