Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resurrect functionality to calculate and output vegetation establishment #336

Closed
dschlaep opened this issue Jan 9, 2023 · 1 comment · Fixed by #337
Closed

Resurrect functionality to calculate and output vegetation establishment #336

dschlaep opened this issue Jan 9, 2023 · 1 comment · Fixed by #337
Assignees
Labels

Comments

@dschlaep
Copy link
Member

dschlaep commented Jan 9, 2023

  • Historically, SOILWAT2 was capable to calculate days when conditions where favorable for "establishment" of species according to several parameters; the module is called "VegEstab". It has been unused for many years.

  • The functionality is activated by

    1. activating it in "Inputs/estab.in" (line 6); default is 0 ("off")
    2. listing at least one species input file with establishment parameters (default includes "bouteloua.estab" and "bromus.estab")
    3. providing the listed species input files with establishment parameters (defaults include "bouteloua.estab" and "bromus.estab")
    4. turning on output for key "ESTABL" in "Inputs/outsetup.in" (line 72); default is "off"
  • The latest release v6.0.0, with activated establishment and output turned on, produces a run-time error:

ERROR: Input/estab.in : Layers requested (estab_lyrs) > (# transpiration layers=0).
@dschlaep dschlaep added the bug label Jan 9, 2023
@dschlaep dschlaep added this to the main development milestone Jan 9, 2023
dschlaep added a commit that referenced this issue Jan 9, 2023
- addressing #336

- note: "vegetation establishment" functionality must be activated and output turned on (see #336 for more details)

- "ERROR: Input/estab.in : Layers requested (estab_lyrs) > (# transpiration layers=0)." was produced because code previously tested `estab_lyrs` before `SW_Site.n_transp_lyrs[]` was initialized

-> this commit
* creates new `SW_VES_init_run()` to initialize vegetation establishment parameters of each species by `_spp_init()` and checked by `_sanity_check()` -- which now are called after `SW_SIT_init_run()` that initializes soil parameters (to fix above error message); previously, they were erroneously called by `SW_VegEstab_construct()`, i.e., before soil parameters were initialized
* struct `SW_VEGESTAB_INFO` gains new element `vegType` to encode to which vegetation type a species belongs; this is required to correctly check validity of `estab_lyrs` (previous code was from a time before `SOILWAT2` handled multiple vegetation types simultaneously)
* accordingly, species input files with establishment parameters gain one new input line to provide associated vegetation type, and `_read_spp()` is updated to read in value of `vegType`
* `_sanity_check()` now checks that `vegType` is implemented; now correctly checks `estab_lyrs` against `SW_Site.n_transp_lyrs[]` of the associated vegetation type; and error messages now include species name
* `SW_VegEstab_construct()` now allocates memory for `SW_VegEstab.p_oagg[eSW_Year]->days` (which is de-allocated by `SW_VES_deconstruct()` which previously errored because it was previously erroneously never allocated)
@dschlaep
Copy link
Member Author

dschlaep commented Jan 9, 2023

With 087242a, output is produced in columns ESTABL_bogr and ESTABL_brte

  • it seems that the output corresponds to the value of estab_doy (newly determined once a calendar year)
  • there is a struct SW_VEGESTAB_OUTPUTS with element *days for which memory is allocated and de-allocated but (currently?) unused for output (or anything else): Was this once functional? If so, what output was produced?

dschlaep added a commit that referenced this issue Jan 13, 2023
Resurrect "vegetation establishment"

Functionality to calculate and output establishment/recruitment of species now works again and is now covered by tests (issue #336, @dschlaep). Note that this functionality assesses yearly the chances of species to recruit/establish based on simulated daily conditions; however, establishment/recruitment outcomes are not utilized to inform the simulation.

- The functionality is activated by

  1. activating it in "Inputs/estab.in"; default is 0 ("off")
  2. listing at least one species input file with establishment parameters (default includes "bouteloua.estab" and "bromus.estab")
  3. providing the listed species input files with establishment parameters (defaults include "bouteloua.estab" and "bromus.estab")
  4. turning on output for key "ESTABL" in "Inputs/outsetup.in"; default is "off"
dschlaep added a commit to DrylandEcology/STEPWAT2 that referenced this issue Jan 13, 2023
- SOILWAT2's "vegetation establishment" module works again (also as part of STEPWAT2); see DrylandEcology/SOILWAT2#336
- note: these are calculations are made on simulated SOILWAT2's conditions and do not inform simulations (no feedback)

- input files with species establishment parameters "<species>.estab" now organized in a subfolder within SOILWAT2's inputs
- new input parameter "vegetation type" that associates a species with one of SOILWAT2's simulated vegetation types

- notes
* SOILWAT2's "establishment" is calculated under the following conditions: (i) there are input files with species establishment parameters; (ii) at least one of those files is correctly listed in `"estab.in"` and the input flag in `"estab.in"` is on
* these establishment results are included in the output files only if `"ESTABL"` is turned on in `"outsetup.in"`
* default values: calculations are turned off and output is turned off
dschlaep added a commit to DrylandEcology/STEPWAT2 that referenced this issue Jan 14, 2023
Updates for SOILWAT2 (v6.7.0): fix its "vegetation establishment"

- SOILWAT2's "vegetation establishment" module works again (also as part of STEPWAT2); see DrylandEcology/SOILWAT2#336
- note: these are calculations are made on simulated SOILWAT2's conditions and do not inform simulations (no feedback)

- input files with species establishment parameters "<species>.estab" now organized in a subfolder within SOILWAT2's inputs
- new input parameter "vegetation type" that associates a species with one of SOILWAT2's simulated vegetation types

- notes
* SOILWAT2's "establishment" is calculated under the following conditions: (i) there are input files with species establishment parameters; (ii) at least one of those files is correctly listed in `"estab.in"` and the input flag in `"estab.in"` is on
* these establishment results are included in the output files only if `"ESTABL"` is turned on in `"outsetup.in"`
* default values: calculations are turned off and output is turned off
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants