Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
dc96351
initial sketch of limited bc refactor subroutine update
glemieux May 20, 2025
6550af3
converting the transfer procedure to be more generic
glemieux May 21, 2025
57b4c3d
update to temporary design comment
glemieux May 21, 2025
437149b
add generic interface for transfer bc in with different ranks
glemieux May 22, 2025
8d19797
Merge tag 'sci.1.85.3_api.40.0.0' into bc-refactor-patch-direct
glemieux Jul 2, 2025
2fdaf10
Merge remote-tracking branch 'glemieux/bcinout-argument-old' into bc-…
glemieux Jul 2, 2025
5ab259a
remove unused bc_out from init_site_vars
glemieux Jul 2, 2025
3b5c629
remove unnecessary bc_in argument from canopy_summarization
glemieux Jul 2, 2025
fc61230
remove unnecessary bc_out argument for accumulatefluxes_ed
glemieux Jul 2, 2025
d6fe4e2
Merge tag 'sci.1.86.0_api.40.0.0' into bc-refactor-patch-direct
glemieux Jul 15, 2025
b9b40ac
fix interface for module procedures
glemieux Jul 15, 2025
62794b2
correct do while statement
glemieux Jul 15, 2025
f80185c
correct select case and younger patch association
glemieux Jul 15, 2025
3424c91
add missing end subroutine statment
glemieux Jul 15, 2025
dedfd4a
temporarily comment out the 3d option
glemieux Jul 15, 2025
8307ca6
add site-level mapping vectors
glemieux Jul 16, 2025
1f11e96
fix incorrect index definition
glemieux Jul 16, 2025
a163f0a
move BC transfer procedure from interface mod to site as type-bound p…
glemieux Jul 17, 2025
cca0a5d
make generic procedure for transferbcin subroutine
glemieux Jul 17, 2025
549a590
minor cleanup
glemieux Jul 17, 2025
f2f489d
Merge tag 'sci.1.86.3_api.40.0.0_tools.3.1.0' into bc-refactor-patch-…
glemieux Jul 22, 2025
57a43e2
initial handover from site-level bc_in to patch level bc_in for fragm…
glemieux Jul 22, 2025
cefd2d1
remove w and t scalars from interface bc init procedures
glemieux Jul 28, 2025
29f586b
add decomposition temperature limitation to transfer in
glemieux Jul 28, 2025
aa269da
Update fluxintolitterpool non-mimics section to use the patch-level …
glemieux Aug 1, 2025
d2184ee
Update the mimics portion of the fluxintolitterpools code to be withi…
glemieux Aug 1, 2025
8f3192c
whitespace clean up
glemieux Aug 1, 2025
f22552f
add transfer bc out subroutine
glemieux Aug 12, 2025
9832f64
remove now unused bc_out from flux into litter pool procedure
glemieux Aug 12, 2025
8fc0cb1
add time conversion argument for the bc out transfer
glemieux Aug 12, 2025
11a6977
remove area fraction from flux into litter pools now that subroutine …
glemieux Aug 21, 2025
0eed65c
Add 1D bcout transfer subroutine and generic
glemieux Aug 22, 2025
d1c5baa
correct 1d bc out transfer definition
glemieux Aug 22, 2025
64284bb
align arguments for transfer bcout generics
glemieux Aug 22, 2025
16152e1
move litter pointer assignment inside element loop
glemieux Aug 22, 2025
3353146
add litter fluxes bcs to the patch type along with the decomposition …
glemieux Aug 23, 2025
dd76c4c
correct unset value for nlevdecomp
glemieux Aug 23, 2025
7367fd0
make the scalar bcin transfer subroutine generic to integers
glemieux Aug 23, 2025
018dcdb
start adding an interface variable type inspired by the history inter…
glemieux Aug 26, 2025
943409c
add registry and initialization procedures to the interface variable …
glemieux Aug 27, 2025
3fc08b7
simplify the interface variable type for now
glemieux Aug 27, 2025
79bf5db
Add procedure call chain to define the registry variable keys
glemieux Aug 27, 2025
4f5908a
add procedures to call in the host side that will call the initializa…
glemieux Aug 27, 2025
fceba21
aligning argument names and comments to reflect registry key concept
glemieux Aug 28, 2025
1fda372
correct procedure pointer alias
glemieux Aug 29, 2025
2a6e6c9
correct regsiter procedure to set data as target
glemieux Aug 29, 2025
4796055
update interface variable type to remove old pointers
glemieux Aug 29, 2025
0c8af67
align registry procedures to use key instead of variable name
glemieux Aug 29, 2025
a75a767
update interface var type with key name
glemieux Aug 29, 2025
84eef2d
build error corrections for the registry
glemieux Aug 29, 2025
5cf3b01
Make 2d registration subroutine
glemieux Sep 2, 2025
9dee2e9
Revert "remove area fraction from flux into litter pools now that sub…
glemieux Sep 2, 2025
ad86a87
Revert "move litter pointer assignment inside element loop"
glemieux Sep 2, 2025
51f137b
Revert "whitespace clean up"
glemieux Sep 2, 2025
67e5155
Revert "Update the mimics portion of the fluxintolitterpools code to …
glemieux Sep 2, 2025
91d472e
Revert "Update fluxintolitterpool non-mimics section to use the patc…
glemieux Sep 2, 2025
dfc5624
Revert "remove now unused bc_out from flux into litter pool procedure"
glemieux Sep 2, 2025
669a816
create interface registry type to be used by both fates_interface_ty…
glemieux Sep 3, 2025
c04c59f
move the registry type-bound procedures from fatesinterfacemod
glemieux Sep 3, 2025
9c2d367
implement the interface registry type in the patch type
glemieux Sep 3, 2025
e154880
add a 1d variant of the register generic for the fates-side variables
glemieux Sep 3, 2025
4f78037
add explicit polymorphic pointers in the var type to handle different…
glemieux Sep 9, 2025
8a1873a
correct the definition of the generic registry procedure
glemieux Sep 9, 2025
adca88f
minor formatting update
glemieux Sep 9, 2025
50737d4
add function to get the registry key from the given index
glemieux Sep 9, 2025
f862536
start adding the interface update call for the hlm-fates interface du…
glemieux Sep 9, 2025
276c7ba
removed unused update subroutine
glemieux Sep 9, 2025
d950a6d
correct end function name
glemieux Sep 9, 2025
332d1a4
minor white space changes
glemieux Sep 9, 2025
bb677cd
simplify the call to update the data via the api pointers by passing …
glemieux Sep 9, 2025
e833851
fix getregistrykey output definition
glemieux Sep 9, 2025
b2bdbef
Add the api update procedure.
glemieux Sep 9, 2025
7feb582
Start sketch of update variable
glemieux Sep 9, 2025
264412e
add subgrid heirarchy index variables in the registry type
glemieux Sep 10, 2025
61fd96b
update the current patch registry column index via the site column_map
glemieux Sep 10, 2025
b7789cc
add variables to hold information about the ordering of the input dat…
glemieux Sep 10, 2025
6bc9f34
correct usage of unset integer constant
glemieux Sep 10, 2025
cc260f3
make update interface a type-bound procedure
glemieux Sep 10, 2025
54c276f
removing the rank dimension integer as we are going to hold that the …
glemieux Sep 10, 2025
df6397d
add subgrid parameter index values
glemieux Sep 11, 2025
e990d4c
update the api registration procedure to pass in the subgrid index fo…
glemieux Sep 11, 2025
f08972a
implement the updated api registry assignment of the column index
glemieux Sep 11, 2025
76f9bd7
whitespace
glemieux Sep 11, 2025
9958416
adding comments and whitespace adjustments
glemieux Sep 11, 2025
0d95ee2
update the registry initialization to reflect the change to the subgr…
glemieux Sep 11, 2025
1d5878f
add missing rank update
glemieux Sep 11, 2025
cff1e3b
add case select logic and pointers to index into the source data pointer
glemieux Sep 11, 2025
d89ae39
add type-safe selection constructs to the update interface variable p…
glemieux Sep 11, 2025
5d62969
move subgrid heirarchy values into fates interface types mod
glemieux Sep 12, 2025
1ead812
remove superseded transfer bc procedures
glemieux Sep 12, 2025
1746c0c
add intent in to all registry subroutines
glemieux Sep 12, 2025
bf6999f
remove defunct transferbcin/out procedures in patch type
glemieux Sep 12, 2025
0792e90
add data size to the var type
glemieux Sep 12, 2025
6bbce25
add dimension error diagnostics to the var type
glemieux Sep 12, 2025
1420ec3
convert variable size comparison error checking to a subroutine
glemieux Sep 12, 2025
9f098a5
add scalar interface register subroutine
glemieux Sep 12, 2025
6883050
add nlevsoil to patch-level bcin
glemieux Sep 12, 2025
203d584
add interface key names as parameter variables
glemieux Sep 12, 2025
6cbc783
move subgrid index types into fatesinterfacetypesmod
glemieux Sep 12, 2025
68ff7a8
move patch_api pointer update inside the do while
glemieux Sep 12, 2025
28f629e
todo comment updates
glemieux Sep 12, 2025
274c6fe
removed unused indexers
glemieux Sep 12, 2025
65d967b
Correct which api has the subgrid indice update.
glemieux Sep 12, 2025
64128ba
adding comments for next steps
glemieux Sep 12, 2025
c4956f2
add update frequency to the registry variable type and and counters t…
glemieux Sep 17, 2025
f33b34b
add filters to the registry api type to provide shorter loops during …
glemieux Sep 17, 2025
849b23d
update the definteinterface call to pass initialization update freque…
glemieux Sep 17, 2025
8d191e6
minor formatting changes
glemieux Sep 17, 2025
d7ca3f8
initialize local variable to avoid implicit save
glemieux Sep 17, 2025
b49b055
add registry procedure to update on the variables during initialization
glemieux Sep 17, 2025
cb192a8
minor move of use statment
glemieux Sep 18, 2025
7baefc5
add api registry pointer in the site type to point back to the interf…
glemieux Sep 18, 2025
2e6fdcf
make the fates interface registry a pointer so that we can point the …
glemieux Sep 18, 2025
44a5f8b
Rename the patch level type bound registry initialization subroutine
glemieux Sep 18, 2025
8732a90
Add patch level type bound procedure to initialize the interface vari…
glemieux Sep 18, 2025
15f9f8d
update the create and init patch subroutines to take in the api point…
glemieux Sep 18, 2025
01e37e2
Update all patch create calls with new site api pointer argument
glemieux Sep 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions biogeochem/EDCanopyStructureMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1307,7 +1307,7 @@ end subroutine canopy_spread

! =====================================================================================

subroutine canopy_summarization( nsites, sites, bc_in )
subroutine canopy_summarization( nsites, sites )

! ----------------------------------------------------------------------------------
! Much of this routine was once ed_clm_link minus all the IO and history stuff
Expand All @@ -1323,7 +1323,6 @@ subroutine canopy_summarization( nsites, sites, bc_in )
! !ARGUMENTS
integer , intent(in) :: nsites
type(ed_site_type) , intent(inout), target :: sites(nsites)
type(bc_in_type) , intent(in) :: bc_in(nsites)
!
! !LOCAL VARIABLES:
type (fates_patch_type) , pointer :: currentPatch
Expand Down
6 changes: 3 additions & 3 deletions biogeochem/EDPatchDynamicsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -680,7 +680,7 @@ subroutine spawn_patches( currentSite, bc_in )

call newPatch%Create(age, site_areadis, i_landusechange_receiverpatchlabel, i_nocomp_pft, &
num_swb, numpft, currentSite%nlevsoil, hlm_current_tod, &
hlm_regeneration_model)
hlm_regeneration_model, currentSite%api)

! Initialize the litter pools to zero, these
! pools will be populated by looping over the existing patches
Expand Down Expand Up @@ -1371,7 +1371,7 @@ subroutine spawn_patches( currentSite, bc_in )

