Skip to content

Commit 98d2947

Browse files
committed
Fix phenology issue with heavy snow: In the Arctic, following a heavy snow winter, snow-melt may last past the summer solstice. This likely causes no PFT onset stage even when a short non-snow season occurs.
Add a flag for switching plant growth onset gdd summation end option in phenology. The switch is for extending onset stage up to start of offset in Fall, rather than to summer solstice by default.
1 parent 0b43c05 commit 98d2947

File tree

4 files changed

+44
-3
lines changed

4 files changed

+44
-3
lines changed

components/elm/bld/namelist_files/namelist_definition.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1801,6 +1801,15 @@ Specifies the method for decomposing CLM grids across processors.
18011801
pflotran file prefix.
18021802
</entry>
18031803

1804+
<!-- ======================================================================================== -->
1805+
<!-- Namelist options related to plant phenology -->
1806+
<!-- ======================================================================================== -->
1807+
1808+
<entry id="onset_gdd_extension" type="logical" category="default_settings"
1809+
group="elm_inparm" valid_values="">
1810+
Runtime flag to turn on/off stress_deciduous PFT's onset gdd summation end from summer solstice to offset starting.
1811+
</entry>
1812+
18041813
<!-- ======================================================================================== -->
18051814
<!-- Namelist options related to Variably Saturated Flow Model (VSFM) -->
18061815
<!-- ======================================================================================== -->

components/elm/src/biogeochem/PhenologyMod.F90

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ subroutine CNSeasonDecidPhenology (num_soilp, filter_soilp, cnstate_vars)
659659
!$acc routine seq
660660
use shr_const_mod , only: SHR_CONST_TKFRZ, SHR_CONST_PI
661661
use elm_varcon , only: secspday
662+
use elm_varctl , only: onset_gdd_extension
662663
!
663664
! !ARGUMENTS:
664665
integer , intent(in) :: num_soilp ! number of soil patches in filter
@@ -905,11 +906,27 @@ subroutine CNSeasonDecidPhenology (num_soilp, filter_soilp, cnstate_vars)
905906
! In that case, it will take until the next winter solstice
906907
! before the growing degree-day summation starts again.
907908

908-
if (onset_gddflag(p) == 1._r8 .and. ws_flag == 0._r8) then
909-
onset_gddflag(p) = 0._r8
910-
onset_gdd(p) = 0._r8
909+
! A note by F-M Yuan (2020-02-21): when having heavy snow winter,
910+
! snow melting may be lasting into July in some Arctic area (esp. East Russia)
911+
! So better to let ONSET stage up to 'offset' starting criteria date, if this feature is on.
912+
913+
if (onset_gdd_extension) then
914+
if (onset_gddflag(p) == 1._r8 .and. ws_flag == 0._r8 &
915+
.and. dayl(g) < PhenolParamsInst%crit_dayl) then
916+
onset_gddflag(p) = 0._r8
917+
onset_gdd(p) = 0._r8
918+
919+
end if
920+
921+
else
922+
923+
if (onset_gddflag(p) == 1._r8 .and. ws_flag == 0._r8) then
924+
onset_gddflag(p) = 0._r8
925+
onset_gdd(p) = 0._r8
926+
end if
911927
end if
912928

929+
913930
! if the gdd flag is set, and if the soil is above freezing
914931
! then accumulate growing degree days for onset trigger
915932

components/elm/src/main/controlMod.F90

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ subroutine control_init( )
285285
! bgc & pflotran interface
286286
namelist /elm_inparm/ use_elm_interface, use_elm_bgc, use_pflotran
287287

288+
! onset_gdd_extension in plant phenology
289+
namelist /elm_inparm/ onset_gdd_extension
290+
288291
namelist /elm_inparm/ use_dynroot
289292

290293
namelist /elm_inparm/ use_var_soil_thick, use_lake_wat_storage
@@ -891,6 +894,9 @@ subroutine control_spmd()
891894
call mpi_bcast (use_elm_bgc, 1, MPI_LOGICAL, 0, mpicom, ier)
892895
call mpi_bcast (use_pflotran, 1, MPI_LOGICAL, 0, mpicom, ier)
893896

897+
! phenology
898+
call mpi_bcast (onset_gdd_extension, 1, MPI_LOGICAL, 0, mpicom, ier)
899+
894900
!cpl_bypass
895901
call mpi_bcast (metdata_type, len(metdata_type), MPI_CHARACTER, 0, mpicom, ier)
896902
call mpi_bcast (metdata_bypass, len(metdata_bypass), MPI_CHARACTER, 0, mpicom, ier)

components/elm/src/main/elm_varctl.F90

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,15 @@ module elm_varctl
462462
!$acc declare copyin(initth_pf2clm)
463463
!$acc declare copyin(pf_clmnstep0 )
464464

465+
!-----------------------------------------------------------------------
466+
! onset_gdd summation ending switch in phenology
467+
! by default, onset_gdd will reset to zero passing summer-solstice
468+
! This may cause non-growing if heavy winter snowing which results in
469+
! snow-melting passing summer-solstice in arctic.
470+
! When this switches, it will end by offset critical daylength (i.e. vegetation senescence starts normally in Fall)
471+
logical, public :: onset_gdd_extension = .false.
472+
!$acc declare create(onset_gdd_extension)
473+
465474
! cpl_bypass
466475
character(len=fname_len), public :: metdata_type = ' ' ! metdata type for CPL_BYPASS mode
467476
character(len=fname_len), public :: metdata_bypass = ' ' ! met data directory for CPL_BYPASS mode (site, qian, cru_ncep)

0 commit comments

Comments
 (0)