All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project follows a GNU standard version numbering
of major.minor.patch with
-
majorfor substantial changes to code functionality, -
minorfor additions of modules and functionality, and -
patchfor technical changes and bugfixes without extending the functionality of the code. -
if applicable, categories to include in the CHANGELOG.md are:
- Added
- Changed
- Deprecated
- Removed
- Fixed
- Security
author: Stephen Wirth (wirth@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de) code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- DEBUG print statements for negative input to infiltration in
daily_agriculture(),daily_agriculture_grass(),daily_agriculture_tree(),daily_biomass_grass(),daily_biomass_tree(),daily_woodplantation(), anddaily_natural() - Missing regridding of climate data added to the
regridlpjutility
- Replace hardcoded
Sphagnum_mossindex (13) withstrcmp(config->pftpar[p].name,"Sphagnum moss")in 5 landuse files - Fix PFT numbering comments in pft.cjson to reflect actual positions (1-14)
- Updated
biome_classification.cto usefindpftname()instead of hard-coded macros - Removed macros from
pftpar.h - Added missing PFTs to
biome_classification.c - String comparison in
landusechange_for_reservoir.creplaced by call toispftinstand() - Default value of
LPJINPATHset to/p/projects/lpjml/inputs/public_standardinconfigure.sh
- Removed boreal broadleaved summergreen tree from needleleaved fpc sum in
biome_classification.c - Removed
daily_setaside.cwhich was unused
- Double accounting of irrigation water interception in
daily_grassland.c - C balance error in
deforest() - Balance checks in
update_daily_cell(),grasslandreduction()andlandusechange() - DEBUG print statement in
restart2yaml.c - Sign error in daily carbon balance check in
update_daily_cell(),daily_grassland(), anddaily_agriculture()when methane is enabled: absorbed atmospheric CH4 oxidized within the same timestep was double-counted - Global water balance check in
updatedaily_grid()now uses daily increments of annual flux accumulators and per-cell daily storage snapshots instead of annual_laststorage fields, eliminating errors when starting from a restart file; reservoir irrigation buffer (dfout_irrigation_daily) now included in surface storage accounting - Misplaced
printcell()corrected inupdate_monthly_grid.ccausing SEGV if-DDEBUGis set - Correct number of cells written in JSON metafile in
regridirrig - Error message corrected for nitrogen balance check in
daily_natural.cto avoid SEGV without land use enabled - Missing
fclose(file)added ingetnsoilcode.c - Reading of landcovermap corrected in
landcover.c
- author: Werner von Bloh (bloh@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- code review: Fabian Stenzel (stenzel@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- Base temp and hlimit values are read from crop PHU JSON or NetCDF file and compared to values read from the PFT JSON file.
lpjmlstops in case of different values. - Warning is printed if no JSON or NetCDF file is read for crop PHU input or file contains no
"basetemp"or"hlimit"data. - Band names for mapping are read from JSON metafiles and NetCDF input files.
- Globale attribute
"title"is read from climate and land-use input files and checked for matching titles. - Global attribute
"climate"is read for crop PHU and livestock density output and compared to title of climate input. - File
magicadded to support LPJmL clm and restart files for thefilecommand. Content of the magic file has to copied to the~/.magicfile. - Arrays
"hlimit"and"basetemp"copied from JSON metafile to NetCDF file inclm2cdf. - Option
-drainageadded to scriptregridlpjto regrid drainage, elevation, reservoir and neighbour irrigation file. - Options
-metafileand-jsonadded toregriddrainandregridirrigto use JSON metafiles for input and write JSON metafiles for output. - Support for float and double datatype added to
readintdata_netcdf.c.
- JSON metafiles instead of CLM files used in
input.cjsonfor land-use, fertilizer, manure, sowing data and crop PHU input in order to read CFT maps. - JSON metafiles are read for climate input to get title.
- Maps in
lpjml_config.cjsonare commented out. If defined they are used instead of the maps defined in the input files. - The global attributes in JSON metafiles are printed on separate lines.
- If unit string is identical scaling is set to 1 for NetCDF files and udunits is not called.
- Updated standard input data set to citable and publishable data sets (https://doi.org/10.5281/zenodo.19064225), making use of JSON file metadata where applicable.
- The
regridlpjutility uses now JSON metafiles for regridding the input data. - Population input for SPITFIRE can be read in units of total number or density, boolean type for
"population"replaced by strings"no","number"and"density". - Default map name changed to
"map"in utilitymathclm.
- Datatype
Configis called by reference infilesexist()function to avoid pointer error inlpjcheck. - Typos in help text in
regridclm.ccorrected. - Unit for fertilizer and manure input fixed in
filesexist.c. opencoord()function fixed to set file format for metafiles correctly.- Check for successfull opening of second file corrected for metafiles in
mathclm.c. - Header file
support_pedotransfer_stub.hupdated to allow successfull compilation of tests.
- author: Stephen Wirth (wirth@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- code review: Christoph Müller (cmueller@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- Added benchmark folder with R scripts (
simulate_default.R,benchmark_default.R,benchmark_utils.R) to simulate default scenarios and run benchmarks. - Added support for separate methane/no_methane output configurations in benchmark scripts.
- Option
-check_balanceadded toconfigure.shto enable balance checks on function level.
- Argument
-couple $(hostname)added to call of lpjml inslurm.jcfif-coupleoption is set forlpjsubmit. - Wait for coupled program to finish added in slurm script.
- Fixed several potential floating point exceptions in
nuptake_tree.c,nuptake_grass.c,nuptake_crop.candlittersom.c - Printing of balance error messages replaced by call to
fail()inpedotransfer.c,allocation_grass.c,litter_update_grass.c,turnover_grass.candupdate_annual_cell.c - Function
fail.cchanged to print"Program terminated unsucessfully"on new line. - Check balance error messages reformatted.
- Fixed global water balance error in
sowingcft.candflux_sum.c. - Fixed FPE in
allocation_grass.c. - Hard-coded error limits for balance checks in functions replaced by global parameter
"carbon_fcn","nitrogen_fcn, and"w_fcn". - Global balance check in
updatedaily_grid.conly done if running on one task. - Compile flag
-DNO_FAIL_BALANCEreplaced by configuration flag"fail_on_balance"inlpjml_config.cjson. "delta_year"keyword moved frominput.cjsontolpjml_config.cjson.- Missing
-DNO_METHANEflag added tolpjml_config_pnv.cjson. - Time step of
"temp"output changed from daily to monthly.
- Support for cloudiness and short wave only setting for climate input removed, only
"radiation"and"radiation_lwdown"allowed. - Output
"sun"and"sun_image"removed. - Unused files
nooutput_gbw.candupdate_monthly.cremoved. - Unused array
layer_existsin soil struct removed.
- Function
openconfig.ccorrected to avoid segmentation violation if lpjml/lpjcheck is called with-couple hostnameoption. - Changed
nupsum==0tonupsum<epsiloninnuptake_crop.c,nuptake_grass.candnuptake_tree.cto avoid potential FPEs. - Function
cutpfts.ccorrected to close carbon balance. - Water balance check in
infil_perc.candannual_grass.ccorrected to avoid false water balance errors. - Balance error messages corrected in
cultivate.c. - Carbon balance closed in
update_wetland.c. - Variable
srenamed tosningrasslandreduction()to avoid SEGV. - Misplaced reading of NO3 and NH4 depositions deleted in
getclimate.c. - Check for negative
vmadded inphotosynthesis.cto avoid nitrogen balance errors. tillage()function changed to avoid carbon balance errors.- Utility
regridclmcorrected to avoid SEGV if file size does not match header. - Parameter
"fburnt"inlpjparam.cjsonis always read, was always zero if"luc_timber"was set to false. - Help text corrected in
printclm.c. - Misplaced
free(climate)causing double free corruption removed ininitclimate.c.
- author: Sibyll Schaphoff (sibylls@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Marie Hemmen (marie.hemmen@pik-potsdam.de)
- Model can be run with monthly water use for household, industry and livestock which is available from Zenodo, reading in annual input is still possible.
- Pointers to IMAGE related data initialized to
NULLinlpjprint.c.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- Warning message added in
lpjml,lpjcheck,cdf2soil,txt2gridandcdf2coordif cell size cannot be resolved by grid data in short format. - Function
isfloatcoord()added incoord.cto check whether coordinate must be stored as a float variable, test functiontest_isfloatcoord.cadded. - Test functions for
vmaxlimit_tree,vmaxlimit_grass,vmaxlimit_crop,bisect,leftmostzeroandgetbufferavgfunctions added.
- Error about first simulation year is less than first year of climate data replaced by warning in
initclimate.candfilesexist.c. - First and last simulation year in spinup changed from 1901 to 1700 in
lpjml_config.cjson. - Number of spinup years changed from 4000 to 3799 in
lpjml_config.cjsonin order to get bit-identical results. - Test files for unit test and shell scripts added to tar and zip file in
Makefile. - First year of climate data set instead of first simulation year used in
initsoiltemp.c. - Unused argument
ncftremoved fromcheck_stand_fracs.candupdate_wetland.c. - Redundant calculation of stand fraction sum removed in
check_stand_fracs.c.
- Unused source file
src/lpj/part.cremoved.
- Expected number of bands set correctly for raw input files in
openinputdata.c. - Hard-coded filename
test.lpjreplaced by temporary filename intest_append.c,test_getnoread.c,test_indexarray.c,test_isdefined.c,test_isnull.c,test_restart.c, andtest_writename.cin order to allow parallel execution of tests. - Arguments corrected in calls of lpjml functions in
lpj_poem.c. - Missing
-print_noreadoption added inINSTALL. setupannual_grid.ccorrected to compile with-DIMAGE -DCOUPLEDflag.- Error message for different datatypes corrected in
lpjcat.c. - Variables initialized to zero and NULL in
phenology_gsi.c,lpjcat.candrestart2yaml.cto avoid warnings ingcc. - Man page for
lpjml,lpjcheck,lpjrun,lpjfiles,json2restartandrestart2yamlcorrected. - Missing option
-nooutputadded to man page oflpjfiles. - Help text for
-hoption oflpjfiles,restart2yaml,printclmandregridclmcorrected. - Check for NULL pointer for
pftsarray corrected inlpjcat.c. - Function
fread()replaced byfreadint()inregridirrig.cto account for different byte order. - Missing deallocation of
itemsarray added insendhash.c. - Filename for population density input corrected in
regridlpj. - Header files added for unit tests to compile tests successfully.
- Function
albedo_crop.candfwritecell.cchanged to compile with-DCOUPLING_WITH_FMSsetting. - Misplaced check for NULL pointer for wind removed in
dailyclimate.c, unnecessary check for NULL pointer for wind removed. - Missing
delta_precanddelta_tempfilenames added infprintfiles.c. - Missing dependency on
climate.hadded to Makefile insrc/landuse. - Double occurrence of
"outputyear"removed inlpjml_config_pnv.cjson.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Maik Billing (billing@pik-potsdam.de)
- Declaration of
mixsoilenergy()moved fromsetaside.ctolanduse.h.
- Unused functions
snow.old(),soiltemp()and related functions removed. - Setting without permafrost removed
- Soil variables
state[],alag,amp, andmeanw1removed.
- author: Sibyll Schaphoff (sibylls@pik-potsdam.de), David Hötten (davidho@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de), David Hötten (cmueller@pik-potsdam.de)
- extensive development for calculating methane and wetland dynamics (Schaphoff et al. in prep.), including:
- calculation of the water table in
infil_perc.c(mergedinfil_perc_rain.candinfil_perc_irr.c) - calculation of a dynamic wetland area in
update_wetlands.c - extends soil pools by the oxygen pool
- ground water pool added
- calculates subdaily
littersom.c- oxic decomposition depending on oxygen content
- diffusion of methane and oxygen
- methane production and oxidation added
- nitrification depending on oxygen content
- root respiration consumes oygen
- new routines
ebullitionandplant_gas_transport.c - extensive restructuring of
landusechange.c - new
SETASIDE_WETLANDadded, converted from wetlands to grow rice - rice always irrigated and assuming a levelled water table
- introducing new, inundation insensitive, PFTs:
tropical broadleaved evergreen tree floodtolerant,C3 graminoid flood tolerant,Sphagnum moss - new PFT parameters
ist_m.idt_d, andalpha_efor inundation tolerance and ebullition suppression - new soil parameters
psi_sat,b.efold.ctimax - configuration flag
with_methaneadded to run LPJmL6 with or without methane and oxygen dynamics (original daily version of littersom is called) - reading new inputs
slope_mean,slope_max,slope_min,kbf value,CH4 (atmospheric CH4 concentration),hydrotopes (CTI values),climate delta values (optional),icefrac (optional) - boolean flag
"natNBP_only"defined to calculate NBP from natural vegetaton only - optional input for ice cover can be read by setting
"with_glaciers" : true - optional reading in of climate anomalies for CLIMBER applications, enabled by setting
"anomaly" : true.
- calculation of the water table in
CN_GC4_MXset to 42.71K_LATOSAset to 4e3 for all trees- adjusted
beta_root,resist,ligthextcoeff,gminparameters - adjusted phenology parameters
wscal base,tmax base
- author: David Hötten (davidho@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de), Marie Hemmen (marie.hemmen@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- Option
-with_timingadded toconfigure.shto enable timing, corresponding man page updated. - Flag
-DUSE_TIMINGenables now timing for several LPJmL functions for performance analysis. - Macros
timing_start()andtiming_stop()defined to allow timing of specific functions.
- Flag
-DUSE_TIMINGremoved from default compilation flags. Has to be enabled by./configure.sh -with_timing. - Timing function for socket I/O are replaced by two separate items
read_socketandwrite_socket.
pft->faparcomputation for maize inalbedo_crop.calbedo_green_leavescomputation for crops inalbedo_crop.cpft->albedo, which is now a sum ofalbedo_green_leaves,albedo_brown_litter, andalbedo_soil
- author: Werner von Bloh (bloh@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de)
- code review: Maik Billing (billing@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- Variable
phenadded to output infprintpft.c. - Compile option
NRECOVERY_COSTadded toINSTALLand man page ofconfigure.sh. - Check for valid
swc_bnfparameters added infscanpftpar.c. - Wirth et al. (2024) article added to
REFERENCES. - New parameter
"tscal_b"added inlpjparam.cjson. - New virtual function
getb()added to typePft.
- 2 boolean flags
phen_to_oneandrainyseasonadded to tree parameter. These are used inphenology_gsi.cinstead of string compare with tree names. - Unused argument
aet_layerremoved fromnitrogen_stress()function. phi_bnfparameter calculated fromswc_bnfparameter instead of reading frompft.cjsonfile infscanpftpar.c.- Hard-coded parameter in temperature dependent calculation of
breplaced by global parametertscal_b. - Calculation of
binsetupannual_grid.creplaced by call to new virtual PFT functiongetb().
- Parameter
phi_bnfremoved frompft.cjson. - Variable
bremoved from restart file. - Unused macro
RESTART_VERSIONremoved fromheader.h.
- Arguments of
nppfunction corrected indaily_woodplantation.c. The current version leads to a too strong reduction in NPP. nuptake_crop.cchanged to compile with-DDEBUG_Noption.update_daily_cell.cchanged to compile with-DDEBUGoption.daily_agriculture_tree.cchanged to compile with-DDEBUG2option.- Typo in error message in
bstruct_writearrayindex.ccorrected. - Error message corrected in
bstruct_wopen.c. - Error number corrected in
bstruct_finish.c. - Argument
tempadded tof_turnover_treefunction to compile with-DNRECOVERY_COSToption.
- author: Jens Heinke (heinke@pik-potsdam.de), Sibyll Schaphoff (sibylls@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- option to specify year after which deforestation is no longer feeding product pools but biomass is burnt instead:
luc_burn_startyear(disabled) - option to specify costs for N recovery upon turnover (pre-compiler switch
NRECOVERY_COST, disabled)
- parameter changes:
alphaafrom 0.5 to 0.7 for natural vegetation;thetafrom 0.9 to 0.95;fn_turnoverPFT1: 0.5, PFT2: 0.5, PFT3: 0.7, PFT4: 0.3, PFT5: 0.3, PFT6: 0.7, PFT7: 0.3, PFT8: 0.3; updated values from Sophia et al. 2024 for all other PFTs except cropscnratio_leaf.low/median/highfor all PFTs updated from TRY datab(ratio of dark respiration Rd to maximum photosynthetic capacity Vcmax) set to 0.031 for C3 and C4 plants (value for 25°C, from Wang et al. 2020, consistent with TRY data)aphen_minfrom 60 to 90 andaphen_maxfrom 245 to 180nfixpotfrom 0.01 to 0.5 (middle of proposed range in Yu and Zhuang 2020)turnoverparameter for leaves&roots set to 2 for TeNE and 3 BoNE- temperature boundary between temperate and boreal zone changed from -2°C to -5°C
- acclimation of
bto mean vegetation period temperature (following Wang et al. 2020) - calculation of structural leaf N content (leaf N independent of Vcmax) based on
ncleaf.lowin bothndemand_xxandvmaxlimit_xx(wasncleaf.mediuminndemand_xx) - scaling of vmax with
f_LAIremoved - N recovery from turnover directly added to
bm_inc.nitrogen - N uptake now separated for uptake of NH4 and NO3 with parameters from Craig et al. 2025 (median of values)
- trees are burnt (instead of added to the litter) when running with
luc_timber=FALSE - beginning of vegetative period for tropical raingreen trees set at beginning of 6 month period with highest precipitation sum
- leaf shedding for deciduous trees induced after
aphen_maxor whenphen<0.1afteraphen_min phenpermanently set to 1 for tropical evergreen trees
- corrected conversion of vmax in computation of N demand, which was incorrectly scaled with
24/daylength - corrected temperature sensitivity of N demand (
k_tempchanged from 0.02 to 0.0693) - corrected
f_NCplantto comply with equation from Smith et al. 2014 - corrected phenology of trees:
- leaf turnover of raingreen trees at leaf shedding (same as for summergreen trees, had continuous daily leaf turnover like evergreen trees)
phenset to zero at leaf shedding until restart of phenological cycle to prevent phen>1 without leaf carbon
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Maik Billing (billing@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de), Sebastian Ostberg(ostberg@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de)
- Option
-hadded to utilitiesaddheader,cdf2bin,regridclm,regridsoilandprintclmto print help text. - Notice added in
configure.shthatmake clean; make allhas to be performed after change in configuration. - Support for short datatype added in
cmpbinutility. - Shell script
allbin2cdfadded to convert all binary raw output files in a directory to NetCDF files. - Option
-nounitadded tobin2cdfto set unit if unit is defined in the metafile as an empty string.
- If option
-ncell 0is used inaddheaderutility then the number of cells is calculated from the file size of the binary file. - Utilities
grid2clmandcft2clmare replaced by alias toaddheader. - File
default.mdconverted from DOS to Linux format. - If scaling factor is set as an option in
bin2cdfthen this scaling factor is used instead that one defined in the JSON metafile. - Man pages updated.
- Missing
free(axis->comment)added infreeaxis()to avoid memory leak. - Missing deallocation of list added in
open_config.c. - Function
nc_close()replaced bycloseclimate_netcdf()incdf2clm.candcdf2bin.cto avoid memory leak. - Argument for error message corrected in
getcellindex.candgetcountry.c. - Typo in man page of
configure.shfixed. - Comment for
pftinitialized ininitsetting_netcdf.c. - Access to undefined
pft_name.commentremoved inbin2cdf.cto avoid SEGV. - Short data handled correctly for metafile input in
bin2cdf. - Missing check for sum operator added in utility
mathclm. Without this check number of bands in output file is always set to 1. - Man page for
mathclmcorrected for option-v.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Sibyll Schaphoff (sibylls@pik-potsdam.de)
- Utility
restart2yamladded to convert the new restart files into human readable YAML or JSON files. - Utility
json2restartadded to convert JSON files into restart files. - alias
restart2jsonadded forrestart2yaml -json. - Output of time spent in reading and writing the restart file added.
- Option
-print_noreadadded tolpjmlto print variable names not read from restart file. - Check added that PFT names in restart file match PFT names in LPJmL configuration file.
- Unit tests added for bstruct library functions.
- Restart file format changed to include metadata. A binary JSON-like structure has been implemented. The order of the objects read can be different from the order objects have been written, but performance of reading can be degraded.
- Utility
lpjcatupdated to support the new restart file format. - Preprint's doi:10.5194/egusphere-2023-2946 changed to the final BNF paper doi:10.5194/gmd-17-7889-2024 in
.zenodo.json.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: David Hötten (davidho@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- New functions
setupannual_grid,initmonthly_grid(),updatedaily_grid()andupdateannual_grid()defined to minimize lines of code initerateyear.canditerate.cand minimize duplicate code inlpj_poem.c. - Parts of code in
iterateyear.chas been moved toupdate_daily_cell.candupdate_monthly_grid.c. lpj_climber4.crenamed tolpj_poem.c.update_daily.crenamed toupdate_daily_cell.c.update_monthly.crenamed toupdate_monthly_grid.c.AFTER_STRESSdebugging output inupdate_daily_cell.c(formerupdatedaily.c) moved after N update really happened.
- Macro
isequilyear()has been defined for calling equilibration function in a consistent way (issue #375).
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Fabian Stenzel (stenzel@pik-potsdam.de), Sebastian Ostberg(ostberg@pik-potsdam.de)
- Axis names and missing values for NetCDF output are read from JSON file
netcdf.cjsoninstead of being hard coded. - Warnings in
addheaderreplaced by terminating errors. - Function
openinputfile()returns an error if cell size differs in JSON metafile. - Function
openmetafile()returns an error if binary file is empty. - Output format for cell size updated in
fprintheader.c,fprintoutputjson.c,fprintjson.c, andopeninputfile.c.
- New utility
splitclmadded to copy specific bands from a clm file. - Environment variables
LPJNOPPandLPJPEDANTICadded. If set totrue, preprocessor is disabled and pedantic checking is enabled, respectively. - Info about
--helpoption added in case of error in command line arguments. - Option
-configadded tocdf2clm,bin2cdf,country2cdfandclm2cdfin order to read axis names and missing values from a JSON file. Filenetcdf.jsonadded as a template. - Option
-jsonadded toarr2clm,asc2clm,txt2grid,txt2clm,getcountry, andcdf2coordin order to create additional JSON metafiles. - Option
-inpathadded toregridlpjin order to set directory where data can be found. - Options
-zeroand-searchadded toregridlpj. - Option
-doubleadded totxt2gridin order to create grid files with coordinate values of type double. - Option
-timestepadded toaddheader,txt2clmandbin2cdf. - Option
sum,tsumandtmeantomathclmadded. - Check for correct setting of nstep and nbands added in
txt2clm.
- Misspelled
-fsanitize=addressoption corrected inMakefile.mpich. - Missing
free(cmd)added infprintincludes.c. - Parsing of options corrected in
fprintincludes.c. - Utility
bin2cdffixed for timestep>1.
- author: David Hötten (davidho@pik-potsdam.de)
- code review: Sebastian Ostberg (ostberg@pik-potsdam.de), Maik Billing (billing@pik-potsdam.de)
- Merge request template
.gitlab/merge_request_templates/default.mdthat includes several checklists.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Fabian Stenzel(stenzel@pik-potsdam.de)
- Option
-checkofconfigure.shenables now run-time checks of memory leaks and memory access out of bounds and undefined variables for gcc and icx compiler. Optimization is not disabled. Use options-debug -checkto disable. - Datatype
Listused infprintfiles.c. - All allocated memory is now freed in utilities.
- Prescribed landcover input file changed in
input.cjsonto a file with the same number of natural PFTs. - All remaining unsafe calls to
sprintf()replaced by calls tosnprinf()orgetsprinf().
- Check for missing values for integer input corrected in
readclimate_netcdf.c. - Memory leak fixed in
filesexist.c. - Calculation of global area fixed in
printglobal.c. - Check for null attribute pointer added in
fprintjson.c. - Uninitialized grid name initialized in
mathclm.c. - Call to
snprintf()replaced bygetsprintf()inreservoir2cdf.c. - Datatype for index and writing the header corrected in
lpjcat.c. - Functions for qsort(), bisect(), and leftmostzero() changed to avoid run-time errors with
-checkoption. - Pointer set to NULL if
k_estis NULL ininitmanage.c. - Missing argument added in opening aquifer file for IMAGE.
- Scaling of coordinates fixed in
joingrid.c. - Fraction pointer initialized to NULL in
freadresdata.cto avoid SEGV inlpjprint.cif reservoir data is read from restart file. - Index set correctly for outflow cells in
regriddrain.c. - Check for maximum discharge length corrected in
printdrain.c. - Number of years of clm file set to 1 in
grid2clm.c. - Function
fscanlandcovermap.ccorrected (issue #48). - Access out of bounds for
soil->freezdepthfixed insoiltemp.c. - Format specifier changed in
cat2bsq.candcutclm.cto compile without warnings using the clang compiler (issue #372).
- author: Werner von Bloh (bloh@pik-potsdam.de), Hester Biemans (hester.biemans@wur.nl)
- code review: Susanne Rolinski (rolinski@pik-potsdam.de), Marie Hemmen (hemmen@pik-potsdam.de)
input_netcdf.cjsonchanged to the default dataset ofinput.cjsonbut in NetCDF format.- Code changed to compile under Windows OS.
- New function
getsprintf()added to allocate and print formatted output into string. Function replaces call tosnprintf()function. - Default settings for
GIT_HASHandGIT_REPOadded. - Duplicate filenames removed from list of input/output filenames in utility
lpjfiles.
- Option
-intadded to utilitycdf2clm. - Option
-latlonadded to utilitycdf2coordin order to change the order of the CLM grid file. - Utility
cdf2reservoiradded to convert NetCDF reservoir file into CLM file. - Utility
reservoir2cdfadded to convert CLM reservoir file into a NetCDF file using the soil code NetCDF file. - Macro
NETCDF_INPUTadded inlpjml_config.cjsonto enable NetCDF input. - Reservoir, irrigation neighbor and drainage data can now be in NetCDF format:
"drainage" : { "fmt" : "cdf", "var" : "index", "name" : "cru_netcdf/drainage.nc"},
"neighb_irrig" : { "fmt" : "cdf", "var" : "index", "name" : "cru_netcdf/neighb_irrig.nc"},
"river" : { "fmt" : "cdf", "var" : "riverlen", "name" : "cru_netcdf/drainage.nc"},
"reservoir" : { "fmt" : "cdf", "var" : "year", "name" : "cru_netcdf/reservoir.nc"},
"capacity_reservoir" : { "fmt" : "cdf", "var" : "capacity", "name" : "cru_netcdf/reservoir.nc"},
"area_reservoir" : { "fmt" : "cdf", "var" : "area", "name" : "cru_netcdf/reservoir.nc"},
"inst_cap_reservoir" : { "fmt" : "cdf", "var" : "inst_cap", "name" : "cru_netcdf/reservoir.nc"},
"height_reservoir" : { "fmt" : "cdf", "var" : "height", "name" : "cru_netcdf/reservoir.nc"},
"purpose_reservoir" : { "fmt" : "cdf", "var" : "purpose", "name" : "cru_netcdf/reservoir.nc"},- River length is now correctly read in
initdrain.cfor data in NetCDF format. - Man page of
cvrtclmcorrected. - Missing check for open NetCDF file added to
openclimate.c.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
"coupled_host"and"coupled_port"added to LPJmL configuration to specify where the coupled model is running and which port is used for communication.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sebastian Ostberg (ostberg@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de)
- Check for correct number of time steps added in
openclimate_netcdf.c. - Option
timestepadded tosetclm.
- Function
freegrid()is callingfreecell()to avoid redundant code. - References in man pages updated.
-voption ofcdf2clmprints leap days setting for daily time step.- Missing file
CHANGELOG.mdadded to tar and zip file. - Longitude and latitude boundaries excluded as variables in
cdf2grid. - Ids for sowing date and crop PHU input added to
couplerpar.h. - Length of GIT repository output limited in
copyright.c.
- Memory leaks in utility
lpjprintclosed. - Handling of NaN as missing value corrected in reading NetCDF files.
- Doubled initialization of standtype array corrected in
lpj_clinber4.c. - Option
typecorrected insetclm. - Handling of different endianness corrected in
setclm. - If version is changed with
setclmonly version is updated in the clm file. - Check that CO2 data is coming completely from socket corrected in
readco2.c. - Number of years are now calculated correctly from number of days in case of leap days if number of leap days reaches 365.
- Check for identical filenames corrected in
cutclm.c. - Missing
elseadded inreadclimate().
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Fabian Stenzel (stenzel@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de)
- Option
-partitionadded tolpjsubmitscript.
- Man page of lpjsubmit refers only to slurm commands.
- If
icccompiler is found, this compiler is used. enablefpc.cupdated to compile under Mac OS.
- Support for old PIK cluster removed.
- Support for LoadLeveler batch queueing system removed.
- Support for AIX OS removed.
- Alias for
lpjmland obsoletelpjml.shremoved inlpj_paths.sh.
- author: Christoph Müller (cmueller@pik-potsdam.de)
- code review: Sebastian Ostberg (ostberg@pik-potsdam.de), Marie Hemmen (hemmen@pik-potsdam.de)
basetempandhlimitparameters fixed to fit to standard growing season inputs (issue #346).laimaxvalues corrected from 5 to 7 fortemperate cereals,rice, andtropical cereals
- author: Werner von Bloh (bloh@pik-potsdam.de), Sebastion Ostberg (ostberg@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- code review: Marie Hemmen (hemmen@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de)
- Option
-cmdadded tolpjsubmitin order to execute a command before lpjml is called. - Command
module listadded to slurm script to show all loaded modules.
- Obsolete
#ifdef WITHOUT_NITROGENcheck removed frompft.cjson.
ALLOM3parameter corrected to 4.0 for oil palm inpft.cjson(issue #369).- Missing
breakadded inconvert_water.c.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- GIT repository and GIT hash printed in the LPJmL banner and in output of NetCDF and JSON files.
- Options
-repoand-hashadded tolpjmlto print GIT repository and hash. - The JSON file created by
createconfigcontains now name and hash of GIT repository. - Command
lpjml -vprints GIT repository and hash. - Target
hashadded to Makefile to update hash after committing changes to the GIT repository.
LPJ_VERSIONmacro inlpj.hreplaced by functiongetversion().
- Obsolete header columns cereal and maize removed from
fprintcountrypar.c.
- Missing dependency on
getbuild.cfor targetlpjmladded insrc/Makefile. xiarreplaced byarinMakefile.hpc2024in order to compile withintel/oneAPI/2025.0.0.- Typos in error messages in
filesexist.candcdf2soil.cfixed. - Missing check for open file added to
joingrid.c.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- Option
-scaleadded tobin2cdfin order to scale output. - Option
-notimeadded tobin2cdfin order to omit time axis. time_bnds,lat_bnds, andlon_bndsarrays added to NetCDF output for lpjml runs and thebin2cdfutility.- Check for identical output filenames added in
fscanoutput.c.
- If
"with_days"is set to true in the lpjml configuration file, time axis of yearly output is also set in units of days instead of years. - Time in NetCDF output is always set in the middle between the lower and upper time boundaries.
- Unused file
cflux_sum.cremoved. - Conversion of obsolete file
manage.parremoved from utilitymanage2js.
- Separate output for each year by setting
"name" : "filename_%d"is now written correctly (issue #360). - Number of bands set to 1 in metafile of grid NetCDF output.
- Name of longitude/latitude variables correctly derived in
getlatlon_netcdf.c. - Misspelled option
-netdcdf4corrected to-netcdf4inclm2cdf.c. lpj_climber4.cupdated to compile without errors.- Writing different variables into one NetCDF file fixed in
create_netcdf.c. Only NetCDF outputs with one band and same time step can be written to one file. - Formatting of man pages corrected.
- Missing
shift 1for-crumonthlycase added inregridlpj.
- author: Werner von Bloh (bloh@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
pft->vscalnot set toNDAYYEARinupdate_annual.c. (issue #364).freezefrac2soil.ccorrected to avoid division by zero.- size of option array for
sowing_date_optionandcrop_phu_optionnow correctly specified infscanconfig.c.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sebastian Ostberg (ostberg@pik-potsdam.de), Marie Hemmen (hemmen@pik-potsdam.de)
USE_NETCDF4compile option replaced by"netcdf4"boolean flag in the LPJmL configuration file. If set compression of NetCDF4 files can be enabled and PFT names are written as strings instead of character arrays.- Formatting of man pages harmonized.
- If lpjml is compiled without
-DUSE_NETCDFflag thenfscanconfig.candfscanoutput.creturn with an error for NetCDF files specified for input/output.
- Option
-netcdf4added tobin2cdf,clm2cdf,country2cdf, anddrainage2cdfutility to enable NetCDF4 format. - Boolean flag
"netcdf4"added to LPJmL configuration file in order to enable NetCDF4 format. - Option
-compressadded todrainage2cdfutility to enable file compression. - Man page for
drainage2cdfadded. - Check for valid compression value added for lpjml and utilities.
- Missing option
"global_netcdf"added to LPJmL config file.
- Obsolete man page for
writeregioncode()removed.
- Missing deallocation of memory added in
cpl_init.c,fscanlandcovermap.c,fscanoutput.c,writearea.c,create_pft_netcdf.c,newgrid.c,fscanagtreemap.c,celldata.cin case of error. - Syntax error fixed in
update_daily.cin IMAGE coupling. - Typo in
READMEcorrected. establishmentpft.c,cdf2coord.candcdf2grid.cmodified to compile without warnings using gcc.- Debug flag in
send_token_coupler.candopenoutput_coupler.ccorrected toDEBUG_COUPLER. - Code changed to compile without errors/warnings for
-DIMAGE -DCOUPLEDsetting. - Calculation of offsets and counts corrected in
readintdata_netdf.cand missing loop over bands added.
- author: Christoph Müller (cmueller@pik-potsdam.de)
- code review: Werner von Bloh (bloh@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- added SLURM option
--cpus-per-task=1tolpjsubmittemplatebin/lpjsubmit_hpcto avoid that mpirun uses several CPUs per process
- author: Stephen Wirth (wirth@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- code review: Alja Vrieling (alja.vrieling@vortech.nl), Johanna Braun (jobraun@pik-potsdam.de)
- tree.fruit biomass is now explicitly handled in timber_harvest() and pools scaled accordingly in annual_woodplantation.c even though these are currently always zero anyways.
- added missing scaling of
bm_inc.nitrogenafter part of it was added to litter in harvest of wood plantations as in issue #358
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- Option
"no"for nitrogen setting removed, only"lim"and"unlim"allowed. Corresponding parameter fileslpjparam_non.cjsonandpft_non.cjsonremoved. - Removed commented-out code in
allocation_tree.c
- Missing check for zero added in
allocation_grass.cto avoid division by zero.
- author: Christoph Müller (cmueller@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Fabian Stenzel (stenzel@pik-potsdam.de)
- new options
PRESCRIBED_SDATE_ALL_RAINFEDandPRESCRIBED_SDATE_ALL_IRRIGto allow using the same sowing dates based on the rainfed or irrigated seasons respectively - new options
PRESCRIBED_CROP_PHU_ALL_RAINFEDandPRESCRIBED_CROP_PHU_ALL_IRRIGto allow using the same PHU requirements based on the rainfed or irrigated seasons respectively
- refactored
crop_option_restarttocrop_phu_option_restartin structConfigandcrop_optiontocrop_phu_optionin structRestartheaderfor greater clarity - refactored options
"new"to"vbussel15"and"old"to"bondau07"forcrop_phu_optionswhere"vbussel15"is an implementation based on van Bussel et al. 2015
- removed unnecessary check for file of prescribed
sdatesinfileexist.c
- fixed missing initialization of pointer
mapin cft2bin.c that caused abortion of compilation with-Werrorotherwise
- author: Christoph Müller (cmueller@pik-potsdam.de)
- code review: Susanne Rolinski (rolinski@pik-potsdam.de), Fabian Stenzel (stenzel@pik-potsdam.de)
- included latest reference in .zenodo.json for syncing github and gitlab repositories. Future transfer of code between gitlab and github should be smoother now as both are at the same commit history now
- author: David Hoetten (davidho@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- order of freezing of different water soil water components changed: free water freezes last to simply mathematical description of model
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: David Hoetten (davidho@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- Utility
cdf2gridadded to convert grid files in NetCDF format into grid CLM files. - Option
-jsonand-rawadded tocdf2coordutility to write additional JSON metafile and to write without CLM header.
- Check added that dimension must be greater 1 for variable in NetCDF file in
cdf2coord.c,input_netcdf.candcoord_netcdf.c. - Datatype of longitude/latitude array in
coord_netcdf.cchanged from float to double for consistency, variable name correctly printed in error messages. - Intel and clang compiler recognized in
printflags.c.
- Test for
nullcorrected for"output"infscanoutput.c. - Missing
breakadded inswitchstatement inreceiver_coupler.c. - Code changed to compile successfully without
-DSAFE,-DUSE_NETCDF, and-DUDUNITScompilation flag. - Unit for
"estab_storage_n"corrected to"gN/m2"inoutputvars.cjson. - Scaling set to 1 if datatype is not short in
cdf2coord.candcdf2clm.
- author: Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Christoph Mueller (cmueller@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- Fix a regression for
NBPoutput infwriteoutputintroduced in version 5.9.4
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- Warning added if time step of output is longer than output interval.
- Cycle length of spinup and number of spinup years checked for positive values in
fscanconfig.c. - File size of CLM input files is checked for consistency with header and lpjml is stopped accordingly.
- Utility
drainage2cdfadded to convert CLM drainage file into a NetCDF file using the soil code NetCDF file (issue #355).
- Setting
"const_lai_max"renamed to"laimax_const"for consistency. - Keyword
"laimax_interpolate"renamed to"laimax_manage". - Region-specific fractions for residue burning replaced by global parameter
"bifratio"and"fuelratio". lpjmlnow terminates with an error message instead of a warning on invalid country codes to avoid invalid access to country-specific parameters.- Country code files can now have only one band. Files with 2 bands are still supported, but region code ignored.
- Filename and source is written into configuration file created by
regridlpj. nullallowed for"global_attrs","inpath","outpath","restartpath","output", and"checkpoint_filename"to disable the feature.
"laimax_interpolate","firewood","black_fallow","till_fallow","cropsheatfrost", and"grassland_fixed_pft"settings and corresponding code removed (issue #350).- Obsolete function
daily_setaside.cremoved. Function is not necessary any more for coupling to POEM. - Obsolete constants removed in
conf.h. - Unused parameter
"residue_rate","residue_pool","residue_cn","residue_fbg"removed. - Functions for reading region-specific parameters removed.
- Obsolete region parameter file
manage_reg.cjsonremoved - Obsolete outputs
"region","flux_firewood","flux_firewood_n"removed. - Region definitions removed from
managepar.h.
- Typos in error messages corrected in
bin2cdf.candclm2cdf.c. - Output of turnover corrected in
fprintpar_grass.c. - Output of options fixed in
openconfig.cif environment variableLPJOPTIONSis set. - Calculation of average fixed in
statclm. res_removecalculation fixed for residue fires inharvest_crop.cto close carbon and nitrogen balance.- Missing update of
FLUX_ESTABN_MGadded inturnover_tree.c. - Function
initdrain()corrected to handle river routing files in NetCDF format.
- author: Werner von Bloh (bloh@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Fabian Stenzel (stenzel@pik-potsdam.de), David Hötten (davidho@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
- Output
"nbp"for net biosphere productivity and"tws"for total water storage added. failadded to mail type inlpjsubmit_hpc.- Option
-mapadded tocdf2binandcdf2clmto read map from NetCDF file and write it into JSON metafile. "sim_name"and all other global attributes are written into JSON file forcdf2binutility.
- Scaling of
"littertemp"output fixed. - Unit corrected for
"rootmoist"output and scaling corrected. - Correct number of output files printed in
lpjfilesutility if separate output files for each year are enabled.
DEPTH_NAMEandBNDS_NAMEexcluded for search for variable in NetCDF file if no variable name is provided.- Check added that dimension must be greater 1 for variable in NetCDF file.
- author: Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Christoph Müller (cmueller@pik-potsdam.de)
fire_grassburns grass leaf biomass based on fire resistence parameter (function did nothing before)- Burning of fruits added to
fire_tree, although stands with fruit trees currently do not experience fire
- Unit and description of
FIREFoutput changed from fire return interval to fire fraction to harmonize output between GlobFirM and SpitFire
- Added missing update of FPCs after fire before establishment
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Christoph Mueller (cmueller@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- Missing regridding of wateruse and livestock density input added in
regridlpj.
- Compile option
-Werroradded to stop compilation oficx/gccafter warning. This feature can be disabled by using the-noerroroption ofconfigure.sh. - Filename and source is written into configuration file created by
regridlpj. - All missing output indices are printed in case that the
"outputvar"array is too short.
- Incorrect scaling removed in utility
printharvest. - Uninitialized PFT pointer set to first PFT in
harvest_stand.c. - Uninitialized variable
n_attrset to zero in utilityprintclm. - Prescribed land cover is now read correctly if landcover map size differs from number of natural PFTs.
- Check for land use type
WPcorrected inlandusechange.c(issue #354). - Code fixed to remove all warnings if compiled with
icx/gcc. regridclmnow used for regridding of soil file inregridlpj.- Missing seek to offset added in filesexist.c
- Misplaced deallocation of memory for unit corrected in
printclm.
- author: David Hötten (davidho@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- Added
GPL_HEATmacro to change number of gridpoints per soil layer used for heat convection. - Added
percolation_heattransferswitch to disable convection/percolation heattransfer. - Added
littertempoutput variable for litter temperature. - Added fast implicit crank nicolson heat conduction scheme for non-phase change conditions
apply_heatconduction_of_a_day.c.
- Replaced
soiltempsoil temperature and snow and litter heat conduction routines withupdate_soil_thermal_state.c;soiltempremains in the repository for POEM/FMS coupling. - Use enthalpy (thermal energy) as state variable for soil thermal regime instead of temperature.
- Numeric heat conduction method is a finite element enthalpy scheme
apply_heatconduction_of_a_day.c. - Numeric heat convection method is improved by closing the energy balance for water infil and percolation.
- Conduction through snow and litter cover is now part of the numerical method for the soil.
- Snow and litter temperatures are now calculated by interpolating air and top gridpoint temperature.
- Snow melt by snow temperature greater than 0 deg is removed.
- Litter heat insulation is now based on literature values for litter thermal conductivity.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- List of required modules on new PIK cluster added in
INSTALL. configure.shscript recognizes new PIK cluster and setsmpiicx/icxcompiler accordingly.- New site-specific
Makefile.hpc2024andMakefile.icxfor parallel/sequential compilation on new cluster added. - New
lpjsubmit_hpcslurm script added for new PIK cluster.configure.shsets symbolic link oflpjsubmitto this script.
- All occurrences of the deprecated function
MPI_Type_extentreplaced byMPI_Type_get_extentto allow compilation with OpenMPI. *.tmpfiles added to.gitignore.
- Functions
mpi_write.c,mpi_write_txt.c,mpi_read_socket.candmpi_write_socket.cchanged to avoidSEGVon new PIK cluster.
- author: Christoph Müller (cmueller@pik-potsdam.de)
- reviewer: Fabian Stenzel (stenzel@pik-potsdam.de), Luke Oberhagemann (lukeober@pik-potsdam.de)
- .zenodo.org updated to be compliant with PIK publication rules:
- added "active-development" and "Potsdam Institute for Climate Impact Research" to keywords
- added Christoph as "contributor", which seems to be the only way to have a visible contact person
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- A preprocessed JSON configuration file can be written if the following setting is added to the
*.cjsonconfiguration file:
"json_config_filename" : "output/lpjml_config_restart.json", /* Filename of preprocessed configuration file written or null to disable this feature */- The right allocated storage for
config->coupled_modelis checked forNULLinfscanconfig.c.
- author: Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Susanne Rolinski (rolinski@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- fixed PFT pool scaling in mix_veg_grass() and mix_veg_tree()
- author: Jannes Breier (jannesbr@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de)
- PFT parameter lai_sapl has been set back to its original value of 0.001 for grasses (tropical, temperate, polar)
- author: Sibyll Schaphoff (sibylls@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- added link to LPJmL Zenodo archive to README
- changed
ifndefusage inlpjml_config.cjsontoifdefto avoid confusion
- fixed handling of monthly and daily outputs in
iterateyear.cto ensure that last annual timestep of outputs is written afterupdate_annual()is called
- author: Johanna Braun (jobraun@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), Constanze Werner (cowerner@pik-potsdam.de), Jannes Breier (breier@pik-potsdam.de)
- added four new outputs for managed land: deposition (
NDEPO_MG), biological nitrogen fixation (BNF_MG), applied nitrogen (NAPPLIED_MG) and nitrogen establishment flux (FLUX_ESTABN_MG)
- author: Jannes Breier (jannesbr@pik-potsdam.de)
- code review: Stephen Wirth (wirth@pik-potsdam.de), David Hoetten (davidho@pik-potsdam.de)
- In outputvars.cjson, the
variablefield for output grid has been changed back to"grid"(instead of"soil"). If NetCDF output is written the variable name would be cell id, if raw output is written the variable name would be the coordinates."grid"is used as generic naming here,long_nameis used to describe this exception ("grid information (raw: coordinates, cdf: cell_id)")
- author: Werner von Bloh (bloh@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de)
- NetCDF output files are now in a more ISIMIP3 compliant format, datatype of time, lat, and lon is now double,
depth_bndsadded to layer specific output. Standard and long name can be specified inoutputvars.json. - Deprecated function
MPI_Extentreplaced byMPI_Get_extentinmpi_write.c. - Functions
create_netcdf.c/create_pft_netcdf.candcreate1_netcdf.c/create1_pft_netcdf.chave been merged. - Function
findcoord()improved to find cell indices, returns now true if coord is within cell. STYLESHEETfile converted to markup.- Cell size in
regridclmis set to cell size of target grid, warning is printed if cell size differs. - Format and suffix of output files have been removed in
lpjml_config.cjsonand are now set by"default_fmt"and"default_suffix":
{ "id" : "npp", "file" : { "name" : "output/mnpp"}},LPJINPATHset to/p/projects/lpjml/input/historicalinregridlpjif not defined."descr"inoutputvars.cjsonrenamed to"long_name".
- More options added to
lpjml_config.cjsonto customize format of output:
"default_fmt" : "raw", /* default format for output files: "raw","txt","cdf","clm","sock" */
"default_suffix" : ".bin", /* default file suffix for output files */
"grid_type" : "short", /* set datatype of grid file ("short", "float", "double") */
"flush_output" : false, /* flush output to file every time step */
"absyear" : false, /* absolute years instead of years relative to baseyear (true/false) */
"rev_lat" : false, /* reverse order of latitudes in NetCDF output (true/false) */
"with_days" : true, /* use days as units for monthly output in NetCDF files */
"nofill" : false, /* do not fill NetCDF files at creation (true/false) */
"baseyear" : 1901, /* base year for output in NetCDF files */- Global attributes for NetCDF output files can be set in the
lpjml_config.cjsonfile:
"global_attrs" : {"institution" : "Potsdam Institute for Climate Impact Research",
"contact" : "", /* name and email address */
/* any name and string value can be added: "name" : "value", */
"comment" : "" /* additional comments */
}, /* Global attributes for NetCDF output files */"standard_name"for output can be set inoutputvars.cjson. If not defined standard name is set to variable name.- Chunking defined for NetCDF files if compiled with
-DUSE_NETCDF4. - Option
-metafileadded toregridclmandbinsum. If metafile contains name of grid file, the filename of the source grid can be omitted:
regridclm -metafile grid_new.clm temp.clm.json temp_new.clm
binsum -metafile mnpp.bin.json anpp.bin- NetCDF files can be created with
bin2cdfandclm2cdffrom the JSON metafiles containing all global attributes:
bin2cdf -metafile soilc_layer.bin.json soilc_layer.nc
clm2cdf -metafile temp.clm.json temp.nc"landcovermap"added to define mapping of the prescribed FPC input to PFTs.-hostfileoption added tolpjrun.- New utilities added:
cmpbin- compares binary ouput filesstatclm- prints minimum, maximum and average of clm filesregriddrain- regrids drainage file to new grid
- Option
-metafileand-fadded tomathclm. cdf2clmstores all global attributes of NetCDF file in JSON metafile if-jsonoption is set.- Option
-noppadded tolpjml. This option disables preprocessing of the config file bycpp. - Option
-ofilesadded tolpjmlandlpjcheckto print list of all available output files. - Option
-pedanticadded tolpjcheckandlpjmlto stop on warning. - Option
-jsonadded toregridclmandregridsoilutilities to create additional JSON metafiles. - Compile flag
-DSTRICT_JSONadded to enable more strict syntax checking of JSON files. - Remark message in
fscankeywords.cadded if number instead of string is used in JSON file.
- Missing deallocation added in
freeconfig.cand memory leak infscanpftpar.cfixed. - Missing argument after option handling fixed in
cdf2binandcountr2cdf. - Missing
$dir/added to manure data inregridlpj. - Correct default landuse, sowing data and crop PHU file set in
regridlpj.
- author: Christoph Mueller (cmueller@pik-potsdam.de)
- code review: Boris Sakschewski (borissa@pik-potsdam.de), Sabine Mathesius (sabine.mathesius@pik-potsdam.de)
- missing family names added in CITATION.cff
- renamed
double_harvest.ctoseparate_harvests.candupdate_double_harvest.ctoupdate_separate_harvests.cand changed entries in Makefiles accordingly - renamed functions
double_harvest()toseparate_harvests()andupdate_double_harvest()toupdate_separate_harvests()throughout the code - renamed the
structDouble_harvesttoSeparate_harvestand the variable of typeSeparate_harvestinstructPftcropfromdhtosh - renamed
double_harvestflag instructConfigtoseparate_harvests
- author: Sibyll Schaphoff (sibylls@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de)
- new output
PFT_WATER_SUPPLYto calculate water stress PFT-specific.
- output writing for the new output (
conf.h,outputvar.cjson,createpftnames.c,fwriteoutput.c,outputsize.c,water_stressed.c). isopen()call removed (fwriteoutput.c).
- author: Stephen Wirth (wirth@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de), Marie Hemmen (hemmen@pik-potsdam.de)
- code review: Johanna Braun (jobraun@pik-potsdam.de)
- Divsion by zero avoided for calculation of
nc_ratioinndemand_tree.candndemand_grass.c(issue #341). - Default directory for input files to current directory set and directory created in
regridlpj. - Correct id 11 set for
"tamp"input ininput.cjson(issue #347). - Correct filename used in error message in utility
mathclm. - Datatype of Version 4 CLM files correctly handled in
cutclm,catclm,mergeclm,regridclm.
- Hard coded CFT indices (e.g.
MAIZE) have been replaced by their names. - Datatype of
bmgr_harvest_day_nhandbmgr_harvest_day_nhchanged toint. - Function
freadseed()used infreadrestartheader.c. - First value of CO2 data file used for simulation years before first year of CO2 data.
- CO2 data replaced by TRENDY data in
input.cjson.
- Man page for
regridclmandregridsoiladded. - New keywords
"cft_fertday_temp"and"cft_fertday_tropic"added inlpjparam.cjsonto specify the CFT names where the fertilizer application dates are taken from for grasslands. - Missing filename of tillage input added to
lpjfilesutility. - Option
-hadded tolpjsubmit. Options-vand-ladded toconfigure.sh. - New keyword
"error_limits"defined inlpjparam.cjsonto set maximum balance errors allowed in simulation:
"error_limits" :
{
"carbon" : 1.0, /* maximum error in local carbon balance (gC/m2) */
"nitrogen" : 0.2, /* maximum error in local nitrogen balance (gN/m2) */
"water_local" : 1.5, /* maximum error in local water balance (mm) */
"water_global" : 1e-3 /* maximum error in global water balance (mm) */
},- Option
--propagateremoved fromsruninlpjsubmit_slurm. - Hard-coded parameter
k_lremoved inlittersom.c. - Parameter
"residues_in_soil_notillage"removed. - Parameter
"co2_p"removed. - Keyword in
"till_startyear"removed fromlpjml_config.cjson.
- author: Christoph Mueller (cmueller@pik-potsdam.de) and the entire LPJmL team
- code review: Boris Sakschewski (borissa@pik-potsdam.de), Fabian Stenzel (stenzel@pik-potsdam.de)
- added
.zenodo.jsonfor interaction with zenodo archives - added CITATION.cff file
- updated AUTHORS file
- author: Fabian Stenzel (stenzel@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de), Sibyll Schaphoff (schaphoff@pik-potsdam.de)
- code review: Stephen Wirth, Constanze Werner (cowerner@pik-potsdam.de)
- Removed lines 240 and 241 in landuse/annual_biomass_tree.c to get rid of the carbon balance error, which shows up in cells with significant bioenergy tree fractions in the landuse input.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- allowed range for coordinates checked in
readcoord(). - allowed formats (
"raw","clm","clm2") for input files checked inopenmetafile(). - Output scaling added to
writearea.c.
- Error messages changed for more clarity.
- NetCDF output for grid file corrected if cells are skipped.
var_lencorrectly set for input with no time axis inopenclimate_netcdf.c.
- author: Johanna Braun (jobraun@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Christoph Mueller (cmueller@pik-potsdam.de)
- dicussed by attendees of LPJmL seminar on Dec. 21st 2023 and Nov. 23rd 2023.
waterusefrom "yes" to "all"sowing_date_optionfrom "fixed_sdate" to "prescribed_sdate"crop_phu_optionfrom "new" to "prescribed"tillage_typefrom "all" to "read"residue_treatmentfrom "fixed_residue_remove" to "read_residue_data"grazingfrom "default" to "livestock"prescribe_lsuhafrom FALSE to TRUE- set
nspinupto 420 instead of 390 for LU spinup - updated paths to land management input files in
input.cjson - set all available LandInG1.0 inputs as the
defaultoption
- author: Werner von Bloh (bloh@pik-potsdam.de), Sebastian Ostberg (ostberg@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de), Sibyll Schaphoff (sibylls@pik-potsdam.de)
- tmin, tmax, humid GSWP3-W5E5 inputs added to
input.cjson. - missing parameters added in
lpjparam_non.cjsonandpft_non.cjson.
- set gml.noaa data as default CO2 input.
- GSWP3-W5E5 climate is now the default.
regridlpjutility script updated for new inputs
- GLDAS climate input removed.
- scaling fixed for daily output and unit 1/second in fwriteoutput.c (issue #332).
#ifdefand#elifstatements fixed inlpjml_config.cjsonandinput.cjson.- computation of root biomass based on carbon fixed in
nuptake_grassandnuptake_tree(issue #330) - fixed bug in
allocation_tree(issue #330)
- author: Jannes Breier (breier@pik-potsdam.de), Werner von Bloh (bloh@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- dicussed by attendees of LPJmL seminar on Nov. 23rd 2023.
- new keyword
"cultivation_types"added to specify an array of cultivation types read from thepft.cjsonfile:
"cultivation_types" : ["none","biomass","annual crop"],
- wood plantation and agricultural tree PFTs added to
pft.cjson. - '"k_est"' establishment density array added for agricultural trees to
"countrypar"inmanage_irrig_systems_with_dummy_laimax_data.cjson. - Makros to select different climate (CRU_MONTHLY, CRU_NETCDF, GLDAS) as well as land use, fertilizer and manure (OLD_LU, MADRAT) inputs added to
input.cjson. - Makro to disable nitrogen cycle (WITHOUT_NITROGEN) added to
lpjml_config.cjson. - Makros definition and description added to
lpjml_config.cjson.
- file ending from
jstocjson. - renamed
lpjml.cjsontolpjml_config.cjson. - extended
input.cjsonto include CRU, GSWP3-W5E5 and GLDAS climate inputs and LandInG, MADRAT and "Old" land use, fertilizer and manure inputs. - Moved mappings from
input.cjsonto lpjml_config.cjson. - Moved soil depths array and fuel bulk density factors from
soil.cjsontolpjparam.cjson.
lpjml_*js,param_*js,lpjparam_*js,pft_*.js,input_*.jsandmanage_*.js filesfor specific projects.
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jannes Breier (breier@pik-potsdam.de), Constanze Werner (cowerner@pik-potsdam.de), Sebastian Ostberg(ostberg@pik-potsdam.de), Marie Hemmen (hemmen@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- name of grid file and
"terr_area"output file written to output JSON files. A link to the corresponding JSON file is added. - list of utilities added to
INSTALLfile. -jsonflag added tocdf2clmutility.- last year of CO2 data is checked at run time and last year of simulation is changed accordingly.
fscanfloat()accepts now also integer input.
- obsolete constant definitions in
conf.h.
- opening of grid file in JSON metafile format fixed in
opencoord(). - default soil map is set for soil data in NetCDF format.
- missing carbon influx added to NBP calculation in
flux_sum.c.
- author: Werner von Bloh (bloh@pik-potsdam.de), Jens Heinke (heinke@pik-potsdam.de), Stephen Wirth (wirth@pik-potsdam.de)
- code review: Sibyll Schaphoff (sibylls@pik-potsdam.de), Constanze Werner (cowerner@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- constant wood density has been replaced by PFT-specific parameter
"wood_density".
- Unused flag
"biomass_grass_harvest"removed from configuration.
- update of
pft->establish.nitrogencorrected inturnover_tree.c. - C and N in manure from grazing livestock goes to litter (as described in Heinke et al. 2023 instead of going to soil pools directly.
- author: Sebastian Ostberg (ostberg@pik-potsdam.de)
- code review: Christoph Mueller (cmueller@pik-potsdam.de), Jannes Breier (breier@pik-potsdam.de)
- bug in
landusechange.cwhere land transfers between rainfed and irrigated setaside stands were not taken into account when determining rainfed and irrigated areas to deforest/regrow - false positive carbon balance errors in
turnover_tree.cif the code is compiled withCHECK_BALANCEswitch
- author: Werner von Bloh (bloh@pik-potsdam.de)
- code review: Jens Heinke (heinke@pik-potsdam.de), Sibyll Schaphoff (sibylls@pik-potsdam.de), Christoph Mueller (cmueller@pik-potsdam.de)
- grassland specific variables
deficit_lsu_neanddeficit_lsu_mpadded tofprint_grassland.cand therefore are printed bylpjprint.
- obsolete definition of constants removed in
conf.h.
- division by zero resulting in a floating point exception if lpjml is run with
-fpeoption fixed inlittersom.candharvest_stand.c. - index in
"cft_nir"output is now correctly calculated foragriculture_tree/agrculture_grassstands indistribute_water.c. pft->npp_bnfset to zero for the auto fertilization setting in the N uptake functions. Fertilization only applied if N deficit is greater than zero.
- reallocation of N added in
allometry_tree.cif tree height exceeds the maximum height. - reproduction costs for nitrogen added to
turnover_tree.c. - missing output
"harvestc_agr"updated and written to file.
- check for
sum>1for warnings has been replaced bysum>1+epsiloningetlanduse(). ml.landfracscaling of output has been replaced by acual stand fraction.output_gbw_*functions have been merged into oneoutput_gbwfunction.
- misplaced
CFT_AIRRIGupdate has been removed fromdaily_woodplantation.c.
- missing
#include "grass.h"added insowingcft.c. - arguments of
setasidecalls inannual_woodplantation.candannual_biomass_tree.chave been corrected. - update of
LITFALLNcorrected intimber_burn.c. - output written to correct
N2O_DENIT_*file indenitrification.c. - missing
reservoirfracadded to scaling for outputs indaily_agriculture_grass.canddaily_agriculture_tree.c.
- outputs:
- IRRIG_STOR
- RIVERVOL
- SWC_VOL
- unit of output RES_STORAGE changed from hm3 to dm3 to be in line with IRRIG_STOR, RIVERVOL, LAKEVOL, SWC_VOL
- check for land-use fractions to not exceed 100% after scaling with
landfrac, re-scale to 100%, print warning see !173 - add turnover before allocation in cultcftstand to prevent sporadic C balance errors when running with intercrops, see!175
- number of wet days not read if daily precipitation input is used. A warning is additionally printed to set
"random_prec"to false. - boolean
"river_routing"is read before"with_lakes"flag to avoid uninitialized variable.
- changed quadratic soil evaporation function to sigmoid form and a minimum amount of evaporation of 5% of the available energy, following Sun et al. 2013, as described in !168
- correct accounting of blue water transpiration on agriculture stands in outputs
- missing variable initialization for bioenergy grass
- landuse change from irrigated to rainfed setaside moved area to wrong target setaside
- removed timestep attributes (monthly/annual) in all output descriptions that are not timestep specific
- outputs:
- PFT_WATER_DEMAND: PFT specific water demand
- RD: dark respiration
- NDEPOS: total N deposition as sum of NH4 and NO3 deposition
- wrong use of
&finstead off, infscanparam.c. Bug was introduced in version 5.6.26 and caused that parameter files could not be read properly
- land fraction can now be read from file, with a new flag
"landfrac_from_file"and a new input"landfrac" - If setting
"landfrac_from_file : true"cell areas in LPJmL are scaled down by land fraction from input file. If land fraction is zero, land fraction is set tominlandfracand a warning is printed. - new flag
"with_lakes"defined - new outputs
"terr_area","land_area"and"lake_area"defined writing the terrestrial area (land and lakes), land area and lake area of each cell - new parameters
"minlandfrac"and"tinyfrac"added to lpjparams.js - option
-area filenameadded to theprintglobalutility to scale with the cell areas read from the file specified.
- Lake fraction and land-use fractions are rescaled by the reciprocal of land fraction. If lake fraction is greater than one, lake fraction is set to one and a warning is printed.
- Lakes can be enabled without river routing by setting
"with_lakes" : true. Variabledmass_lakeis always written to restart file. - lake fraction is read in utility
lpjprintand printed - flag
"shuffle_spinup_climate"only read if"nspinup"is non-zero. - Terrestrial area and harvest fraction are read in utility
printharvest. Output format changed to CSV.
- removed large chunks of code in
allocation_daily_crop.cthat was inactive
- fixed output
PFT_VEGCto not includebm_inc.nitrogenfor crops indaily_agriculture.c - fixed global flux summation for
flux.soil.carbonandflux.soil.nitrogen(+=instead of=), bug was introduced in version 5.6.25
- avoid daily leaf turnover for biomass grass and harvest leaf turnover as dead biomass at harvest event instead (reduces litter and increases harvest)
- introduce harvest dates depending on green/brown harvest instead of C threshold for biomass grass
- literature-based C/N ratios and fn_turnover for biomass grass depending on green/brown harvest configuration
- results and literature references can be found in issue #275.
- introduced
#defineflag to change from green harvest (default) to brown harvest:#define BMGR_BROWN - two options include green harvest (fresh biomass, high N content - usually used for biofuels) and brown harvest (dry biomass, high lignin content, low N content - usually used for combustion)
- brown harvest uses later harvest dates (defined in lpjparam.js) and higher N recovery (as lower fn_turnover defined in pft.js) than green harvest
- the
#defineflag is required to read the correct flag-specific parameter from the lpjparam.js and pft.js, see issue #311
- New outputs added for N fluxes from timber extraction and for N pools in wood product pools
- New outputs added for
estab_storageC and N - Added missing N fluxes,
estab_storage, and reservoirs toglobalfluxoutput - Added new fluxes to man pages
- Corrected/added units in comments in output.h
- Corrected units in
flux_summan page - Corrected
N2O_DENIToutput, which now no longer also includesN2O_NITvalues - Corrected writing of mineral N pools to outputs, so that also mineral N in frozen soil layers is included
- Corrected writing of
VEGNfor crops, so thatbm_inc.nitrogenis no longer included to avoid double accounting
- Removed unecessary initialization of output variables to zero in
update_annual.c, which is done ininitoutputdata.c
- The number of bands is now correctly checked for the
read_residue_datainput.
- Instead of the soil code the index of the grid cell is written into the NetCDF file for
"grid"output.
- Configuration files
lpjml_netcdf.js,lpjml_non.js,param_non.js, andlpjparam_non.jsupdated to latest lpjml version.
-
Predefined daily outputs (
"d_lai"-"d_pet") and corresponding functions removed. -
Version numbers removed from man pages.
- Variable
issocketalways initialized toFALSEinreadfilename.c.
-
Flag
"nitrogen_coupled"disabled for lpjml offline runs. Water stress is always coupled with nitrogen stress. Only if lpjml is compiled with-DCOUPLING_WITH_FMSflag is enabled. -
Flag
"new_trf"renamed to"transp_suction_fcn".
- New flags
"fix_co2"and"fix_co2_year"added.
-
Flag
"istimber"renamed to"luc_timber". -
Flag
"new_phenology"renamed to"gsi_phenology". -
Flag
"shuffle_climate"renamed to"shuffle_spinup_climate". -
The settings for fixed input data have been updated. For climate and N deposition input an interval can be specified from which data is taken after the specified year. In can specified whether random shuffling or cycling is used:
"fix_climate" : false, /* fix climate after specified year */
"fix_climate_year" : 1901, /* year after climate is fixed */
"fix_climate_interval" : [1901,1930],
"fix_climate_shuffle" : true, /* randomly shuffle climate in the interval */
"fix_deposition_with_climate" : false, /* fix N deposition same as climate */
"fix_deposition" : false, /* fix N deposition after specified year */
"fix_deposition_year" : 1901, /* year after deposition is fixed */
"fix_deposition_interval" : [1901,1930],
"fix_deposition_shuffle" : true, /* randomly shuffle depositions in the interval */
"fix_landuse" : false, /* fix land use after specfied year */
"fix_landuse_year" : 1901, /* year after land use is fixed */
"fix_co2" : false, /* fix atmospheric CO2 after specfied year */
"fix_co2_year" : 1901, /* year after CO2 is fixed */- Obsolete flag
"const_climate"removed.
-
Help option
-hadded tobin2cdfandclm2cdfutility. -
Target
lpjcheckadded toMakefileto create only thelpjcheckutility.
-
The version of all man pages has been set to the LPJmL version number, date of last modification removed.
-
The different versions of the utilities have been replaced by a reference to the LPJmL version.
-
All html files have been removed from the repository.
-
Obsolete link
lpjtolpjmlremoved.
- Soil array
wpwpis now correctly initialized withsoilpar->wpwpfor the"prescribed_soilpar"setting.
- Replaced logical
orby logicalandinsurvive.c. This solves issue #309.
- Removed excess
pft->nindin all harvest routines inharvest_stand.c.
- Check for matching size of discharge queues read from restart file added to
initriver()function ininitdrain.c. If the size differs from the value calculated from the river lengths the queues will be resized and initialized to zero. Error message is additionally printed.
-
Support for the deprecated
*.confconfiguration file format has been removed. Only JSON files are allowed for configuration files and metafiles for input. -
Man pages for the description of the
*.conffile format removed.
- Strings in JSON configuration files can now be longer than 256 characters.
- Missing update of
"harvestc"and"harvestn"output added inannual_biomass_tree.c,annual_woodplantation.c,daily_agriculture_tree.c, andannual_agriculture_tree.c.
-
Missing agsub litter pool added to
"litc","litn","mg_litc","litc_agr","mgrass_litc","mgrass_litn"outputs and in global flux oflitc. -
Output of
"litc_ag"and"litc_all"now written to output file.
-
Item
agin structLitterrenamed toagtop. -
Functions
litter_ag_grass(),litter_ag_nitrogen_tree(),litter_ag_sum(),litter_ag_sum_quick(),litter_ag_tree()renamed tolitter_agtop_grass(),litter_agtop_nitrogen_tree(),litter_agtop_sum(),litter_agtop_sum_quick(),litter_agtop_tree(). -
Index in
outnamesarray infwriteoutput.ccorrected for"mgrass_soilc","mgrass_soiln","mgrass_litc","mgrass_litn"outputs.
- Invalid access to pointers
soil->wsat-soil->wpwphas been replaced by access to layer specific datasoil->wsat[l]-soil->wpwp[l]ininfil_perc_rain.candinfil_perc_irr.c. See issue #303.
- PFT specific output for biological nitrogen fixation with grid and PFT scaling in
npp_contr_biol_n_fixation.candbiologicalNfixation.c.
- Adjusted optimum temperature limits (
"temp_bnf_opt") of herbaceous PFTs for NPP controled biological nitrogen fixation inpft.js.
-
Missing
breakstatement added inharvest_stand.c. See issue #302 -
Missing deallocation of
decomp_litter_pftadded infreesoil.c. -
Missing deallocation of
with_tillage_filenameadded infreeconfig.c.
-
If input comes from socket connection the existence of the file is not checked anymore.
-
The memcpy arguments in
cpl.hare now in the right order.
- flag
"start_coupling"added in configuration file. If lpjml is coupled to an external model via
"coupled_model" : "model",
this flag allows so set a year when input is received from the external model. Before that year input is read from input file.
If flag is omitted or set to null coupling starts at the first year.
- For input received from an external model a file name can additionally be specified where input is read from before the specified coupling year:
"with_tillage" : { "fmt" : "clm", "socket" : true, "name" : "tillage.clm"},
-
lpjcheck and lpjml checks for specified filenames if they are necessary for the coupled run
-
JSON metafiles are also created for NetCDF output
- CHANGELOG.md added see issue #298
- leading zeros removed in
patchidentifier of the version number
- all versions prior to 5.6.7 have not been documented by a changelog or similar but in the respective merge requests (internal link accessible at PIK only)