call buffer_patch%Create(0._r8, 0._r8, i_land_use_label, 0, &
num_swb, numpft, currentSite%nlevsoil, hlm_current_tod, &
hlm_regeneration_model)
hlm_regeneration_model, currentSite%api)

! Initialize the litter pools to zero
do el=1,num_elements
Expand Down Expand Up @@ -1664,7 +1664,7 @@ subroutine split_patch(currentSite, currentPatch, new_patch, fraction_to_keep, a
call new_patch%Create(0._r8, temp_area, &
currentPatch%land_use_label, currentPatch%nocomp_pft_label, &
num_swb, numpft, currentSite%nlevsoil, hlm_current_tod, &
hlm_regeneration_model)
hlm_regeneration_model, currentSite%api)

! Initialize the litter pools to zero, these
! pools will be populated shortly
Expand Down
2 changes: 1 addition & 1 deletion biogeochem/EDPhysiologyMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3215,7 +3215,7 @@ subroutine fragmentation_scaler( currentPatch, bc_in)
if ( use_hlm_soil_scalar ) then

! Calculate the fragmentation_scaler
currentPatch%fragmentation_scaler = min(1.0_r8,max(0.0_r8,bc_in%t_scalar_sisl * bc_in%w_scalar_sisl))
currentPatch%fragmentation_scaler = min(1.0_r8,max(0.0_r8,currentPatch%bc_in%t_scalar_sisl * currentPatch%bc_in%w_scalar_sisl))

else

Expand Down
86 changes: 81 additions & 5 deletions biogeochem/FatesPatchMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ module FatesPatchMod
use FatesRadiationMemMod, only : num_rad_stream_types
use FatesInterfaceTypesMod, only : hlm_hio_ignore_val
use FatesInterfaceTypesMod, only : numpft
use FatesInterfaceTypesMod, only : bc_in_type
use FatesInterfaceTypesMod, only : bc_out_type
use FatesInterfaceTypesMod, only : fates_interface_registry_base_type
use shr_infnan_mod, only : nan => shr_infnan_nan, assignment(=)
use shr_log_mod, only : errMsg => shr_log_errMsg

Expand All @@ -48,6 +51,14 @@ module FatesPatchMod
type (fates_cohort_type), pointer :: shortest => null() ! pointer to patch's shortest cohort
type (fates_patch_type), pointer :: older => null() ! pointer to next older patch
type (fates_patch_type), pointer :: younger => null() ! pointer to next younger patch

! BC data
! TODO change this to a specific bc type for incremental refactor purposes if this method is picked
type(bc_in_type) :: bc_in
type(bc_out_type) :: bc_out

! API registry container
type(fates_interface_registry_base_type) :: api

!---------------------------------------------------------------------------

Expand Down Expand Up @@ -242,13 +253,16 @@ module FatesPatchMod
procedure :: Dump
procedure :: CheckVars

procedure, private :: InitializeInterfaceRegistry
procedure, private :: InitializeInterfaceVariables

end type fates_patch_type

contains

!===========================================================================

subroutine Init(this, num_swb, num_levsoil)
subroutine Init(this, num_swb, num_levsoil, api_pointer)
!
! DESCRIPTION:
! Initialize a new patch - allocate arrays and set values to nan and/or 0.0
Expand All @@ -258,6 +272,7 @@ subroutine Init(this, num_swb, num_levsoil)
class(fates_patch_type), intent(inout) :: this ! patch object
integer, intent(in) :: num_swb ! number of shortwave broad-bands to track
integer, intent(in) :: num_levsoil ! number of soil layers
class(fates_interface_registry_base_type), pointer, intent(in) :: api_pointer

! allocate arrays
allocate(this%tr_soil_dir(num_swb))
Expand All @@ -270,6 +285,13 @@ subroutine Init(this, num_swb, num_levsoil)
allocate(this%sabs_dif(num_swb))
allocate(this%fragmentation_scaler(num_levsoil))

! Initialize the patch-level API registry
call this%InitializeInterfaceRegistry()

! Initialize and register the variables in the API registry
! This also allocates the boundary conditions
call this%InitializeInterfaceVariables(api_pointer)

! initialize all values to nan
call this%NanValues()

Expand Down Expand Up @@ -507,6 +529,12 @@ subroutine NanValues(this)
this%scorch_ht(:) = nan
this%tfc_ros = nan
this%frac_burnt = nan

! Boundary conditions
this%bc_in%w_scalar_sisl(:) = nan
this%bc_in%t_scalar_sisl(:) = nan
this%bc_in%nlevdecomp = fates_unset_int
this%bc_in%nlevsoil = fates_unset_int

end subroutine NanValues

Expand Down Expand Up @@ -594,6 +622,12 @@ subroutine ZeroValues(this)
this%tfc_ros = 0.0_r8
this%frac_burnt = 0.0_r8

! Boundary conditions
this%bc_in%w_scalar_sisl(:) = 0.0_r8
this%bc_in%t_scalar_sisl(:) = 0.0_r8
this%bc_in%nlevdecomp = 0.0_r8
this%bc_in%nlevsoil = 0.0_r8

end subroutine ZeroValues

!===========================================================================
Expand Down Expand Up @@ -686,7 +720,7 @@ end subroutine InitLitter
!===========================================================================

subroutine Create(this, age, area, land_use_label, nocomp_pft, num_swb, num_pft, &
num_levsoil, current_tod, regeneration_model)
num_levsoil, current_tod, regeneration_model, api_pointer)
!
! DESCRIPTION:
! create a new patch with input and default values
Expand All @@ -703,11 +737,13 @@ subroutine Create(this, age, area, land_use_label, nocomp_pft, num_swb, num_pft,
integer, intent(in) :: num_levsoil ! number of soil layers
integer, intent(in) :: current_tod ! time of day [seconds past 0Z]
integer, intent(in) :: regeneration_model ! regeneration model version

class(fates_interface_registry_base_type), pointer, intent(in) :: api_pointer

! initialize patch
! sets all values to nan, then some values to zero
call this%Init(num_swb, num_levsoil)

! sets all values to nan, then some values to zero, and initialize interface registry
call this%Init(num_swb, num_levsoil, api_pointer)
! initialize running means for patch
call this%InitRunningMeans(current_tod, regeneration_model, num_pft)

Expand Down Expand Up @@ -1288,4 +1324,44 @@ end subroutine CheckVars

!===========================================================================

subroutine InitializeInterfaceRegistry(this)

use FatesInterfaceTypesMod, only: hlm_fates_soil_level

class(fates_patch_type), intent(inout) :: this

! Initialize the patch-level interface variable registry for the FATES-side
call this%api%InitializeInterfaceRegistry()

! Register the boundary condition data variables that are set during initialization only
! See RegisterInterfaceVariables patch-type bound procedure for remaining variables registrations
call this%api%Register(hlm_fates_soil_level, this%bc_in%nlevsoil)

end subroutine InitializeInterfaceRegistry

! ======================================================================================

subroutine InitializeInterfaceVariables(this, input_api)

use FatesInterfaceTypesMod, only : hlm_fates_decomp_frac_moisture
use FatesInterfaceTypesMod, only : hlm_fates_decomp_frac_temperature

class(fates_patch_type), intent(inout) :: this
class(fates_interface_registry_base_type), intent(in) :: input_api

! Initialize interface variables
call this%api%InitializeInterfaceVariables(input_api)

! Allocate the boundary conditions array using the BCs set during initialization
allocate(this%bc_in%w_scalar_sisl(this%bc_in%nlevsoil))
allocate(this%bc_in%t_scalar_sisl(this%bc_in%nlevsoil))

! Register the boundary condintion variables not exclusively updated during initialization
call this%api%Register(hlm_fates_decomp_frac_moisture, this%bc_in%w_scalar_sisl)
call this%api%Register(hlm_fates_decomp_frac_temperature, this%bc_in%t_scalar_sisl)

end subroutine InitializeInterfaceVariables

! ======================================================================================

end module FatesPatchMod
5 changes: 2 additions & 3 deletions biogeophys/EDAccumulateFluxesMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module EDAccumulateFluxesMod

!------------------------------------------------------------------------------

subroutine AccumulateFluxes_ED(nsites, sites, bc_in, bc_out, dt_time)
subroutine AccumulateFluxes_ED(nsites, sites, bc_in, dt_time)

!
! !DESCRIPTION:
Expand All @@ -40,14 +40,13 @@ subroutine AccumulateFluxes_ED(nsites, sites, bc_in, bc_out, dt_time)
use EDTypesMod , only : ed_site_type, AREA
use FatesPatchMod, only : fates_patch_type
use FatesCohortMod, only : fates_cohort_type
use FatesInterfaceTypesMod , only : bc_in_type,bc_out_type
use FatesInterfaceTypesMod , only : bc_in_type

!
! !ARGUMENTS
integer, intent(in) :: nsites
type(ed_site_type), intent(inout), target :: sites(nsites)
type(bc_in_type), intent(in) :: bc_in(nsites)
type(bc_out_type), intent(inout) :: bc_out(nsites)
real(r8), intent(in) :: dt_time ! timestep interval
!
! !LOCAL VARIABLES:
Expand Down
9 changes: 4 additions & 5 deletions main/EDInitMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ module EDInitMod
use EDTypesMod , only : phen_dstat_moistoff
use EDTypesMod , only : phen_cstat_notcold
use EDTypesMod , only : phen_dstat_moiston
use FatesInterfaceTypesMod , only : bc_in_type,bc_out_type
use FatesInterfaceTypesMod , only : bc_in_type
use FatesInterfaceTypesMod , only : hlm_use_planthydro
use FatesInterfaceTypesMod , only : hlm_use_inventory_init
use FatesInterfaceTypesMod , only : hlm_use_fixed_biogeog
Expand Down Expand Up @@ -128,15 +128,14 @@ module EDInitMod

! ============================================================================

subroutine init_site_vars( site_in, bc_in, bc_out )
subroutine init_site_vars( site_in, bc_in )
!
! !DESCRIPTION:
!
!
! !ARGUMENTS
type(ed_site_type), intent(inout) :: site_in
type(bc_in_type),intent(in) :: bc_in
type(bc_out_type),intent(in) :: bc_out
!
! !LOCAL VARIABLES:
!----------------------------------------------------------------------
Expand Down Expand Up @@ -784,7 +783,7 @@ subroutine init_patches( nsites, sites, bc_in)

call newp%Create(age, newparea, nocomp_bareground_land, nocomp_bareground, &
num_swb, numpft, sites(s)%nlevsoil, hlm_current_tod, &
hlm_regeneration_model)
hlm_regeneration_model, sites(s)%api)

! set pointers for first patch (or only patch, if nocomp is false)
newp%patchno = 1
Expand Down Expand Up @@ -863,7 +862,7 @@ subroutine init_patches( nsites, sites, bc_in)

call newp%Create(age, newparea, i_lu_state, nocomp_pft, &
num_swb, numpft, sites(s)%nlevsoil, hlm_current_tod, &
hlm_regeneration_model)
hlm_regeneration_model, sites(s)%api)

if (is_first_patch) then !is this the first patch?
! set pointers for first patch (or only patch, if nocomp is false)
Expand Down
14 changes: 12 additions & 2 deletions main/EDTypesMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module EDTypesMod
use FatesConstantsMod, only : secondaryland
use FatesConstantsMod, only : secondary_age_threshold
use FatesConstantsMod, only : nearzero
use FatesConstantsMod , only : n_landuse_cats
use FatesGlobals, only : fates_log
use FatesHydraulicsMemMod, only : ed_cohort_hydr_type
use FatesHydraulicsMemMod, only : ed_site_hydr_type
Expand All @@ -29,8 +30,8 @@ module EDTypesMod
use FatesConstantsMod, only : fates_unset_r8
use FatesInterfaceTypesMod,only : bc_in_type
use FatesInterfaceTypesMod,only : bc_out_type
use FatesConstantsMod , only : n_landuse_cats
use FatesInterfaceTypesMod,only : hlm_parteh_mode
use FatesInterfaceTypesMod,only : fates_interface_registry_base_type
use FatesCohortMod, only : fates_cohort_type
use FatesPatchMod, only : fates_patch_type
use EDParamsMod, only : nclmax, nlevleaf, maxpft
Expand Down Expand Up @@ -327,10 +328,15 @@ module EDTypesMod

type, public :: ed_site_type

! POINTERS
!! POINTERS

! patch pointers
type (fates_patch_type), pointer :: oldest_patch => null() ! pointer to oldest patch at the site
type (fates_patch_type), pointer :: youngest_patch => null() ! pointer to yngest patch at the site

! interface pointer
type(fates_interface_registry_base_type), pointer :: api => null() ! pointer to the fates interface type api

! Resource management
type (ed_resources_management_type) :: resources_management ! resources_management at the site

Expand All @@ -339,6 +345,10 @@ module EDTypesMod
! position in history output fields
!integer :: clump_id

! Arrays that map the HLM subgrid index for each patch in this site
integer, allocatable :: column_map(:)
integer, allocatable :: patch_map(:)

! Global index of this site in the history output file
integer :: h_gid

Expand Down
Loading