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

[Fang summer '24 PR 1] Fix bugs and develop crop fire modeling #2576

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

lifang0209
Copy link

@lifang0209 lifang0209 commented Jun 3, 2024

Description of changes

In the CNFireLi2021Mod.F90

  1. Fixed the bug described in bug in crop fire modeling #2566 to avoid incorrect accumulation of baf_crop and ensure that crop fires do not occur during the crop growing season;
  2. Confined crop fires to periods after harvest and before planting when crop module is active;
  3. Removed the dependency of baf_crop on fuel availability;
  4. Improved the modeling of the influence of socio-economic factors on crop burned area
  5. Recalibrated the cropfire_a1 constant based on GFED5 crop burned area;
  6. Modify the declaration of CNFireArea in these F90 files to include the variable crop_inst, declare the variable crop_inst, and import and utilize crop_type from the module CropType.

In addition, the modules CNDriverMod.F90, CNFireLi2014Mod.F90, CNFireLi2016Mod.F90, CNFireNoFireMod.F90, FATESFireBase.F90, and FireMethodType.F90 include the subroutine CNFireArea. (6) is implemented in these modules.

Specific notes

Contributors other than yourself, if any: None

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)? Yes. Global burned area increases about 30 Mha/yr. Crop fires only occur after harvest and before planting.

Any User Interface Changes (namelist or namelist defaults changes)? No

Does this create a need to change or add documentation? Did you do so? No

Testing performed, if any:

  • Historic Bgc and BgcCrop runs.

In the CNFireLi2021Mod.F90, (1) fixed the bug described in ESCOMP#2566 to avoid incorrect accumulation of baf_crop and ensure that crop fires do not occur during the crop growing season; (2) confined crop fires to periods after harvest and before planting when crop module is active; (3) removed the dependency of baf_crop on fuel availability; (4) improved the modeling of the influence of socio-economic factors on crop burned area; (5) recalibrated the cropfire_a1 constant based on GFED5 crop burned area; (6) modify the declaration of CNFireArea in these F90 files to include the variable crop_inst, declare the variable crop_inst, and import and utilize crop_type from the module CropType.

In addition, the modules CNDriverMod.F90, CNFireLi2014Mod.F90, CNFireLi2016Mod.F90, CNFireNoFireMod.F90, FATESFireBase.F90, and FireMethodType.F90 include the subroutine CNFireArea. (6) is implemented in these modules.
@samsrabin samsrabin self-assigned this Jun 3, 2024
@samsrabin samsrabin added the type: bug something is working incorrectly label Jun 3, 2024
if((use_crop .and. (.not. croplive(p))) &
.or. (.not. use_crop)) then
burndate(p) = kda
baf_crop(c) = baf_crop(c)+0.21_r8 / secsphr * fhd * fgdp * patch%wtcol(p)
Copy link
Contributor

@samsrabin samsrabin Jun 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • cropfire_a1 should be set to 0.21 by default and used here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Add a li2024gswpfrc fire_method with this (and other changes that will come in other PRs).

@@ -120,6 +121,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve
type(cnveg_state_type) , intent(inout) :: cnveg_state_inst
type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst
type(crop_type) , intent(in) :: crop_inst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: This is just used as a dummy in this version. Actually used in CNFireLi2021Mod.

@@ -123,6 +124,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve
type(cnveg_state_type) , intent(inout) :: cnveg_state_inst
type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst
type(crop_type) , intent(in) :: crop_inst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: This is just used as a dummy in this version. Actually used in CNFireLi2021Mod.

@@ -91,6 +92,7 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve
type(cnveg_state_type) , intent(inout) :: cnveg_state_inst
type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst
type(crop_type) , intent(in) :: crop_inst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: This is just used as a dummy in this version. Actually used in CNFireLi2021Mod.

@@ -242,6 +243,8 @@ subroutine CNFireArea (this, bounds, num_soilc, filter_soilc, num_soilp, filter_
class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve
type(cnveg_state_type) , intent(inout) :: cnveg_state_inst
type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst
type(crop_type) , intent(in) :: crop_inst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: This is just used as a dummy in this version. Actually used in CNFireLi2021Mod.

@@ -160,6 +161,7 @@ subroutine CNFireArea_interface (this, bounds, num_soilc, filter_soilc, num_soil
class(soil_water_retention_curve_type), intent(in) :: soil_water_retention_curve
type(cnveg_state_type) , intent(inout) :: cnveg_state_inst
type(cnveg_carbonstate_type) , intent(inout) :: cnveg_carbonstate_inst
type(crop_type) , intent(in) :: crop_inst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment: This is just used as a dummy in this version. Actually used in CNFireLi2021Mod.

@wwieder
Copy link
Contributor

wwieder commented Jun 11, 2024

This PR seems to go beyond just fixing the bug in #2566. If this is accurate, @samsrabin is it worth breaking the PR into two parts, one that fixes the bug and another that introduces the new changes to crop fires?

@samsrabin
Copy link
Contributor

@wwieder Nah, it's small enough that it's not a problem they're together.

@wwieder
Copy link
Contributor

wwieder commented Jun 11, 2024

my reason for asking this is for backwards capability. It would be nice to maintain the behavior of CLM5.0 physics vs. the new fire features that would be included in CLM6.0 physics?

@samsrabin
Copy link
Contributor

Yep, that's what this comment is about.

@lifang0209
Copy link
Author

my reason for asking this is for backwards capability. It would be nice to maintain the behavior of CLM5.0 physics vs. the new fire features that would be included in CLM6.0 physics?

It isn't worth breaking the PR. CNFireLi2021Mod, which I changed, is used in CLM5.1. CNFireLi2016Mod.F90 is used in CLM5.0, which I didn't change.

@wwieder
Copy link
Contributor

wwieder commented Jun 11, 2024

Thank you both for clarifying.

@wwieder
Copy link
Contributor

wwieder commented Jun 17, 2024

@samsrabin what do you think about the prioritization of this? Should it come in before or after the July 31 science capability freeze?

@lifang0209
Copy link
Author

@wwieder should before July 31 science capability freeze

@samsrabin
Copy link
Contributor

Yep, before the freeze. I'll add the milestone.

@samsrabin samsrabin added this to the CESM3 Capability Freeze milestone Jun 18, 2024
@samsrabin samsrabin changed the title Fix bugs and develop crop fire modeling [Fang summer '24 PR 1] Fix bugs and develop crop fire modeling Jun 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug something is working incorrectly
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

bug in crop fire modeling
3 participants