ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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, refl_10cm, diagflag, do_radar_ref, qrcuten, qscuten, qicuten, f_qndrop, qndrop, ht, 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)  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,
real(c_double), dimension(ims:ime, jms:jme), intent(in)  ht,
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 
)
29 
30  ! Define C interoperable types
31  INTEGER(C_INT), VALUE, INTENT(IN) :: itimestep
32  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: th, qv, qc, qr, qi, qs, qg, ni, ns, nr, ng
33  REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme, kms:kme) :: rho, pii, p, dz, w
34  REAL(C_DOUBLE), VALUE, INTENT(IN) :: dt_in
35  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: rainnc, snownc, graupelnc
36  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme) :: rainncv, sr, snowncv, graupelncv
37  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: refl_10cm
38  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: diagflag
39  INTEGER(C_INT), VALUE, INTENT(IN) :: do_radar_ref
40  REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme, kms:kme) :: qrcuten, qscuten, qicuten
41  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: f_qndrop
42  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: qndrop
43  REAL(C_DOUBLE), INTENT(IN), DIMENSION(ims:ime, jms:jme) :: ht
44 
45  ! Domain dimensions
46  INTEGER(C_INT), VALUE, INTENT(IN) :: ids, ide, jds, jde, kds, kde
47  INTEGER(C_INT), VALUE, INTENT(IN) :: ims, ime, jms, jme, kms, kme
48  INTEGER(C_INT), VALUE, INTENT(IN) :: its, ite, jts, jte, kts, kte
49 
50  ! Optional arguments
51  LOGICAL(C_BOOL), VALUE, INTENT(IN) :: wetscav_on
52  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: rainprod, evapprod
53  REAL(C_DOUBLE), INTENT(INOUT), DIMENSION(ims:ime, jms:jme, kms:kme) :: qlsink, precr, preci, precs, precg
54 
55  ! Convert C_BOOL to Fortran logical
56  LOGICAL :: diag_flag_f, f_qndrop_f, wetscav_on_f
57 
58  ! Convert C types to Fortran types
59  diag_flag_f = diagflag
60  f_qndrop_f = f_qndrop
61  wetscav_on_f = wetscav_on
62 
63  CALL mp_morr_two_moment(itimestep, &
64  th, qv, qc, qr, qi, qs, qg, ni, ns, nr, ng, &
65  rho, pii, p, dt_in, dz, ht, w, &
66  rainnc, rainncv, sr, &
67  snownc, snowncv, graupelnc, graupelncv, &
68  refl_10cm, diag_flag_f, do_radar_ref, &
69  qrcuten, qscuten, qicuten, &
70  f_qndrop_f, qndrop, &
71  ids, ide, jds, jde, kds, kde, &
72  ims, ime, jms, jme, kms, kme, &
73  its, ite, jts, jte, kts, kte, &
74  wetscav_on_f, rainprod, evapprod, &
75  qlsink, precr, preci, precs, precg)
76 
Here is the call graph for this function: