#ifndef GLM_POLITICAL_INPUTS_H #define GLM_POLITICAL_INPUTS_H #include #include #include "config.h" #include "grid_cell.h" namespace glm { inline double fround2(double n, unsigned d){ return floor(n*pow(10., d) + .5) / pow(10., d); } class Zone; typedef std::vector ZoneList; template class GriddedInput; class GridInfo { public: GridInfo (ZoneList& zones, Config& config); void readCellInfo (Config& config); void readCountryCodes (ZoneList& countries, Config& config); void readShiftCult (Config& config); void readContinentCodes (ZoneList& countries, Config& config); void readRegionCodes (ZoneList& countries, Config& config); void readOtherData (Config& config); void readCropTypesData (Config& config); void readFertilizerData (ZoneList& countries, Config& config); void readFloodedFractionData (Config& config); double lat[NY]; double lon[NX]; double cellArea[NY][NX]; double cellArea2Deg[AGG_NY][AGG_NX]; GriddedInput* wtr_; GriddedInput* ice_; double wtr2Deg_[AGG_NY][AGG_NX]; double ice2Deg_[AGG_NY][AGG_NX]; double forested2Deg_[AGG_NY][AGG_NX]; int shiftCult[NY][NX]; int countryCode[NY][NX]; int countryIndex[NY][NX]; int continentCode[NY][NX]; double vrgnBiomassAboveGround[NY][NX]; double vrgnNPPAboveGround[NY][NX]; double future_pasture_fracs[NY][NX]; int forested[NY][NX]; double forestedFraction[NY][NX]; double C3_annual_input_2000[NY][NX]; double C4_annual_input_2000[NY][NX]; double C3_perennial_input_2000[NY][NX]; double C4_perennial_input_2000[NY][NX]; double N_fixing_input_2000[NY][NX]; double flooded_input_2000[NY][NX]; double flooded_ratio[NY][NX]; double crop2015[NY][NX]; double crop2100[NY][NX]; double SC2099[NY][NX]; double rs_forest_loss_2012[NY][NX]; GriddedInput* restartC3Ann_; GriddedInput* restartC4Ann_; GriddedInput* restartC3Per_; GriddedInput* restartC4Per_; GriddedInput* restartC3NFx_; GriddedInput* restartC3Ann2015_; GriddedInput* restartC4Ann2015_; GriddedInput* restartC3Per2015_; GriddedInput* restartC4Per2015_; GriddedInput* restartC3NFx2015_; GriddedInput* restartPastr_; GriddedInput* restartRange_; GriddedInput* restartScndF_; GriddedInput* restartScndN_; GriddedInput* restartPrimF_; GriddedInput* restartPrimN_; GriddedInput* restartUrban_; GriddedInput* restartSMA_; GriddedInput* restartSMB_; GriddedInput* restartC3AnnFert_; GriddedInput* restartC4AnnFert_; GriddedInput* restartC3PerFert_; GriddedInput* restartC4PerFert_; GriddedInput* restartC3NfxFert_; GriddedInput* restartC3AnnIrrig_; GriddedInput* restartC4AnnIrrig_; GriddedInput* restartC3PerIrrig_; GriddedInput* restartC4PerIrrig_; GriddedInput* restartC3NfxIrrig_; GriddedInput* restartFlood_; GriddedInput* restartFharvC3Per_; GriddedInput* restartFharvC4Per_; GriddedInput* restartCropbfC3Ann_; GriddedInput* restartCropbfC4Ann_; GriddedInput* restartCropbfC3Per_; GriddedInput* restartCropbfC4Per_; GriddedInput* restartCropbfC3Nfx_; GriddedInput* restartRndwd_; GriddedInput* restartFulwd_; GriddedInput* restartCombf_; GriddedInput* restartVBH1_; GriddedInput* restartSBH1_; GriddedInput* restartVBH2_; GriddedInput* restartSBH2_; GriddedInput* restartSBH3_; GriddedInput* restartSC2099_; }; } #endif // GLM_POLITICAL_INPUTS_H