36      subroutine qhyd2qtrc( &
    37           KA, KS, KE, IA, IS, IE, JA, JS, JE, &
    44        integer, 
intent(in) :: 
ka, 
ks, 
ke    45        integer, 
intent(in) :: 
ia, 
is, 
ie    46        integer, 
intent(in) :: 
ja, 
js, 
je    47        real(RP), 
intent(in) :: qv(
ka,
ia,
ja)
    50        real(RP), 
intent(in), 
optional :: qnum(
ka,
ia,
ja,
n_hyd)
    51      end subroutine qhyd2qtrc
    52   end interface abstract
    68   logical,  
private :: mp_do_precipitation   = .true.
    69   logical,  
private :: mp_do_negative_fixer  = .true.
    70   real(RP), 
private :: mp_limit_negative     = 0.1_rp
    71   integer,  
private :: mp_ntmax_sedimentation = 1
    72   real(RP), 
private :: mp_max_term_vel = 10.0_rp
    73   real(RP), 
private :: mp_cldfrac_thleshold
    74   integer,  
private :: mp_nstep_sedimentation
    75   real(RP), 
private :: mp_rnstep_sedimentation
    76   real(DP), 
private :: mp_dtsec_sedimentation
    78   integer, 
private, 
allocatable :: hist_vterm_id(:)
    79   integer, 
private              :: hist_nf_rhoh_id
    80   integer, 
private              :: hist_nf_dens_id
    81   integer, 
private              :: hist_nf_engi_id
    82   integer, 
private              :: monit_nf_mass_id
    83   integer, 
private              :: monit_nf_engi_id
   138     log_info(
"ATMOS_PHY_MP_driver_tracer_setup",*) 
'Setup'   198           log_error(
"ATMOS_PHY_MP_driver_tracer_setup",*) 
'ATMOS_PHY_MP_TYPE is invalud: ', trim(
atmos_phy_mp_type)
   249     namelist / param_atmos_phy_mp / &
   250        mp_do_precipitation,     &
   251        mp_do_negative_fixer,    &
   253        mp_ntmax_sedimentation,  &
   257     real(RP) :: ZERO(
ka,
ia,
ja)
   266     log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Setup'   270        mp_cldfrac_thleshold = eps
   274        read(
io_fid_conf,nml=param_atmos_phy_mp,iostat=ierr)
   276           log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Not found namelist. Default used.'   277        elseif( ierr > 0 ) 
then    278           log_error(
"ATMOS_PHY_MP_driver_setup",*) 
'Not appropriate names in namelist PARAM_ATMOS_PHY_MP. Check!'   281        log_nml(param_atmos_phy_mp)
   284        mp_ntmax_sedimentation = max( mp_ntmax_sedimentation, nstep_max )
   286        mp_nstep_sedimentation  = mp_ntmax_sedimentation
   287        mp_rnstep_sedimentation = 1.0_rp / 
real(mp_ntmax_sedimentation,kind=
rp)
   290        atmos_phy_mp_cldfrac_thleshold = mp_cldfrac_thleshold
   293        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Enable negative fixer?                    : ', mp_do_negative_fixer
   294        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Value limit of negative fixer (abs)       : ', abs(mp_limit_negative)
   295        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Enable sedimentation (precipitation)?     : ', mp_do_precipitation
   296        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'Timestep of sedimentation is divided into : ', mp_ntmax_sedimentation, 
'step'   297        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'DT of sedimentation                       : ', mp_dtsec_sedimentation, 
'[s]'   314        if ( mp_do_precipitation ) 
then   322        if ( mp_do_negative_fixer ) 
then   323           call file_history_reg( 
"RHOH_MP_NF",   
"sensible heat by the negative fixer",          
"J/m3/s", & 
   325           call file_history_reg( 
"DENS_t_MP_NF", 
"vapor supply by the negative fixer",           
"kg/m3/s", & 
   327           call file_history_reg( 
"ENGI_t_MP_NF", 
"internal energy supply by the negative fixer", 
"J/m3/s",  & 
   329           call monitor_reg( 
"QTOTTND_NF", 
"vapor supply by the negative fixer", 
"kg",           & 
   332           call monitor_reg( 
"ENGITND_NF", 
"internal energy supply by the negative fixer", 
"J",  & 
   336           call monitor_put( monit_nf_mass_id, zero(:,:,:) )
   337           call monitor_put( monit_nf_engi_id, zero(:,:,:) )
   342        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'this component is never called.'   343        log_info(
"ATMOS_PHY_MP_driver_setup",*) 
'SFLX_rain and SFLX_snow is set to zero.'   344        sflx_rain(:,:) = 0.0_rp
   345        sflx_snow(:,:) = 0.0_rp
   379        file_history_query, &
   384     real(RP) :: rhoh  (
ka,
ia,
ja)
   385     real(RP) :: DENS_d(
ka,
ia,
ja)
   386     real(RP) :: ENGI_d(
ka,
ia,
ja)
   389     logical :: do_put_rhoh
   390     logical :: do_put_dens
   391     logical :: do_put_engi
   393     integer :: k, i, j, iq
   397        call file_history_query( hist_nf_rhoh_id, do_put_rhoh )
   398        call file_history_query( hist_nf_dens_id, do_put_dens )
   399        call file_history_query( hist_nf_engi_id, do_put_engi )
   401        if ( monit_nf_mass_id > 0 .or. monit_nf_engi_id > 0 .or. &
   402             do_put_rhoh .or. do_put_dens .or. do_put_engi ) 
then   404                ka, 
ks, 
ke, 
ia, 1, 
ia, 
ja, 1, 
ja, 
qla, 
qia, &
   410                dens_diff = dens_d, engi_diff = engi_d ) 
   413                ka, 
ks, 
ke, 
ia, 1, 
ia, 
ja, 1, 
ja, 
qla, 
qia, &
   427           rhot(k,i,j) = pre00 / rtot * ( 
dens(k,i,j) * 
temp(k,i,j) * rtot / pre00 )**( 
cvtot(k,i,j) / 
cptot(k,i,j) )
   439           qtrc(k,i,j,iq) = max( 
qtrc(k,i,j,iq), 0.0_rp )
   447        if ( do_put_rhoh ) 
then   452              rhoh(k,i,j) = rhoh(k,i,j) / dt
   456           call file_history_put( hist_nf_rhoh_id, rhoh(:,:,:) )
   458        if ( monit_nf_mass_id > 0 .or. do_put_dens ) 
then   463              dens_d(k,i,j) = dens_d(k,i,j) / dt
   467           call file_history_put( hist_nf_dens_id, dens_d(:,:,:) )
   468           call monitor_put( monit_nf_mass_id, dens_d(:,:,:) )
   470        if ( monit_nf_engi_id > 0 .or. do_put_engi ) 
then   475              engi_d(k,i,j) = engi_d(k,i,j) / dt
   479           call file_history_put( hist_nf_engi_id, engi_d(:,:,:) )
   480           call monitor_put( monit_nf_engi_id, engi_d(:,:,:) )
   538        file_history_query, &
   572        rhou_t_mp => atmos_phy_mp_rhou_t,    &
   573        rhov_t_mp => atmos_phy_mp_rhov_t,    &
   574        rhoq_t_mp => atmos_phy_mp_rhoq_t,    &
   575        rhoh_mp   => atmos_phy_mp_rhoh,      &
   576        evaporate => atmos_phy_mp_evaporate, &
   577        sflx_rain => atmos_phy_mp_sflx_rain, &
   578        sflx_snow => atmos_phy_mp_sflx_snow
   583     logical, 
intent(in) :: update_flag
   585     real(RP) :: RHOE_t(
ka,
ia,
ja)
   586     real(RP) :: TEMP1 (
ka,
ia,
ja)
   587     real(RP) :: CPtot1(
ka,
ia,
ja)
   588     real(RP) :: CVtot1(
ka,
ia,
ja)
   589     real(RP) :: CCN   (
ka,
ia,
ja)
   593     real(RP) :: FLX_hydro(
ka)
   594     real(RP) :: DENS2    (
ka)
   595     real(RP) :: TEMP2    (
ka)
   596     real(RP) :: PRES2    (
ka)
   597     real(RP) :: CPtot2   (
ka)
   598     real(RP) :: CVtot2   (
ka)
   599     real(RP) :: RHOE     (
ka)
   600     real(RP) :: RHOE2    (
ka)
   602     real(RP) :: mflux    (
ka)
   603     real(RP) :: sflux    (2)
   611     real(RP) :: CP_t, CV_t
   613     real(RP) :: precip   (
ia,
ja)
   616     real(RP), 
allocatable :: vterm_hist(:,:,:,:)
   621     integer :: k, i, j, iq
   625     if ( update_flag ) 
then   627        ccn(:,:,:) = ccn_t(:,:,:) * dt_mp
   632           temp1(:,:,:) = temp(:,:,:)
   636           cvtot1(:,:,:) = cvtot(:,:,:)
   638           cptot1(:,:,:) = cptot(:,:,:)
   642                dens(:,:,:), pres(:,:,:), dt_mp,                                      & 
   643                temp1(:,:,:), qtrc1(:,:,:,
qs_mp:
qe_mp), cptot1(:,:,:), cvtot1(:,:,:), & 
   644                rhoe_t(:,:,:), evaporate(:,:,:)                                       ) 
   650              rhoq_t_mp(k,i,j,iq) = ( qtrc1(k,i,j,iq) - 
qtrc(k,i,j,iq) ) * 
dens(k,i,j) / dt_mp
   659              cptot_t(k,i,j) = ( cptot1(k,i,j) - cptot(k,i,j) ) / dt_mp
   660              cvtot_t(k,i,j) = ( cvtot1(k,i,j) - cvtot(k,i,j) ) / dt_mp
   670              temp1(k,i,j) = temp(k,i,j)
   679              qtrc1(k,i,j,iq) = 
qtrc(k,i,j,iq)
   688              cvtot1(k,i,j) = cvtot(k,i,j)
   696              cptot1(k,i,j) = cptot(k,i,j)
   703                dens(:,:,:), pres(:,:,:), ccn(:,:,:), dt_mp,                          & 
   704                temp1(:,:,:), qtrc1(:,:,:,
qs_mp:
qe_mp), cptot1(:,:,:), cvtot1(:,:,:), & 
   705                rhoe_t(:,:,:), evaporate(:,:,:)                                       ) 
   711              rhoq_t_mp(k,i,j,iq) = ( qtrc1(k,i,j,iq) - 
qtrc(k,i,j,iq) ) * 
dens(k,i,j) / dt_mp
   720              cptot_t(k,i,j) = ( cptot1(k,i,j) - cptot(k,i,j) ) / dt_mp
   721              cvtot_t(k,i,j) = ( cvtot1(k,i,j) - cvtot(k,i,j) ) / dt_mp
   730                dens(:,:,:), 
w(:,:,:), 
qtrc(:,:,:,
qs_mp:
qe_mp), pres(:,:,:), temp(:,:,:),                     & 
   731                qdry(:,:,:), cptot(:,:,:), cvtot(:,:,:), ccn(:,:,:), dt_mp, real_cz(:,:,:), real_fz(:,:,:),   & 
   732                rhoq_t_mp(:,:,:,
qs_mp:
qe_mp), rhoe_t(:,:,:), cptot_t(:,:,:), cvtot_t(:,:,:), evaporate(:,:,:) ) 
   736           call atmos_phy_mp_suzuki10_tendency( 
ka, 
ks,  
ke, 
ia, 
is, 
ie, 
ja, 
js, 
je, 
kijmax, &
   738                                                dens(:,:,:),  pres(:,:,:), temp(:,:,:), & 
   740                                                cptot(:,:,:), cvtot(:,:,:),             & 
   744                                                cptot_t(:,:,:), cvtot_t(:,:,:),         & 
   753           rhoh_mp(k,i,j) = rhoe_t(k,i,j) &
   754                   - ( cptot_t(k,i,j) + log( pres(k,i,j) / pre00 ) * ( cvtot(k,i,j) / cptot(k,i,j) * cptot_t(k,i,j) - cvtot_t(k,i,j) ) ) &
   755                   * 
dens(k,i,j) * temp(k,i,j)
   764        if ( mp_do_precipitation ) 
then   769           hist_vterm_idx(:) = -1
   772              call file_history_query( hist_vterm_id(iq), flag )
   775                 hist_vterm_idx(iq) = ih
   779              allocate( vterm_hist(
ka,
ia,
ja,ih) )
   780              vterm_hist(:,:,:,:) = 0.0_rp
   801              fz(1:
ka) = real_fz(1:
ka,i,j)
   803              fdz(
ks-1) = real_cz(
ks,i,j) - real_fz(
ks-1,i,j)
   804              rfdz(
ks-1) = 1.0_rp / fdz(
ks-1)
   806                 fdz(k) = real_cz(k+1,i,j) - real_cz(k  ,i,j)
   807                 rfdz(k) = 1.0_rp / fdz(k)
   808                 rcdz(k) = 1.0_rp / ( real_fz(k  ,i,j) - real_fz(k-1,i,j) )
   812                 dens2(k)  = 
dens(k,i,j)
   813                 temp2(k)  = temp(k,i,j)
   814                 pres2(k)  = pres(k,i,j)
   815                 cptot2(k) = cptot(k,i,j)
   816                 cvtot2(k) = cvtot(k,i,j)
   817                 rhoe(k)   = temp(k,i,j) * cvtot(k,i,j) * dens2(k)
   822                 rhoq2(k,iq) = dens2(k) * 
qtrc(k,i,j,iq)
   826              sflx_rain(i,j) = 0.0_rp
   827              sflx_snow(i,j) = 0.0_rp
   828              flx_hydro(:) = 0.0_rp
   829              do step = 1, mp_nstep_sedimentation
   835                         dens2(:), rhoq2(:,:), & 
   836                         refstate_dens(:,i,j), & 
   841                         dens2(:), temp2(:), rhoq2(:,:), & 
   846                         dens2(:), temp2(:), rhoq2(:,:), pres2(:), & 
   858                    if ( hist_vterm_idx(iq) > 0 ) 
then   860                          vterm_hist(k,i,j,hist_vterm_idx(iq)) = vterm_hist(k,i,j,hist_vterm_idx(iq)) &
   861                                                               + vterm(k,iq) * mp_rnstep_sedimentation
   867                 case ( 
'Upwind-Euler' )
   870                         temp2(:), vterm(:,:),   & 
   872                         mp_dtsec_sedimentation, & 
   874                         dens2(:), rhoq2(:,:),   & 
   875                         cptot2(:), cvtot2(:),   & 
   881                         temp2(:), vterm(:,:),   & 
   882                         fz(:), fdz(:), rcdz(:), & 
   883                         mp_dtsec_sedimentation, & 
   885                         dens2(:), rhoq2(:,:),   & 
   886                         cptot2(:), cvtot2(:),   & 
   895                    temp2(k) = rhoe2(k) / ( dens2(k) * cvtot2(k) )
   899                    flx_hydro(k) = flx_hydro(k) + mflux(k) * mp_rnstep_sedimentation
   902                 sflx_rain(i,j) = sflx_rain(i,j) - sflux(1) * mp_rnstep_sedimentation
   903                 sflx_snow(i,j) = sflx_snow(i,j) - sflux(2) * mp_rnstep_sedimentation
   909                 dens_t_mp(k,i,j) = ( dens2(k) - 
dens(k,i,j) ) / dt_mp
   913                 cp_t = ( cptot2(k) - cptot(k,i,j) ) / dt_mp
   914                 cv_t = ( cvtot2(k) - cvtot(k,i,j) ) / dt_mp
   915                 rhoh_mp(k,i,j) = rhoh_mp(k,i,j) &
   916                      + ( rhoe2(k) - rhoe(k) ) / dt_mp &
   917                      - ( cp_t + log( pres(k,i,j) / pre00 ) * ( cvtot(k,i,j) / cptot(k,i,j) * cp_t - cv_t ) ) &
   918                      * 
dens(k,i,j) * temp(k,i,j)
   928                 rhoq_t_mp(k,i,j,iq) = rhoq_t_mp(k,i,j,iq) &
   929                      + ( rhoq2(k,iq) - 
dens(k,i,j) * 
qtrc(k,i,j,iq) ) / dt_mp
   935                      dens(:,i,j), 
momz(:,i,j), 
u(:,i,j), 
v(:,i,j),        & 
   938                      momz_t_mp(:,i,j), rhou_t_mp(:,i,j), rhov_t_mp(:,i,j) ) 
   945              if ( hist_vterm_idx(iq) > 0 ) &
   946                 call file_history_put( hist_vterm_id(iq), vterm_hist(:,:,:,hist_vterm_idx(iq)) )
   948           if ( 
allocated( vterm_hist ) ) 
deallocate( vterm_hist )
   957           precip(i,j) = sflx_rain(i,j) + sflx_snow(i,j)
   961        call file_history_in( sflx_rain(:,:),   
'RAIN_MP',   
'surface rain rate by MP',          
'kg/m2/s',  fill_halo=.true. )
   962        call file_history_in( sflx_snow(:,:),   
'SNOW_MP',   
'surface snow rate by MP',          
'kg/m2/s',  fill_halo=.true. )
   963        call file_history_in( precip(:,:),   
'PREC_MP',   
'surface precipitation rate by MP', 
'kg/m2/s',  fill_halo=.true. )
   964        call file_history_in( evaporate(:,:,:), 
'EVAPORATE', 
'evaporated cloud number',          
'num/m3/s', fill_halo=.true. )
   966        call file_history_in( dens_t_mp(:,:,:), 
'DENS_t_MP', 
'tendency DENS in MP',         
'kg/m3/s'  , fill_halo=.true. )
   967        call file_history_in( momz_t_mp(:,:,:), 
'MOMZ_t_MP', 
'tendency MOMZ in MP',         
'kg/m2/s2' , fill_halo=.true. )
   968        call file_history_in( rhou_t_mp(:,:,:), 
'RHOU_t_MP', 
'tendency RHOU in MP',         
'kg/m2/s2' , fill_halo=.true. )
   969        call file_history_in( rhov_t_mp(:,:,:), 
'RHOV_t_MP', 
'tendency RHOV in MP',         
'kg/m2/s2' , fill_halo=.true. )
   971        call file_history_in( rhoh_mp(:,:,:), 
'RHOH_MP',   
'diabatic heating rate in MP', 
'J/m3/s',    fill_halo=.true. )
   973           call file_history_in( rhoq_t_mp(:,:,:,iq), trim(
tracer_name(iq))//
'_t_MP', &
   974                         'tendency rho*'//trim(
tracer_name(iq))//
' in MP', 
'kg/m3/s', fill_halo=.true. )
   986        dens_t(k,i,j) = dens_t(k,i,j) + dens_t_mp(k,i,j)
   987        momz_t(k,i,j) = momz_t(k,i,j) + momz_t_mp(k,i,j)
   988        rhou_t(k,i,j) = rhou_t(k,i,j) + rhou_t_mp(k,i,j)
   989        rhov_t(k,i,j) = rhov_t(k,i,j) + rhov_t_mp(k,i,j)
   991        rhoh(k,i,j) = rhoh(k,i,j) + rhoh_mp(k,i,j)
  1002        rhoq_t(k,i,j,iq) = rhoq_t(k,i,j,iq) + rhoq_t_mp(k,i,j,iq)
  1010                               dens_t_mp(:,:,:), 
'DENS_t_MP',       &
  1014                               momz_t_mp(:,:,:), 
'MOMZ_t_MP',         &
  1018                               rhoh_mp(:,:,:),   
'RHOH_MP',      &
  1028                                  rhoq_t_mp(:,:,:,iq), trim(
tracer_name(iq))//
'_t_MP', &
  1038        KA, KS, KE, IA, IS, IE, JA, JS, JE, &
  1058     integer, 
intent(in) :: KA, KS, KE
  1059     integer, 
intent(in) :: IA, IS, IE
  1060     integer, 
intent(in) :: JA, JS, JE
  1062     real(RP), 
intent(in) :: QV  (ka,ia,ja)
  1063     real(RP), 
intent(in) :: QHYD(ka,ia,ja,
n_hyd)
  1065     real(RP), 
intent(out) :: QTRC(ka,ia,ja,
qa_mp)
  1067     real(RP), 
intent(in), 
optional :: QNUM(ka,ia,ja,
n_hyd)
  1075                                             qv(:,:,:), qhyd(:,:,:,:), & 
  1084           qtrc(k,i,j,1) = qv(k,i,j)
  1096           qtrc(k,i,j,1) = qv(k,i,j)
  1108           qtrc(k,i,j,1) = qv(k,i,j)
  1121           qtrc(k,i,j,1) = qv(k,i,j)
  1130        log_error(
"ATMOS_PHY_MP_driver_qhyd2qtrc",*) 
'ATMOS_PHY_MP_TYPE (', trim(
atmos_phy_mp_type), 
') is not supported' 
real(rp), dimension(:,:,:), allocatable, public dens_tp
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_sn14_tracer_names
 
integer, parameter, public atmos_phy_mp_tomita08_nices
 
subroutine, public atmos_phy_mp_sn14_terminal_velocity(KA, KS, KE, DENS, TEMP, RHOQ, PRES, vterm)
ATMOS_PHY_MP_sn14_terminal_velocity Calculate terminal velocity. 
 
real(rp), dimension(:,:,:), allocatable, target, public momz
 
module ATMOSPHERE / Physics Cloud Microphysics 
 
integer, parameter, public atmos_phy_mp_tomita08_nwaters
 
character(len=h_mid), dimension(qa_mp), parameter, public atmos_phy_mp_tomita08_tracer_descriptions
 
real(rp), dimension(:,:,:), allocatable, target, public rhot
 
subroutine, public atmos_phy_mp_suzuki10_setup(KA, IA, JA)
Setup. 
 
real(dp), public time_dtsec_atmos_phy_mp
time interval of physics(microphysics) [sec] 
 
integer, public ia
of whole cells: x, local, with HALO
 
module Atmosphere / Physics Cloud Microphysics 
 
subroutine, public atmos_phy_mp_suzuki10_terminal_velocity(KA, vterm_o)
get terminal velocity 
 
character(len=h_mid), dimension(qa_mp), parameter, public atmos_phy_mp_kessler_tracer_descriptions
 
module atmosphere / reference state 
 
subroutine, public atmos_phy_mp_tomita08_terminal_velocity(KA, KS, KE, DENS0, TEMP0, RHOQ0, vterm)
Lin-type cold rain microphysics (terminal velocity) 
 
module ATMOSPHERIC Variables 
 
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
 
integer, parameter, public atmos_phy_mp_kessler_nices
 
subroutine, public atmos_phy_mp_tomita08_qhyd2qtrc(KA, KS, KE, IA, IS, IE, JA, JS, JE, Qe, QTRC)
get mass ratio of each category 
 
subroutine, public atmos_phy_mp_kessler_qhyd2qtrc(KA, KS, KE, IA, IS, IE, JA, JS, JE, Qe, QTRC)
Calculate mass ratio of each category. 
 
subroutine, public atmos_phy_mp_driver_calc_tendency(update_flag)
calculate tendency 
 
subroutine, public atmos_phy_mp_sn14_setup(KA, IA, JA)
ATMOS_PHY_MP_sn14_setup setup. 
 
real(rp), public atmos_grid_cartesc_real_totvolzxv
total volume (zxv, local) [m3] 
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
control volume (zxy) [m3] 
 
real(rp), public atmos_grid_cartesc_real_totvol
total volume (zxy, local) [m3] 
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fz
geopotential height [m] (wxy) 
 
integer, public ja
of whole cells: y, local, with HALO
 
integer, public io_fid_conf
Config file ID. 
 
subroutine, public file_history_reg(name, desc, unit, itemid, standard_name, ndims, dim_type, cell_measures, fill_halo)
Register/Append variable to history file. 
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzxv
control volume (zxv) [m3] 
 
real(rp), dimension(:,:,:), allocatable, target, public dens
 
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_momz_t
 
integer, public atmos_phy_mp_suzuki10_nwaters
 
real(rp), dimension(:,:,:), allocatable, public rhov_tp
 
character(len=h_short), dimension(qa_max), public tracer_name
 
logical, public statistics_checktotal
calc&report variable totals to logfile? 
 
subroutine, public atmos_phy_mp_driver_adjustment
adjustment 
 
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_rain
 
subroutine, public atmos_phy_mp_sn14_tendency(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, W, QTRC, PRES, TEMP, Qdry, CPtot, CVtot, CCN, dt, cz, fz, RHOQ_t, RHOE_t, CPtot_t, CVtot_t, EVAPORATE)
ATMOS_PHY_MP_sn14_tendency calculate tendency. 
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_tomita08_tracer_units
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_sn14_tracer_units
 
real(rp), public atmos_grid_cartesc_real_totvolzuy
total volume (zuy, local) [m3] 
 
module ATMOSPHERE / Physics Cloud Microphysics - Common 
 
integer, public is
start point of inner domain: x, local 
 
integer, public ie
end point of inner domain: x, local 
 
logical, public atmos_hydrometeor_dry
 
module atmosphere / hydrometeor 
 
procedure(qhyd2qtrc), pointer, public atmos_phy_mp_user_qhyd2qtrc
 
module atmosphere / physics / microphysics / Kessler 
 
subroutine, public atmos_phy_mp_driver_qhyd2qtrc(KA, KS, KE, IA, IS, IE, JA, JS, JE, QV, QHYD, QTRC, QNUM)
 
real(dp), public time_dtsec
time interval of model [sec] 
 
module atmosphere / grid / cartesC index 
 
integer, public ke
end point of inner domain: z, local 
 
integer, parameter, public atmos_phy_mp_sn14_ntracers
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volwxy
control volume (wxy) [m3] 
 
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_dens
refernce density [kg/m3] 
 
character(len=h_mid), dimension(qa_mp), parameter, public atmos_phy_mp_sn14_tracer_descriptions
 
subroutine, public atmos_phy_mp_kessler_terminal_velocity(KA, KS, KE, DENS0, RHOQ0, REFSTATE_dens_profile, vterm)
Kessler-type warm rain microphysics (terminal velocity) 
 
real(rp), public const_pre00
pressure reference [Pa] 
 
integer, parameter, public atmos_phy_mp_sn14_nwaters
 
subroutine, public atmos_phy_mp_kessler_setup
ATMOS_PHY_MP_kessler_setup Setup. 
 
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_dens_t
 
integer, public je
end point of inner domain: y, local 
 
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdz
z-length of control volume [m] 
 
real(rp), dimension(:,:,:), allocatable, target, public temp
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_kessler_tracer_units
 
real(rp), dimension(:,:,:), allocatable, target, public w
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_tomita08_tracer_names
 
subroutine, public atmos_phy_mp_precipitation_semilag(KA, KS, KE, QHA, QLA, QIA, TEMP, vterm, FZ, FDZ, RCDZ, dt, i, j, DENS, RHOQ, CPtot, CVtot, RHOE, mflx, sflx)
 
module atmosphere / grid / cartesC 
 
integer, public ks
start point of inner domain: z, local 
 
subroutine, public atmos_phy_mp_driver_tracer_setup
Config. 
 
integer, public atmos_phy_mp_suzuki10_ntracers
 
real(rp), dimension(:,:,:), allocatable, target, public pott
 
subroutine, public atmos_phy_mp_driver_setup
Setup. 
 
subroutine, public atmos_phy_mp_precipitation_momentum(KA, KS, KE, DENS, MOMZ, U, V, mflx, RCDZ, RFDZ, MOMZ_t, RHOU_t, RHOV_t)
 
real(rp), dimension(:,:,:), pointer, public dens_av
 
subroutine, public prc_abort
Abort Process. 
 
logical, public atmos_sw_phy_mp
 
integer, public js
start point of inner domain: y, local 
 
subroutine, public atmos_phy_mp_tomita08_setup(KA, KS, KE, IA, IS, IE, JA, JS, JE)
ATMOS_PHY_MP_tomita08_setup Setup. 
 
integer, parameter, public atmos_phy_mp_sn14_nices
 
character(len=h_short), public atmos_phy_mp_type
 
character(len=h_mid), dimension(:), allocatable, public atmos_phy_mp_suzuki10_tracer_descriptions
 
subroutine, public atmos_phy_mp_sn14_qhyd2qtrc(KA, KS, KE, IA, IS, IE, JA, JS, JE, Qe, QTRC, QNUM)
 
real(rp), public atmos_grid_cartesc_real_totvolwxy
total volume (wxy, local) [m3] 
 
real(rp), dimension(:,:,:), allocatable, target, public cvtot
 
subroutine, public atmos_phy_mp_kessler_adjustment(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, PRES, dt, TEMP, QTRC, CPtot, CVtot, RHOE_t, EVAPORATE)
ATMOS_PHY_MP_kessler_adjustment calculate state after saturation process. 
 
character(len=h_short), public atmos_phy_precip_type
 
real(rp), public atmos_phy_mp_cldfrac_thleshold
 
real(rp), dimension(:,:,:), allocatable, target, public v
 
subroutine, public atmos_phy_mp_suzuki10_qhyd2qtrc(KA, KS, KE, IA, IS, IE, JA, JS, JE, Qe, QTRC, QNUM)
get mass ratio of each category 
 
subroutine, public prof_rapstart(rapname_base, level)
Start raptime. 
 
character(len=h_short), dimension(:), allocatable, public atmos_phy_mp_suzuki10_tracer_units
 
real(rp), dimension(:,:,:), allocatable, target, public u
 
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_snow
 
real(rp), dimension(:,:,:), allocatable, public momz_tp
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_cz
geopotential height [m] (zxy) 
 
subroutine, public atmos_hydrometeor_regist(NL, NI, NAME, DESC, UNIT, Q0, ADVC)
ATMOS_HYDROMETEOR_regist Regist tracer. 
 
real(rp), public const_eps
small number 
 
subroutine, public atmos_phy_mp_precipitation_upwind(KA, KS, KE, QHA, QLA, QIA, TEMP, vterm, FDZ, RCDZ, dt, i, j, DENS, RHOQ, CPtot, CVtot, RHOE, mflx, sflx)
 
integer, public atmos_phy_mp_suzuki10_nices
 
module Atmosphere GRID CartesC Real(real space) 
 
character(len=h_short), dimension(:), allocatable, public atmos_phy_mp_suzuki10_tracer_names
 
character(len=h_short), dimension(qa_mp), parameter, public atmos_phy_mp_kessler_tracer_names
 
real(rp), dimension(:,:,:), allocatable, public rhou_tp
 
integer, public ka
of whole cells: z, local, with HALO
 
real(rp), dimension(:,:,:), pointer, public momz_av
 
subroutine, public atmos_phy_mp_tomita08_adjustment(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, PRES, CCN, dt, TEMP, QTRC, CPtot, CVtot, RHOE_t, EVAPORATE)
ATMOS_PHY_MP_tomita08_adjustment calculate state after saturation process. 
 
real(rp), dimension(:,:,:), allocatable, target, public cptot
 
subroutine, public tracer_regist(QS, NQ, NAME, DESC, UNIT, CV, CP, R, ADVC, MASS)
Regist tracer. 
 
subroutine, public atmos_phy_mp_suzuki10_tracer_setup
Config. 
 
integer, parameter, public n_hyd
 
subroutine, public monitor_reg(name, desc, unit, itemid, ndims, dim_type, isflux)
Search existing item, or matching check between requested and registered item. 
 
module atmosphere / physics / microphysics / Tomita08 
 
module Spectran Bin Microphysics 
 
module atmosphere / physics / cloud microphysics 
 
subroutine, public prof_rapend(rapname_base, level)
Save raptime. 
 
integer, public atmos_phy_mp_suzuki10_nccn
 
integer, parameter, public rp
 
integer, parameter, public atmos_phy_mp_tomita08_ntracers
 
module ATMOSPHERE / Physics Aerosol Microphysics 
 
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzuy
control volume (zuy) [m3] 
 
integer, public kijmax
of computational cells: z*x*y
 
subroutine, public atmos_phy_mp_suzuki10_tendency(KA, KS, KE, IA, IS, IE, JA, JS, JE, KIJMAX, dt, DENS, PRES, TEMP, QTRC, QDRY, CPtot, CVtot, CCN, RHOQ_t, RHOE_t, CPtot_t, CVtot_t, EVAPORATE)
Cloud Microphysics. 
 
integer, parameter, public atmos_phy_mp_kessler_nwaters
 
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
 
subroutine, public atmos_phy_mp_negative_fixer(KA, KS, KE, IA, IS, IE, JA, JS, JE, QLA, QIA, limit_negative, DENS, TEMP, CVtot, CPtot, QV, QTRC, RHOH, DENS_diff, ENGI_diff)
ATMOS_PHY_MP_negative_fixer negative fixer. 
 
integer, parameter, public atmos_phy_mp_kessler_ntracers
 
real(rp), dimension(:,:,:), allocatable, public atmos_phy_ae_ccn_t