ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_ReadFromWRFBdy.H
Go to the documentation of this file.
1 /**
2  * \file ERF_ReadFromWRFBdy.H
3  */
4 
5 #include <ERF.H>
6 #include <ERF_EOS.H>
7 #include <ERF_Constants.H>
8 #include <ERF_Utils.H>
9 #include <ERF_ProbCommon.H>
10 #include <ERF_DataStruct.H>
11 #include <ERF_SurfaceLayer.H>
12 
13 #ifdef ERF_USE_NETCDF
14 
15 /** Repack one converted WRF boundary side from serialized to runtime layout. */
16 void
17 repack_wrfbdy_to_realbdy (amrex::Vector<amrex::FArrayBox>& bdy_data,
18  bool use_wrf_bdy_qc_qi,
19  bool separate_hydrometeors = false);
20 
21 double
22 read_times_from_wrfbdy (const std::string& nc_bdy_file,
23  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xlo,
24  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xhi,
25  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_ylo,
26  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_yhi,
27  double& start_bdy_time, double& final_bdy_time);
28 
29 void
30 read_and_convert_from_wrfbdy (const int itime, const std::string& nc_bdy_file,
31  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xlo,
32  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xhi,
33  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_ylo,
34  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_yhi,
35  std::unique_ptr<amrex::MultiFab>& wrf_MUB,
36  std::unique_ptr<amrex::MultiFab>& wrf_C1H,
37  std::unique_ptr<amrex::MultiFab>& wrf_C2H,
38  std::unique_ptr<amrex::MultiFab>& wrf_RDNW,
39  std::unique_ptr<amrex::MultiFab>& wrf_PHB,
40  std::unique_ptr<amrex::MultiFab>& z_phys_cc,
41  std::unique_ptr<amrex::MultiFab>& z_phys_nd,
42  const amrex::MultiFab& xvel,
43  const amrex::MultiFab& yvel,
44  const amrex::MultiFab& cons,
45  const amrex::MultiFab& rho0,
46  amrex::Array<amrex::MultiFab*, AMREX_SPACEDIM>& area_vec,
47  const amrex::Geometry& geom, const bool& use_moist,
48  const bool use_wrf_bdy_qc_qi,
49  const bool has_cloud_ice,
50  const bool separate_hydrometeors,
51  const bool rebalance_wrf_state,
52  const amrex::Vector<amrex::BCRec>& domain_bcs_type_h,
53  int real_width, double bdy_time_interval,
54  bool is_anelastic, bool do_conversion = true);
55 
56 double
57 read_times_from_wrflow (const std::string& nc_low_file,
58  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& low_data_zlo,
59  double& start_low_time, double& final_low_time);
60 
61 void
62 read_from_wrflow (const int itime,
63  const std::string& nc_low_file,
64  const amrex::Box& domain,
65  amrex::Vector<amrex::Vector<amrex::FArrayBox>>& low_data_zlo);
66 
67 void
68 update_sst_tsk (const int itime,
69  const amrex::Geometry& geom,
70  const amrex::BoxArray& ba2d_lev,
71  amrex::Vector<std::unique_ptr<amrex::MultiFab>>& sst_lev,
72  amrex::Vector<std::unique_ptr<amrex::MultiFab>>& tsk_lev,
73  std::unique_ptr<SurfaceLayer>& SurfLayer,
74  const amrex::Vector<amrex::Vector<amrex::FArrayBox>>& low_data_zlo,
75  const amrex::MultiFab& cons,
76  const amrex::MultiFab& mf_PSFC_lev,
77  const amrex::Real rdOcp,
78  std::unique_ptr<amrex::iMultiFab>& lmask,
79  const bool use_moist);
80 
81 #endif // ERF_USE_NETCDF
const Real rdOcp
Definition: ERF_InitCustomPert_ABL.H:72
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ xvel
Definition: ERF_IndexDefines.H:215
@ cons
Definition: ERF_IndexDefines.H:214
@ yvel
Definition: ERF_IndexDefines.H:216