ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ERF_Morrison_Fortran_Interface.H
Go to the documentation of this file.
1 // MorrisonFortranInterface.h
2 
3 #ifndef MORRISON_FORTRAN_INTERFACE_H
4 #define MORRISON_FORTRAN_INTERFACE_H
5 
6 #include <stdbool.h>
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 /**
13  * Initialize the Morrison microphysics scheme
14  *
15  * @param morr_rimed_ice: 0 for graupel, 1 for hail configuration
16  */
17 void morr_two_moment_init_c(int morr_rimed_ice, int morr_noice);
18 
19 /**
20  * C interface to the Fortran MP_MORR_TWO_MOMENT routine.
21  *
22  * @note: All array dimensions must match between C++ and Fortran calls.
23  * @note: Arrays must be allocated in C++ before passing to this routine.
24  */
26  int itimestep,
27  // 3D arrays for hydrometeors and state variables
28  double* th, double* qv, double* qc, double* qr, double* qi, double* qs, double* qg,
29  double* ni, double* ns, double* nr, double* ng,
30  // 3D arrays for thermodynamics
31  double* rho, double* pii, double* p, double dt_in, double* dz, double* w,
32  // 2D arrays for precipitation
33  double* rainnc, double* rainncv, double* sr,
34  double* snownc, double* snowncv, double* graupelnc, double* graupelncv,
35  // Radar reflectivity
36  double* refl_10cm, bool diagflag, int do_radar_ref,
37  // Cumulus tendencies
38  double* qrcuten, double* qscuten, double* qicuten,
39  // WRF-Chem
40  bool f_qndrop, double* qndrop,
41  // Terrain height
42  double* ht,
43  // Domain dimensions
44  int ids, int ide, int jds, int jde, int kds, int kde,
45  int ims, int ime, int jms, int jme, int kms, int kme,
46  int its, int ite, int jts, int jte, int kts, int kte,
47  // Optional WRF-Chem related
48  bool wetscav_on, double* rainprod, double* evapprod,
49  double* qlsink, double* precr, double* preci, double* precs, double* precg
50 );
51 
52 #ifdef __cplusplus
53 }
54 #endif
55 
56 #endif // MORRISON_FORTRAN_INTERFACE_H
void mp_morr_two_moment_c(int itimestep, double *th, double *qv, double *qc, double *qr, double *qi, double *qs, double *qg, double *ni, double *ns, double *nr, double *ng, double *rho, double *pii, double *p, double dt_in, double *dz, double *w, double *rainnc, double *rainncv, double *sr, double *snownc, double *snowncv, double *graupelnc, double *graupelncv, double *refl_10cm, bool diagflag, int do_radar_ref, double *qrcuten, double *qscuten, double *qicuten, bool f_qndrop, double *qndrop, double *ht, int ids, int ide, int jds, int jde, int kds, int kde, int ims, int ime, int jms, int jme, int kms, int kme, int its, int ite, int jts, int jte, int kts, int kte, bool wetscav_on, double *rainprod, double *evapprod, double *qlsink, double *precr, double *preci, double *precs, double *precg)
void morr_two_moment_init_c(int morr_rimed_ice, int morr_noice)
@ rho
Definition: ERF_Kessler.H:22
@ qv
Definition: ERF_Kessler.H:28
@ ng
Definition: ERF_Morrison.H:48
@ nr
Definition: ERF_Morrison.H:45
@ ni
Definition: ERF_Morrison.H:46
@ ns
Definition: ERF_Morrison.H:47
@ qc
Definition: ERF_SatAdj.H:36