File atm_coupling.hpp
File List > components > emulator_comps > eatm > src > impl > atm_coupling.hpp
Go to the documentation of this file
#ifndef ATM_COUPLING_HPP
#define ATM_COUPLING_HPP
#include "../../../common/src/coupling_fields.hpp"
#include "atm_field_manager.hpp"
namespace emulator {
namespace impl {
struct AtmCouplingIndices {
// =========================================================================
// Export indices (a2x)
// =========================================================================
int Sa_z = -1;
int Sa_u = -1;
int Sa_v = -1;
int Sa_tbot = -1;
int Sa_ptem = -1;
int Sa_shum = -1;
int Sa_dens = -1;
int Sa_pbot = -1;
int Sa_pslv = -1;
int Faxa_lwdn = -1;
int Faxa_rainc = -1;
int Faxa_rainl = -1;
int Faxa_snowc = -1;
int Faxa_snowl = -1;
int Faxa_swndr = -1;
int Faxa_swvdr = -1;
int Faxa_swndf = -1;
int Faxa_swvdf = -1;
int Faxa_swnet = -1;
// =========================================================================
// Import indices (x2a)
// =========================================================================
int Sx_t = -1;
int So_t = -1;
int Faxx_sen = -1;
int Faxx_evap = -1;
int Faxx_lat = -1;
int Faxx_taux = -1;
int Faxx_tauy = -1;
int Faxx_lwup = -1;
int Sx_avsdr = -1;
int Sx_anidr = -1;
int Sx_avsdf = -1;
int Sx_anidf = -1;
int Sl_snowh = -1;
int Si_snowh = -1;
int Sx_tref = -1;
int Sx_qref = -1;
int Sx_u10 = -1;
int Sf_ifrac = -1;
int Sf_ofrac = -1;
int Sf_lfrac = -1;
void initialize(CouplingFieldsBase &fields);
};
void import_atm_fields(const double *import_data, int ncols, int nfields,
const AtmCouplingIndices &idx, AtmFieldManager &fields);
void export_atm_fields(double *export_data, int ncols, int nfields,
const AtmCouplingIndices &idx,
const AtmFieldManager &fields);
} // namespace impl
} // namespace emulator
#endif // ATM_COUPLING_HPP