1 #ifndef ERF_READCUSTOMBINARYIC_H_
2 #define ERF_READCUSTOMBINARYIC_H_
13 amrex::Vector<amrex::Real>& latvec_h,
14 amrex::Vector<amrex::Real>& lonvec_h,
15 amrex::Vector<amrex::Real>& xvec_h,
16 amrex::Vector<amrex::Real>& yvec_h,
17 amrex::Vector<amrex::Real>& zvec_h,
18 amrex::Vector<amrex::Real>& rho_h,
19 amrex::Vector<amrex::Real>& uvel_h,
20 amrex::Vector<amrex::Real>& vvel_h,
21 amrex::Vector<amrex::Real>& wvel_h,
22 amrex::Vector<amrex::Real>& theta_h,
23 amrex::Vector<amrex::Real>& qv_h,
24 amrex::Vector<amrex::Real>& qc_h,
25 amrex::Vector<amrex::Real>& qr_h)
27 int nx, ny, nz, ndata;
31 std::ifstream infile(filename, std::ios::binary);
33 std::cerr <<
"Error: Could not open file " << filename << std::endl;
37 infile.read(
reinterpret_cast<char*
>(&nx),
sizeof(
int));
38 infile.read(
reinterpret_cast<char*
>(&ny),
sizeof(
int));
39 infile.read(
reinterpret_cast<char*
>(&nz),
sizeof(
int));
40 infile.read(
reinterpret_cast<char*
>(&ndata),
sizeof(
int));
42 for(
int i=0; i<nx*ny; i++) {
43 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
44 latvec_h.emplace_back(value);
47 for(
int i=0; i<nx*ny; i++) {
48 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
49 lonvec_h.emplace_back(value);
52 for(
int i=0; i<nx; i++) {
53 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
54 xvec_h.emplace_back(value);
57 for(
int j=0; j<ny; j++) {
58 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
59 yvec_h.emplace_back(value);
62 for(
int k=0; k<nz; k++) {
63 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
64 zvec_h.emplace_back(value);
67 amrex::Vector<amrex::Real>* data_h =
nullptr;
70 for(
int idx=0; idx<ndata; idx++){
88 for(
int k=0; k<nz; k++) {
89 for(
int j=0; j<ny; j++) {
90 for(
int i=0; i<nx; i++) {
91 infile.read(
reinterpret_cast<char*
>(&value),
sizeof(
float));
92 data_h->emplace_back(value);
void ReadCustomBinaryIC(const std::string filename, amrex::Vector< amrex::Real > &latvec_h, amrex::Vector< amrex::Real > &lonvec_h, amrex::Vector< amrex::Real > &xvec_h, amrex::Vector< amrex::Real > &yvec_h, amrex::Vector< amrex::Real > &zvec_h, amrex::Vector< amrex::Real > &rho_h, amrex::Vector< amrex::Real > &uvel_h, amrex::Vector< amrex::Real > &vvel_h, amrex::Vector< amrex::Real > &wvel_h, amrex::Vector< amrex::Real > &theta_h, amrex::Vector< amrex::Real > &qv_h, amrex::Vector< amrex::Real > &qc_h, amrex::Vector< amrex::Real > &qr_h)
Definition: ERF_ReadCustomBinaryIC.H:12