Skip to content

Commit 249014d

Browse files
authored
Merge pull request #775 from rarutter/driving_outputs
These outputs were never updated when we switched from outputting every in-simulation month to outputting at the end of the in-simulation year.
2 parents 860a3d4 + 280b3bc commit 249014d

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

config/output_spec.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ DEADC,Standing dead C,g/m2,,,invalid,invalid,invalid,invalid,double,
1818
DEADN,Standing dead N,g/m2/time,,,invalid,invalid,invalid,invalid,double,
1919
DEEPC,Amorphous SOM C,g/m2,,,invalid,invalid,invalid,invalid,double,
2020
DEEPDZ,Amorphous SOM horizon thickness,m,,invalid,invalid,invalid,invalid,invalid,double,
21-
DRIVINGNIRR,Input driving NIRR,W/m2,invalid,invalid,,invalid,invalid,invalid,
21+
DRIVINGNIRR,Input driving NIRR,W/m2,invalid,invalid,,invalid,invalid,invalid,float,
2222
DRIVINGRAINFALL,Input driving precip data after being split from snowfall,mm,,,,invalid,invalid,invalid,float,
2323
DRIVINGSNOWFALL,Input driving precip data after being split from rainfall,mm,,,,invalid,invalid,invalid,float,
2424
DRIVINGTAIR,Input driving air temperature data,degree_C,invalid,invalid,,invalid,invalid,invalid,float,

src/Runner.cpp

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1697,10 +1697,15 @@ void Runner::output_netCDF(std::map<std::string, OutputSpec> &netcdf_outputs, in
16971697

16981698
#pragma omp critical(outputDRIVINGNIRR)
16991699
{
1700-
1700+
//This does not need an entry in OutputHolder because the
1701+
// driving data is already holding a year's worth of values
1702+
// and daily outputs are not held for multiple years.
17011703
if(curr_spec.daily){
1702-
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.nirr_d[doy], 1, day_timestep, dinm);
1704+
if(end_of_year){
1705+
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.nirr_d[0], 1, day_timestep, DINY);
1706+
}
17031707
}
1708+
17041709
}//end critical(outputDRIVINGNIRR)
17051710
}//end DRIVINGNIRR
17061711
map_itr = netcdf_outputs.end();
@@ -1716,7 +1721,9 @@ void Runner::output_netCDF(std::map<std::string, OutputSpec> &netcdf_outputs, in
17161721
{
17171722
//daily
17181723
if(curr_spec.daily){
1719-
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.rain_d[doy], 1, day_timestep, dinm);
1724+
if(end_of_year){
1725+
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.rain_d[0], 1, day_timestep, DINY);
1726+
}
17201727
}
17211728
//monthly
17221729
else if(curr_spec.monthly){
@@ -1749,7 +1756,9 @@ void Runner::output_netCDF(std::map<std::string, OutputSpec> &netcdf_outputs, in
17491756
{
17501757
//daily
17511758
if(curr_spec.daily){
1752-
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.snow_d[doy], 1, day_timestep, dinm);
1759+
if(end_of_year){
1760+
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.snow_d[0], 1, day_timestep, DINY);
1761+
}
17531762
}
17541763
//monthly
17551764
else if(curr_spec.monthly){
@@ -1780,10 +1789,15 @@ void Runner::output_netCDF(std::map<std::string, OutputSpec> &netcdf_outputs, in
17801789

17811790
#pragma omp critical(outputDRIVINGTAIR)
17821791
{
1783-
1792+
//This does not need an entry in OutputHolder because the
1793+
// driving data is already holding a year's worth of values
1794+
// and daily outputs are not held for multiple years.
17841795
if(curr_spec.daily){
1785-
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.tair_d[doy], 1, day_timestep, dinm);
1796+
if(end_of_year){
1797+
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.tair_d[0], 1, day_timestep, DINY);
1798+
}
17861799
}
1800+
17871801
}//end critical(outputDRIVINGTAIR)
17881802
}//end DRIVINGTAIR
17891803
map_itr = netcdf_outputs.end();
@@ -1797,10 +1811,15 @@ void Runner::output_netCDF(std::map<std::string, OutputSpec> &netcdf_outputs, in
17971811

17981812
#pragma omp critical(outputDRIVINGVAPO)
17991813
{
1800-
1814+
//This does not need an entry in OutputHolder because the
1815+
// driving data is already holding a year's worth of values
1816+
// and daily outputs are not held for multiple years.
18011817
if(curr_spec.daily){
1802-
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.vapo_d[doy], 1, day_timestep, dinm);
1818+
if(end_of_year){
1819+
output_nc_3dim(&curr_spec, file_stage_suffix, &cohort.climate.vapo_d[0], 1, day_timestep, DINY);
1820+
}
18031821
}
1822+
18041823
}//end critical(outputDRIVINGVAPO)
18051824
}//end DRIVINGVAPO
18061825
map_itr = netcdf_outputs.end();

0 commit comments

Comments
 (0)