Skip to content

Commit

Permalink
Add use_polygonal_tundra flag to CanopyStateType
Browse files Browse the repository at this point in the history
Adds use_polygonal_tundra flag to CanopyStateType
as new variables were causing issues when comparing
against baseline tests.
  • Loading branch information
rfiorella committed Jun 10, 2024
1 parent 27fa2e0 commit 8061bc0
Showing 1 changed file with 38 additions and 31 deletions.
69 changes: 38 additions & 31 deletions components/elm/src/biogeophys/CanopyStateType.F90
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module CanopyStateType
use elm_varcon , only : spval,ispval
use elm_varpar , only : nlevcan, nvegwcs
use elm_varctl , only : iulog, use_cn, use_fates, use_hydrstress, use_fates_sp
use elm_varctl , only : use_polygonal_tundra
use LandunitType , only : lun_pp
use ColumnType , only : col_pp
use VegetationType , only : veg_pp
Expand Down Expand Up @@ -62,10 +63,10 @@ module CanopyStateType
integer , pointer :: alt_indx_col (:) ! col current depth of thaw
real(r8) , pointer :: altmax_col (:) ! col maximum annual depth of thaw
real(r8) , pointer :: altmax_lastyear_col (:) ! col prior year maximum annual depth of thaw
real(r8) , pointer :: altmax_1989_col (:) ! col maximum annual thaw depth in 1989 RF note: temporary for IM1!
real(r8) , pointer :: altmax_ever_col (:) ! col maximum thaw depth from beginning of simulation
integer , pointer :: altmax_indx_col (:) ! col maximum annual depth of thaw
integer , pointer :: altmax_lastyear_indx_col (:) ! col prior year maximum annual depth of thaw
real(r8) , pointer :: altmax_1989_col (:) ! col maximum annual thaw depth in 1989 RF note: temporary for IM1!
real(r8) , pointer :: altmax_ever_col (:) ! col maximum thaw depth from beginning of simulation
integer , pointer :: altmax_1989_indx_col (:) ! col 1989 maximum thaw depth RF note: temporary for IM1!
integer , pointer :: altmax_ever_indx_col (:) ! col maximum thaw depth from beginning of simulation

Expand Down Expand Up @@ -286,15 +287,17 @@ subroutine InitHistory(this, bounds)
avgflag='A', long_name='maximum prior year active layer thickness', &
ptr_col=this%altmax_lastyear_col)

this%altmax_1989_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_1989', units='m', &
avgflag='A', long_name='maximum 1989 active layer thickness', &
ptr_col=this%altmax_1989_col)
if (use_polygonal_tundra) then
this%altmax_1989_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_1989', units='m', &
avgflag='A', long_name='maximum 1989 active layer thickness', &
ptr_col=this%altmax_1989_col)

this%altmax_ever_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_EVER', units='m', &
avgflag='A', long_name='maximum ever active layer thickness throughout simulation', &
ptr_col=this%altmax_ever_col)
this%altmax_ever_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_EVER', units='m', &
avgflag='A', long_name='maximum ever active layer thickness throughout simulation', &
ptr_col=this%altmax_ever_col)
end if
end if

! Allow active layer fields to be optionally output even if not running CN
Expand All @@ -315,15 +318,17 @@ subroutine InitHistory(this, bounds)
avgflag='A', long_name='maximum prior year active layer thickness', &
ptr_col=this%altmax_lastyear_col, default='inactive')

this%altmax_1989_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_1989', units='m', &
avgflag='A', long_name='maximum 1989 active layer thickness', &
ptr_col=this%altmax_1989_col, default='inactive')
if (use_polygonal_tundra) then
this%altmax_1989_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_1989', units='m', &
avgflag='A', long_name='maximum 1989 active layer thickness', &
ptr_col=this%altmax_1989_col, default='inactive')

this%altmax_ever_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_EVER', units='m', &
avgflag='A', long_name='maximum ever active layer thickness throughout simulation', &
ptr_col=this%altmax_ever_col, default='inactive')
this%altmax_ever_col(begc:endc) = spval
call hist_addfld1d (fname='ALTMAX_EVER', units='m', &
avgflag='A', long_name='maximum ever active layer thickness throughout simulation', &
ptr_col=this%altmax_ever_col, default='inactive')
end if
end if

! Accumulated fields
Expand Down Expand Up @@ -604,25 +609,27 @@ subroutine Restart(this, bounds, ncid, flag)
call restartvar(ncid=ncid, flag=flag, varname='altmax_lastyear', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_lastyear_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_1989', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_1989_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_ever', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_ever_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_indx', xtype=ncd_int, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_indx_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_lastyear_indx', xtype=ncd_int, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_lastyear_indx_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_1989_indx', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_1989_indx_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_ever_indx', xtype=ncd_int, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_ever_indx_col)
end if
if (use_polygonal_tundra) then
call restartvar(ncid=ncid, flag=flag, varname='altmax_1989_indx', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_1989_indx_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_ever_indx', xtype=ncd_int, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_ever_indx_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_1989', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_1989_col)
call restartvar(ncid=ncid, flag=flag, varname='altmax_ever', xtype=ncd_double, &
dim1name='column', long_name='', units='', &
interpinic_flag='interp', readvar=readvar, data=this%altmax_ever_col)
end if ! polygonal tundra
end if ! cn or fates
if ( use_hydrstress ) then
call restartvar(ncid=ncid, flag=flag, varname='vegwp', xtype=ncd_double, &
dim1name='pft', dim2name='vegwcs', switchdim=.true., &
Expand Down

0 comments on commit 8061bc0

Please sign in to comment.