ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
mp_morr_two_moment_isohelper Module Reference

Functions/Subroutines

subroutine morr_two_moment_init_c (morr_rimed_ice, morr_noice)
 
subroutine mp_morr_two_moment_c (itimestep, th, qv, qc, qr, qi, qs, qg, ni, ns, nr, ng, rho, pii, p, dt_in, dz, w, rainnc, rainncv, sr, snownc, snowncv, graupelnc, graupelncv, rainonlync, refl_10cm, diagflag, do_radar_ref, qrcuten, qscuten, qicuten, f_qndrop, qndrop, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte, wetscav_on, rainprod, evapprod, qlsink, precr, preci, precs, precg)
 

Function/Subroutine Documentation

◆ morr_two_moment_init_c()

subroutine mp_morr_two_moment_isohelper::morr_two_moment_init_c ( integer(c_int), intent(in), value  morr_rimed_ice,
integer(c_int), intent(in), value  morr_noice 
)
10  INTEGER(C_INT), VALUE, INTENT(IN) :: morr_rimed_ice
11  INTEGER(C_INT), VALUE, INTENT(IN) :: morr_noice
12  CALL morr_two_moment_init(morr_rimed_ice, morr_noice)
Here is the call graph for this function:

◆ mp_morr_two_moment_c()

subroutine mp_morr_two_moment_isohelper::mp_morr_two_moment_c ( integer(c_int), intent(in), value  itimestep,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  th,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qv,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qc,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qr,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qi,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qs,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qg,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  ni,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  ns,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  nr,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  ng,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  rho,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  pii,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  p,
real(c_double), intent(in), value  dt_in,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  dz,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  w,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  rainnc,
real(c_double), dimension(ims:ime, jms:jme), intent(inout)  rainncv,
real(c_double), dimension(ims:ime, jms:jme), intent(inout)  sr,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  snownc,
real(c_double), dimension(ims:ime, jms:jme), intent(inout)  snowncv,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  graupelnc,
real(c_double), dimension(ims:ime, jms:jme), intent(inout)  graupelncv,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  rainonlync,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  refl_10cm,
logical(c_bool), intent(in), value  diagflag,
integer(c_int), intent(in), value  do_radar_ref,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  qrcuten,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  qscuten,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(in)  qicuten,
logical(c_bool), intent(in), value  f_qndrop,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qndrop,
integer(c_int), intent(in), value  ids,
integer(c_int), intent(in), value  ide,
integer(c_int), intent(in), value  jds,
integer(c_int), intent(in), value  jde,
integer(c_int), intent(in), value  kds,
integer(c_int), intent(in), value  kde,
integer(c_int), intent(in), value  ims,
integer(c_int), intent(in), value  ime,
integer(c_int), intent(in), value  jms,
integer(c_int), intent(in), value  jme,
integer(c_int), intent(in), value  kms,
integer(c_int), intent(in), value  kme,
integer(c_int), intent(in), value  its,
integer(c_int), intent(in), value  ite,
integer(c_int), intent(in), value  jts,
integer(c_int), intent(in), value  jte,
integer(c_int), intent(in), value  kts,
integer(c_int), intent(in), value  kte,
logical(c_bool), intent(in), value  wetscav_on,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  rainprod,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  evapprod,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  qlsink,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  precr,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  preci,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  precs,
real(c_double), dimension(ims:ime, jms:jme, kms:kme), intent(inout)  precg 
)
31 
32  ! Define C interoperable types
33  INTEGER(C_INT), VALUE, INTENT(IN) :: itimestep
34  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: th, qv, qc, qr, qi, qs, qg, ni, ns, nr, ng
35  REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme, kms:kme) :: rho, pii, p, dz, w
36  REAL(C_DOUBLE), VALUE, INTENT(IN) :: dt_in
37  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: rainnc, snownc, graupelnc
38  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme) :: rainncv, sr, snowncv, graupelncv
39  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: rainonlync
40  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: refl_10cm
41  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: diagflag
42  INTEGER(C_INT), VALUE, INTENT(IN) :: do_radar_ref
43  REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme, kms:kme) :: qrcuten, qscuten, qicuten
44  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: f_qndrop
45  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: qndrop
46  ! REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme) :: ht
47 
48  ! Domain dimensions
49  INTEGER(C_INT), VALUE, INTENT(IN) :: ids, ide, jds, jde, kds, kde
50  INTEGER(C_INT), VALUE, INTENT(IN) :: ims, ime, jms, jme, kms, kme
51  INTEGER(C_INT), VALUE, INTENT(IN) :: its, ite, jts, jte, kts, kte
52 
53  ! Optional arguments
54  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: wetscav_on
55  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: rainprod, evapprod
56  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: qlsink, precr, preci, precs, precg
57 
58  ! Convert C_BOOL to Fortran logical
59  LOGICAL :: diag_flag_f, f_qndrop_f, wetscav_on_f
60 
61  ! Convert C types to Fortran types
62  diag_flag_f = diagflag
63  f_qndrop_f = f_qndrop
64  wetscav_on_f = wetscav_on
65 
66  CALL mp_morr_two_moment(itimestep, &
67  th, qv, qc, qr, qi, qs, qg, ni, ns, nr, ng, &
68  ! rho, pii, p, dt_in, dz, ht, w, &
69  rho, pii, p, dt_in, dz, w, &
70  rainnc, rainncv, sr, &
71  snownc, snowncv, graupelnc, graupelncv, &
72  rainonlync, &
73  refl_10cm, diag_flag_f, do_radar_ref, &
74  qrcuten, qscuten, qicuten, &
75  f_qndrop_f, qndrop, &
76  ids, ide, jds, jde, kds, kde, &
77  ims, ime, jms, jme, kms, kme, &
78  its, ite, jts, jte, kts, kte, &
79  wetscav_on_f, rainprod, evapprod, &
80  qlsink, precr, preci, precs, precg)
81 
Here is the call graph for this function: