@@ -252,7 +252,7 @@ subroutine PrepCH4BCs(csite,bc_in,bc_out)
252252 type (fates_patch_type), pointer :: cpatch ! current patch pointer
253253 type (fates_cohort_type), pointer :: ccohort ! current cohort pointer
254254 integer :: pft ! plant functional type
255- integer :: fp ! patch index of the site
255+ integer :: ifp ! patch index of the site
256256 real (r8 ) :: agnpp ! Above ground daily npp
257257 real (r8 ) :: bgnpp ! Below ground daily npp
258258 real (r8 ) :: plant_area ! crown area (m2) of all plants in patch
@@ -283,17 +283,17 @@ subroutine PrepCH4BCs(csite,bc_in,bc_out)
283283
284284 ! Process CH4 variables first
285285 ! if(.not.(hlm_use_ch4==itrue) .and. .not.(hlm_parteh_mode==prt_cnp_flex_allom_hyp) )
286-
287- fp = 0
286+
288287 cpatch = > csite% oldest_patch
289288 do while (associated (cpatch))
289+
290+ ifp = cpatch% patchno
291+
290292 if_notbare: if (cpatch% nocomp_pft_label .ne. nocomp_bareground)then
291293 ! Patch ordering when passing boundary conditions
292294 ! always goes from oldest to youngest, following
293295 ! the convention of EDPatchDynamics::set_patchno()
294-
295- fp = fp + 1
296-
296+
297297 agnpp = 0._r8
298298 bgnpp = 0._r8
299299 woody_area = 0._r8
@@ -334,13 +334,13 @@ subroutine PrepCH4BCs(csite,bc_in,bc_out)
334334 if (hlm_use_ch4== itrue)then
335335
336336 ! Fine root fraction over depth
337- bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil) = &
338- bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil) + &
337+ bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil) = &
338+ bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil) + &
339339 csite% rootfrac_scr(1 :bc_in% nlevsoil)
340340
341341 ! Fine root carbon, convert [kg/plant] -> [g/m2]
342- bc_out% frootc_pa(fp ) = &
343- bc_out% frootc_pa(fp ) + &
342+ bc_out% frootc_pa(ifp ) = &
343+ bc_out% frootc_pa(ifp ) + &
344344 fnrt_c* ccohort% n/ cpatch% area * g_per_kg
345345
346346 ! (gC/m2/s) root respiration (fine root MR + total root GR)
@@ -366,10 +366,10 @@ subroutine PrepCH4BCs(csite,bc_in,bc_out)
366366 end do
367367
368368 if (hlm_use_ch4== itrue)then
369- if ( sum (bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil)) > nearzero) then
370- bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil) = &
371- bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil) / &
372- sum (bc_out% rootfr_pa(fp ,1 :bc_in% nlevsoil))
369+ if ( sum (bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil)) > nearzero) then
370+ bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil) = &
371+ bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil) / &
372+ sum (bc_out% rootfr_pa(ifp ,1 :bc_in% nlevsoil))
373373 end if
374374
375375 ! RGK: These averages should switch to the new patch averaging methods
@@ -378,17 +378,18 @@ subroutine PrepCH4BCs(csite,bc_in,bc_out)
378378 ! would be arguably worse than just using the instantaneous value
379379
380380 ! gC/m2/s
381- bc_out% annavg_agnpp_pa(fp ) = agnpp
382- bc_out% annavg_bgnpp_pa(fp ) = bgnpp
381+ bc_out% annavg_agnpp_pa(ifp ) = agnpp
382+ bc_out% annavg_bgnpp_pa(ifp ) = bgnpp
383383 ! gc/m2/yr
384- bc_out% annsum_npp_pa(fp ) = (bgnpp+ agnpp)* days_per_year* sec_per_day
384+ bc_out% annsum_npp_pa(ifp ) = (bgnpp+ agnpp)* days_per_year* sec_per_day
385385
386386 if (plant_area> nearzero) then
387- bc_out% woody_frac_aere_pa(fp ) = woody_area/ plant_area
387+ bc_out% woody_frac_aere_pa(ifp ) = woody_area/ plant_area
388388 end if
389389
390390 end if
391391 end if if_notbare
392+
392393 cpatch = > cpatch% younger
393394 end do
394395
0 commit comments