diff --git a/biogeochem/EDCanopyStructureMod.F90 b/biogeochem/EDCanopyStructureMod.F90 index 761f22bc29..a52be9a30e 100644 --- a/biogeochem/EDCanopyStructureMod.F90 +++ b/biogeochem/EDCanopyStructureMod.F90 @@ -317,7 +317,7 @@ subroutine canopy_structure( currentSite , bc_in ) if(currentCohort%canopy_layer .eq. 2)then if (associated(currentCohort%taller)) then if (currentCohort%taller%canopy_layer .eq. 1 ) then - currentPatch%zstar = currentCohort%taller%hite + currentPatch%zstar = currentCohort%taller%height endif endif endif @@ -407,7 +407,7 @@ subroutine DemoteFromLayer(currentSite,currentPatch,i_lyr,bc_in) ! to the understory. ! ---------------------------------------------------------- - currentCohort%excl_weight = 1._r8 / (currentCohort%hite**ED_val_comp_excln) + currentCohort%excl_weight = 1._r8 / (currentCohort%height**ED_val_comp_excln) sumweights = sumweights + currentCohort%excl_weight else @@ -428,7 +428,7 @@ subroutine DemoteFromLayer(currentSite,currentPatch,i_lyr,bc_in) tied_size_with_neighbors = .false. nextc => currentCohort%taller do while (associated(nextc)) - if ( abs(nextc%hite - currentCohort%hite) < similar_height_tol ) then + if ( abs(nextc%height - currentCohort%height) < similar_height_tol ) then if( nextc%canopy_layer .eq. currentCohort%canopy_layer ) then tied_size_with_neighbors = .true. total_crownarea_of_tied_cohorts = & @@ -451,7 +451,7 @@ subroutine DemoteFromLayer(currentSite,currentPatch,i_lyr,bc_in) nextc => currentCohort%taller do while (associated(nextc)) - if ( abs(nextc%hite - currentCohort%hite) < similar_height_tol ) then + if ( abs(nextc%height - currentCohort%height) < similar_height_tol ) then if (nextc%canopy_layer .eq. currentCohort%canopy_layer ) then ! now we know the total crown area of all equal-sized, ! equal-canopy-layer cohorts @@ -891,7 +891,7 @@ subroutine PromoteIntoLayer(currentSite,currentPatch,i_lyr) ! Stochastic case, as above (in demotion portion of code) ! ------------------------------------------------------------------ - currentCohort%prom_weight = currentCohort%hite**ED_val_comp_excln + currentCohort%prom_weight = currentCohort%height**ED_val_comp_excln sumweights = sumweights + currentCohort%prom_weight else @@ -910,7 +910,7 @@ subroutine PromoteIntoLayer(currentSite,currentPatch,i_lyr) tied_size_with_neighbors = .false. nextc => currentCohort%shorter do while (associated(nextc)) - if ( abs(nextc%hite - currentCohort%hite) < similar_height_tol ) then + if ( abs(nextc%height - currentCohort%height) < similar_height_tol ) then if( nextc%canopy_layer .eq. currentCohort%canopy_layer ) then tied_size_with_neighbors = .true. total_crownarea_of_tied_cohorts = & @@ -932,7 +932,7 @@ subroutine PromoteIntoLayer(currentSite,currentPatch,i_lyr) nextc => currentCohort%shorter do while (associated(nextc)) - if ( abs(nextc%hite - currentCohort%hite) < similar_height_tol ) then + if ( abs(nextc%height - currentCohort%height) < similar_height_tol ) then if (nextc%canopy_layer .eq. currentCohort%canopy_layer ) then ! now we know the total crown area of all equal-sized, ! equal-canopy-layer cohorts @@ -1499,7 +1499,7 @@ subroutine leaf_area_profile( currentSite ) ! !USES: - use EDtypesMod , only : area, hitemax, n_hite_bins + use EDtypesMod , only : area, heightmax, n_height_bins use EDParamsMod, only : dinc_vai, dlower_vai ! @@ -1517,14 +1517,14 @@ subroutine leaf_area_profile( currentSite ) integer :: iv ! Vertical leaf layer index integer :: cl ! Canopy layer index real(r8) :: fraction_exposed ! how much of this layer is not covered by snow? - real(r8) :: layer_top_hite ! notional top height of this canopy layer (m) - real(r8) :: layer_bottom_hite ! notional bottom height of this canopy layer (m) - real(r8) :: frac_canopy(N_HITE_BINS) ! amount of canopy in each height class - real(r8) :: minh(N_HITE_BINS) ! minimum height in height class (m) - real(r8) :: maxh(N_HITE_BINS) ! maximum height in height class (m) + real(r8) :: layer_top_height ! notional top height of this canopy layer (m) + real(r8) :: layer_bottom_height ! notional bottom height of this canopy layer (m) + real(r8) :: frac_canopy(N_HEIGHT_BINS) ! amount of canopy in each height class + real(r8) :: minh(N_HEIGHT_BINS) ! minimum height in height class (m) + real(r8) :: maxh(N_HEIGHT_BINS) ! maximum height in height class (m) real(r8) :: dh ! vertical detph of height class (m) - real(r8) :: min_chite ! bottom of cohort canopy (m) - real(r8) :: max_chite ! top of cohort canopy (m) + real(r8) :: min_cheight ! bottom of cohort canopy (m) + real(r8) :: max_cheight ! top of cohort canopy (m) real(r8) :: lai ! leaf area per canopy area real(r8) :: sai ! stem area per canopy area @@ -1615,25 +1615,25 @@ subroutine leaf_area_profile( currentSite ) ! We calculate the absolute elevation of each layer to help determine if the layer ! is obscured by snow. - layer_top_hite = currentCohort%hite - & - ( real(iv-1,r8)/currentCohort%NV * currentCohort%hite * & + layer_top_height = currentCohort%height - & + ( real(iv-1,r8)/currentCohort%NV * currentCohort%height * & prt_params%crown_depth_frac(currentCohort%pft) ) - layer_bottom_hite = currentCohort%hite - & - ( real(iv,r8)/currentCohort%NV * currentCohort%hite * & + layer_bottom_height = currentCohort%height - & + ( real(iv,r8)/currentCohort%NV * currentCohort%height * & prt_params%crown_depth_frac(currentCohort%pft) ) fraction_exposed = 1.0_r8 - if(currentSite%snow_depth > layer_top_hite)then + if(currentSite%snow_depth > layer_top_height)then fraction_exposed = 0._r8 endif - if(currentSite%snow_depth < layer_bottom_hite)then + if(currentSite%snow_depth < layer_bottom_height)then fraction_exposed = 1._r8 endif - if(currentSite%snow_depth >= layer_bottom_hite .and. & - currentSite%snow_depth <= layer_top_hite) then !only partly hidden... - fraction_exposed = 1._r8 - max(0._r8,(min(1.0_r8,(currentSite%snow_depth -layer_bottom_hite)/ & - (layer_top_hite-layer_bottom_hite )))) + if(currentSite%snow_depth >= layer_bottom_height .and. & + currentSite%snow_depth <= layer_top_height) then !only partly hidden... + fraction_exposed = 1._r8 - max(0._r8,(min(1.0_r8,(currentSite%snow_depth -layer_bottom_height)/ & + (layer_top_height-layer_bottom_height )))) endif if(iv==currentCohort%NV) then @@ -1669,7 +1669,7 @@ subroutine leaf_area_profile( currentSite ) currentPatch%layer_height_profile(cl,ft,iv) = currentPatch%layer_height_profile(cl,ft,iv) + & (remainder * fleaf * currentCohort%c_area/currentPatch%total_canopy_area * & - (layer_top_hite+layer_bottom_hite)/2.0_r8) !average height of layer. + (layer_top_height+layer_bottom_height)/2.0_r8) !average height of layer. end do @@ -1850,7 +1850,7 @@ subroutine update_hlm_dynamics(nsites,sites,fcolumn,bc_out) endif if (associated(currentPatch%tallest)) then - bc_out(s)%htop_pa(ifp) = currentPatch%tallest%hite + bc_out(s)%htop_pa(ifp) = currentPatch%tallest%height else ! FIX(RF,040113) - should this be a parameter for the minimum possible vegetation height? bc_out(s)%htop_pa(ifp) = 0.1_r8 @@ -1870,9 +1870,9 @@ subroutine update_hlm_dynamics(nsites,sites,fcolumn,bc_out) if (currentCohort%canopy_layer .eq. 1) then weight = min(1.0_r8,currentCohort%c_area/currentPatch%total_canopy_area) bc_out(s)%z0m_pa(ifp) = bc_out(s)%z0m_pa(ifp) + & - EDPftvarcon_inst%z0mr(currentCohort%pft) * currentCohort%hite * weight + EDPftvarcon_inst%z0mr(currentCohort%pft) * currentCohort%height * weight bc_out(s)%displa_pa(ifp) = bc_out(s)%displa_pa(ifp) + & - EDPftvarcon_inst%displar(currentCohort%pft) * currentCohort%hite * weight + EDPftvarcon_inst%displar(currentCohort%pft) * currentCohort%height * weight endif currentCohort => currentCohort%taller end do diff --git a/biogeochem/EDCohortDynamicsMod.F90 b/biogeochem/EDCohortDynamicsMod.F90 index c4bfabdcf7..12385a8f9d 100644 --- a/biogeochem/EDCohortDynamicsMod.F90 +++ b/biogeochem/EDCohortDynamicsMod.F90 @@ -157,7 +157,7 @@ Module EDCohortDynamicsMod contains !-------------------------------------------------------------------------------------! -subroutine create_cohort(currentSite, patchptr, pft, nn, hite, coage, dbh, & +subroutine create_cohort(currentSite, patchptr, pft, nn, height, coage, dbh, & prt, elongf_leaf, elongf_fnrt, elongf_stem, status, recruitstatus, ctrim, & carea, clayer, crowndamage, spread, bc_in) @@ -182,7 +182,7 @@ subroutine create_cohort(currentSite, patchptr, pft, nn, hite, coage, dbh, & integer, intent(in) :: status ! growth status of plant [1=leaves off; 2=leaves on] integer, intent(in) :: recruitstatus ! recruit status of plant [1 = recruitment , 0 = other] real(r8), intent(in) :: nn ! number of individuals in cohort [/m2] -real(r8), intent(in) :: hite ! cohort height [m] +real(r8), intent(in) :: height ! cohort height [m] real(r8), intent(in) :: coage ! cohort age [m] real(r8), intent(in) :: dbh ! cohort diameter at breast height [cm] real(r8), intent(in) :: elongf_leaf ! leaf elongation factor [fraction] - 0: fully abscissed; 1: fully flushed @@ -206,7 +206,7 @@ subroutine create_cohort(currentSite, patchptr, pft, nn, hite, coage, dbh, & ! create new cohort allocate(newCohort) -call newCohort%Create(prt, pft, nn, hite, coage, dbh, status, ctrim, carea, & +call newCohort%Create(prt, pft, nn, height, coage, dbh, status, ctrim, carea, & clayer, crowndamage, spread, patchptr%canopy_layer_tlai, elongf_leaf, elongf_fnrt, & elongf_stem) @@ -247,7 +247,7 @@ subroutine create_cohort(currentSite, patchptr, pft, nn, hite, coage, dbh, & ! This calculates node heights call UpdatePlantHydrNodes(newCohort, newCohort%pft, & - newCohort%hite,currentSite%si_hydr) + newCohort%height,currentSite%si_hydr) ! This calculates volumes and lengths call UpdatePlantHydrLenVol(newCohort,currentSite%si_hydr) @@ -834,7 +834,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) write(fates_log(),*) 'Cohort I, Cohort II' write(fates_log(),*) 'n:',currentCohort%n,nextc%n write(fates_log(),*) 'isnew:',currentCohort%isnew,nextc%isnew - write(fates_log(),*) 'hite:',currentCohort%hite,nextc%hite + write(fates_log(),*) 'height:',currentCohort%height,nextc%height write(fates_log(),*) 'coage:',currentCohort%coage,nextc%coage write(fates_log(),*) 'dbh:',currentCohort%dbh,nextc%dbh write(fates_log(),*) 'pft:',currentCohort%pft,nextc%pft @@ -937,7 +937,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) call ForceDBH( currentCohort%pft, currentCohort%crowndamage, & currentCohort%canopy_trim, & currentCohort%efleaf_coh, currentCohort%efstem_coh, & - currentCohort%dbh, currentCohort%hite, & + currentCohort%dbh, currentCohort%height, & bdead = currentCohort%prt%GetState(struct_organ,carbon12_element)) end if @@ -950,7 +950,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) endif ! - call h_allom(currentCohort%dbh,currentCohort%pft,currentCohort%hite) + call h_allom(currentCohort%dbh,currentCohort%pft,currentCohort%height) ! case(conserve_dbh_and_number_not_crownarea) ! @@ -962,7 +962,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) currentCohort%dbh = (currentCohort%n*currentCohort%dbh & + nextc%n*nextc%dbh)/newn ! - call h_allom(currentCohort%dbh,currentCohort%pft,currentCohort%hite) + call h_allom(currentCohort%dbh,currentCohort%pft,currentCohort%height) ! ! ----------------------------------------------------------------- ! If fusion pushed structural biomass to be larger than @@ -976,7 +976,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) call ForceDBH( currentCohort%pft, currentCohort%crowndamage, & currentCohort%canopy_trim, & currentCohort%efleaf_coh, currentCohort%efstem_coh, & - currentCohort%dbh, currentCohort%hite, & + currentCohort%dbh, currentCohort%height, & bdead = currentCohort%prt%GetState(struct_organ,carbon12_element)) end if @@ -1163,7 +1163,7 @@ subroutine fuse_cohorts(currentSite, currentPatch, bc_in) endif ! At this point, nothing should be pointing to current Cohort - ! update hydraulics quantities that are functions of hite & biomasses + ! update hydraulics quantities that are functions of height & biomasses ! deallocate the hydro structure of nextc if (hlm_use_planthydro.eq.itrue) then call UpdateSizeDepPlantHydProps(currentSite,currentCohort, bc_in) @@ -1358,7 +1358,7 @@ subroutine insert_cohort(currentPatch, pcc, ptall, pshort, tnull, snull, storebi icohort => pcc ! assign address to icohort local name !place in the correct place in the linked list of heights !begin by finding cohort that is just taller than the new cohort - tsp = icohort%hite + tsp = icohort%height current => pshortest exitloop = 0 @@ -1366,7 +1366,7 @@ subroutine insert_cohort(currentPatch, pcc, ptall, pshort, tnull, snull, storebi !taller than tree being considered and return its pointer if (associated(current)) then do while (associated(current).and.exitloop == 0) - if (current%hite < tsp) then + if (current%height < tsp) then current => current%taller else exitloop = 1 @@ -1471,7 +1471,7 @@ end subroutine count_cohorts ! =================================================================================== - subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) + subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_height) ! ----------------------------------------------------------------------------------- ! If the current diameter of a plant is somehow less than what is allometrically @@ -1482,7 +1482,7 @@ subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) ! argument type(fates_cohort_type),intent(inout) :: currentCohort real(r8),intent(out) :: delta_dbh - real(r8),intent(out) :: delta_hite + real(r8),intent(out) :: delta_height ! locals real(r8) :: dbh @@ -1496,7 +1496,7 @@ subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) real(r8) :: target_struct_c real(r8) :: target_leaf_c real(r8) :: struct_c - real(r8) :: hite_out + real(r8) :: height_out real(r8) :: leaf_c real(r8) :: crown_reduction real(r8) :: elongf_leaf @@ -1510,7 +1510,7 @@ subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) elongf_stem = currentCohort%efstem_coh delta_dbh = 0._r8 - delta_hite = 0._r8 + delta_height = 0._r8 if( prt_params%woody(currentCohort%pft) == itrue) then @@ -1539,12 +1539,12 @@ subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) if( (struct_c - target_struct_c ) > calloc_abs_error ) then call ForceDBH( ipft,icrowndamage,canopy_trim, elongf_leaf, elongf_stem, & - dbh, hite_out, bdead=struct_c) + dbh, height_out, bdead=struct_c) delta_dbh = dbh - currentCohort%dbh - delta_hite = hite_out - currentCohort%hite + delta_height = height_out - currentCohort%height currentCohort%dbh = dbh - currentCohort%hite = hite_out + currentCohort%height = height_out end if else @@ -1557,11 +1557,11 @@ subroutine EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) if( ( leaf_c - target_leaf_c ) > calloc_abs_error ) then call ForceDBH( ipft, icrowndamage, canopy_trim, elongf_leaf, elongf_stem, & - dbh, hite_out, bl=leaf_c ) + dbh, height_out, bl=leaf_c ) delta_dbh = dbh - currentCohort%dbh - delta_hite = hite_out - currentCohort%hite + delta_height = height_out - currentCohort%height currentCohort%dbh = dbh - currentCohort%hite = hite_out + currentCohort%height = height_out end if end if diff --git a/biogeochem/EDPhysiologyMod.F90 b/biogeochem/EDPhysiologyMod.F90 index eb1872b02c..2d2531b9a6 100644 --- a/biogeochem/EDPhysiologyMod.F90 +++ b/biogeochem/EDPhysiologyMod.F90 @@ -829,13 +829,13 @@ subroutine trim_canopy( currentSite ) if (currentCohort%canopy_trim > EDPftvarcon_inst%trim_limit(ipft)) then ! keep trimming until none of the canopy is in negative carbon balance. - if (currentCohort%hite > EDPftvarcon_inst%hgt_min(ipft)) then + if (currentCohort%height > EDPftvarcon_inst%hgt_min(ipft)) then currentCohort%canopy_trim = currentCohort%canopy_trim - & EDPftvarcon_inst%trim_inc(ipft) trimmed = .true. - endif ! hite check + endif ! height check endif ! trim limit check endif ! net uptake check endif ! leaf activity check @@ -2008,7 +2008,7 @@ subroutine assign_cohort_SP_properties(currentCohort, htop, tlai, tsai, parea, i leaf_c, dbh, cohort_n, c_area) ! set allometric characteristics - currentCohort%hite = htop + currentCohort%height = htop currentCohort%dbh = dbh currentCohort%n = cohort_n currentCohort%c_area = c_area @@ -2444,7 +2444,7 @@ subroutine recruitment(currentSite, currentPatch, bc_in) integer :: element_id ! element index consistent with definitions in PRTGenericMod integer :: iage ! age loop counter for leaf age bins integer :: crowndamage ! crown damage class of the cohort [1 = undamaged, >1 = damaged] - real(r8) :: hite ! new cohort height [m] + real(r8) :: height ! new cohort height [m] real(r8) :: dbh ! new cohort DBH [cm] real(r8) :: cohort_n ! new cohort density real(r8) :: l2fr ! leaf to fineroot biomass ratio [0-1] @@ -2490,14 +2490,14 @@ subroutine recruitment(currentSite, currentPatch, bc_in) ((hlm_use_nocomp .eq. ifalse) .or. & (ft .eq. currentPatch%nocomp_pft_label))) then - hite = EDPftvarcon_inst%hgt_min(ft) + height = EDPftvarcon_inst%hgt_min(ft) stem_drop_fraction = prt_params%phen_stem_drop_fraction(ft) fnrt_drop_fraction = prt_params%phen_fnrt_drop_fraction(ft) l2fr = currentSite%rec_l2fr(ft, currentPatch%NCL_p) crowndamage = 1 ! new recruits are undamaged ! calculate DBH from initial height - call h2d_allom(hite, ft, dbh) + call h2d_allom(height, ft, dbh) ! default assumption is that leaves are on efleaf_coh = 1.0_r8 @@ -2721,7 +2721,7 @@ subroutine recruitment(currentSite, currentPatch, bc_in) call prt%CheckInitialConditions() call create_cohort(currentSite, currentPatch, ft, cohort_n, & - hite, 0.0_r8, dbh, prt, efleaf_coh, effnrt_coh, efstem_coh, & + height, 0.0_r8, dbh, prt, efleaf_coh, effnrt_coh, efstem_coh, & leaf_status, recruitstatus, init_recruit_trim, 0.0_r8, & currentPatch%NCL_p, crowndamage, currentSite%spread, bc_in) diff --git a/biogeochem/FatesAllometryMod.F90 b/biogeochem/FatesAllometryMod.F90 index 1871f3fe0f..431219cfda 100644 --- a/biogeochem/FatesAllometryMod.F90 +++ b/biogeochem/FatesAllometryMod.F90 @@ -2096,7 +2096,7 @@ subroutine CrownDepth(height,ft,crown_depth) ! Alternative Hypothesis: ! crown depth from Poorter, Bongers & Bongers - ! crown_depth = exp(-1.169_r8)*cCohort%hite**1.098_r8 + ! crown_depth = exp(-1.169_r8)*cCohort%height**1.098_r8 ! Alternative Hypothesis: ! Original FATES crown depth heigh used for hydraulics diff --git a/biogeochem/FatesCohortMod.F90 b/biogeochem/FatesCohortMod.F90 index 71685a869e..7c1b586a71 100644 --- a/biogeochem/FatesCohortMod.F90 +++ b/biogeochem/FatesCohortMod.F90 @@ -83,7 +83,7 @@ module FatesCohortMod real(r8) :: n ! number of individuals in cohort per 'area' (10000m2 default) [/m2] real(r8) :: dbh ! diameter at breast height [cm] real(r8) :: coage ! age [years] - real(r8) :: hite ! height [m] + real(r8) :: height ! height [m] integer :: indexnumber ! unique number for each cohort (within clump?) integer :: canopy_layer ! canopy status of cohort [1 = canopy, 2 = understorey, etc.] real(r8) :: canopy_layer_yesterday ! recent canopy status of cohort [1 = canopy, 2 = understorey, etc.] @@ -345,7 +345,7 @@ subroutine NanValues(this) this%n = nan this%dbh = nan this%coage = nan - this%hite = nan + this%height = nan this%indexnumber = fates_unset_int this%canopy_layer = fates_unset_int this%canopy_layer_yesterday = nan @@ -532,7 +532,7 @@ end subroutine ZeroValues !=========================================================================== - subroutine Create(this, prt, pft, nn, hite, coage, dbh, status, & + subroutine Create(this, prt, pft, nn, height, coage, dbh, status, & ctrim, carea, clayer, crowndamage, spread, can_tlai, elongf_leaf, & elongf_fnrt, elongf_stem) ! @@ -547,7 +547,7 @@ subroutine Create(this, prt, pft, nn, hite, coage, dbh, status, & integer, intent(in) :: clayer ! canopy status of cohort [canopy/understory] integer, intent(in) :: status ! growth status of cohort [leaves on/off] real(r8), intent(in) :: nn ! number of individuals in cohort [/m2] - real(r8), intent(in) :: hite ! cohort height [m] + real(r8), intent(in) :: height ! cohort height [m] real(r8), intent(in) :: coage ! cohort age [yr] real(r8), intent(in) :: dbh ! cohort diameter at breat height [cm] real(r8), intent(in) :: ctrim ! fraction of the maximum leaf biomass @@ -572,7 +572,7 @@ subroutine Create(this, prt, pft, nn, hite, coage, dbh, status, & this%canopy_layer_yesterday = real(clayer, r8) this%status_coh = status this%n = nn - this%hite = hite + this%height = height this%dbh = dbh this%coage = coage this%canopy_trim = ctrim @@ -672,7 +672,7 @@ subroutine Copy(this, copyCohort) copyCohort%n = this%n copyCohort%dbh = this%dbh copyCohort%coage = this%coage - copyCohort%hite = this%hite + copyCohort%height = this%height copyCohort%canopy_layer = this%canopy_layer copyCohort%canopy_layer_yesterday = this%canopy_layer_yesterday copyCohort%crowndamage = this%crowndamage @@ -1010,7 +1010,7 @@ subroutine Dump(this) write(fates_log(),*) 'cohort%pft = ', this%pft write(fates_log(),*) 'cohort%n = ', this%n write(fates_log(),*) 'cohort%dbh = ', this%dbh - write(fates_log(),*) 'cohort%hite = ', this%hite + write(fates_log(),*) 'cohort%height = ', this%height write(fates_log(),*) 'cohort%crowndamage = ', this%crowndamage write(fates_log(),*) 'cohort%coage = ', this%coage write(fates_log(),*) 'cohort%l2fr = ', this%l2fr @@ -1087,4 +1087,4 @@ end subroutine Dump !=========================================================================== -end module FatesCohortMod \ No newline at end of file +end module FatesCohortMod diff --git a/biogeophys/FatesPlantHydraulicsMod.F90 b/biogeophys/FatesPlantHydraulicsMod.F90 index d3c4df6a38..e38e042252 100644 --- a/biogeophys/FatesPlantHydraulicsMod.F90 +++ b/biogeophys/FatesPlantHydraulicsMod.F90 @@ -365,7 +365,7 @@ subroutine RestartHydrStates(sites,nsites,bc_in,bc_out) ccohort_hydr => ccohort%co_hydr ! This calculates node heights - call UpdatePlantHydrNodes(ccohort,ccohort%pft,ccohort%hite, & + call UpdatePlantHydrNodes(ccohort,ccohort%pft,ccohort%height, & sites(s)%si_hydr) ! This calculates volumes and lengths @@ -862,7 +862,7 @@ subroutine UpdateSizeDepPlantHydProps(currentSite,ccohort,bc_in) call SavePreviousCompartmentVolumes(ccohort_hydr) ! This updates all of the z_node positions - call UpdatePlantHydrNodes(ccohort,ft,ccohort%hite,currentSite%si_hydr) + call UpdatePlantHydrNodes(ccohort,ft,ccohort%height,currentSite%si_hydr) ! This updates plant compartment volumes, lengths and ! maximum conductances. Make sure for already @@ -1004,11 +1004,11 @@ subroutine UpdatePlantHydrLenVol(ccohort,csite_hydr) a_sapwood = a_sapwood_target ! * sapw_c / sapw_c_target ! alternative cross section calculation - ! a_sapwood = a_leaf_tot / ( 0.001_r8 + 0.025_r8 * ccohort%hite ) * 1.e-4_r8 + ! a_sapwood = a_leaf_tot / ( 0.001_r8 + 0.025_r8 * ccohort%height ) * 1.e-4_r8 - !call CrownDepth(ccohort%hite,ft,crown_depth) - crown_depth = min(ccohort%hite,0.1_r8) - z_stem = ccohort%hite - crown_depth + !call CrownDepth(ccohort%height,ft,crown_depth) + crown_depth = min(ccohort%height,0.1_r8) + z_stem = ccohort%height - crown_depth v_sapwood = a_sapwood * z_stem ! + 0.333_r8*a_sapwood*crown_depth ! Junyan changed the following code to calculate the above ground node volume @@ -1228,7 +1228,7 @@ subroutine FuseCohortHydraulics(currentSite,currentCohort, nextCohort, bc_in, ne call SavePreviousCompartmentVolumes(ccohort_hydr) ! This updates all of the z_node positions - call UpdatePlantHydrNodes(currentCohort,ft,currentCohort%hite,csite_hydr) + call UpdatePlantHydrNodes(currentCohort,ft,currentCohort%height,csite_hydr) ! This updates plant compartment volumes, lengths and ! maximum conductances. Make sure for already diff --git a/fire/SFMainMod.F90 b/fire/SFMainMod.F90 index 797ca859b8..ef245b04f9 100644 --- a/fire/SFMainMod.F90 +++ b/fire/SFMainMod.F90 @@ -976,22 +976,22 @@ subroutine crown_damage ( currentSite ) currentCohort%fraction_crown_burned = 0.0_r8 if ( prt_params%woody(currentCohort%pft) == itrue) then !trees only ! Flames lower than bottom of canopy. - ! c%hite is height of cohort + ! c%height is height of cohort - call CrownDepth(currentCohort%hite,currentCohort%pft,crown_depth) + call CrownDepth(currentCohort%height,currentCohort%pft,crown_depth) if (currentPatch%Scorch_ht(currentCohort%pft) < & - (currentCohort%hite-crown_depth)) then + (currentCohort%height-crown_depth)) then currentCohort%fraction_crown_burned = 0.0_r8 else ! Flames part of way up canopy. ! Equation 17 in Thonicke et al. 2010. ! flames over bottom of canopy but not over top. - if ((currentCohort%hite > 0.0_r8).and.(currentPatch%Scorch_ht(currentCohort%pft) >= & - (currentCohort%hite-crown_depth))) then + if ((currentCohort%height > 0.0_r8).and.(currentPatch%Scorch_ht(currentCohort%pft) >= & + (currentCohort%height-crown_depth))) then currentCohort%fraction_crown_burned = (currentPatch%Scorch_ht(currentCohort%pft) - & - (currentCohort%hite - crown_depth))/crown_depth + (currentCohort%height - crown_depth))/crown_depth else ! Flames over top of canopy. diff --git a/main/EDInitMod.F90 b/main/EDInitMod.F90 index de80dd8920..ee74f9b02b 100644 --- a/main/EDInitMod.F90 +++ b/main/EDInitMod.F90 @@ -823,7 +823,7 @@ subroutine init_cohorts(site_in, patch_in, bc_in) real(r8) :: canopy_trim ! fraction of the maximum leaf biomass that we are targeting [0-1] real(r8) :: cohort_n ! cohort density real(r8) :: dbh ! cohort dbh [cm] - real(r8) :: hite ! cohort height [m] + real(r8) :: height ! cohort height [m] real(r8) :: c_area ! cohort crown area [m2] real(r8) :: c_agw ! above ground (non-leaf) biomass [kgC] real(r8) :: c_bgw ! below ground (non-fineroot) biomss [kgC] @@ -953,21 +953,21 @@ subroutine init_cohorts(site_in, patch_in, bc_in) ! n.b. that this is the same as currentcohort%n = %initd(pft) &AREA cohort_n = cohort_n*sum(site_in%use_this_pft) endif - hite = EDPftvarcon_inst%hgt_min(pft) + height = EDPftvarcon_inst%hgt_min(pft) ! h, dbh, leafc, n from SP values or from small initial size if (hlm_use_sp .eq. itrue) then ! At this point, we do not know the bc_in values of tlai tsai and htop, ! so this is initializing to an arbitrary value for the very first timestep. ! Not sure if there's a way around this or not. - hite = 0.5_r8 - call calculate_SP_properties(hite, 0.2_r8, 0.1_r8, & + height = 0.5_r8 + call calculate_SP_properties(height, 0.2_r8, 0.1_r8, & patch_in%area, pft, crown_damage, 1, & EDPftvarcon_inst%vcmax25top(pft, 1), c_leaf, dbh, & cohort_n, c_area) else ! calculate the plant diameter from height - call h2d_allom(hite, pft, dbh) + call h2d_allom(height, pft, dbh) ! Calculate the leaf biomass from allometry ! (calculates a maximum first, then applies canopy trim) @@ -996,7 +996,7 @@ subroutine init_cohorts(site_in, patch_in, bc_in) c_area) ! calculate height from diameter - call h_allom(dbh, pft, hite) + call h_allom(dbh, pft, height) else write(fates_log(),*) 'Negative fates_recruit_init_density can only be used in no comp mode' @@ -1083,7 +1083,7 @@ subroutine init_cohorts(site_in, patch_in, bc_in) call prt%CheckInitialConditions() call create_cohort(site_in, patch_in, pft, cohort_n, & - hite, zero_co_age, dbh, prt, efleaf_coh, & + height, zero_co_age, dbh, prt, efleaf_coh, & effnrt_coh, efstem_coh, leaf_status, recruitstatus, & canopy_trim, c_area, 1, crown_damage, site_in%spread, bc_in) diff --git a/main/EDMainMod.F90 b/main/EDMainMod.F90 index 7bbe46cb99..42219fbabb 100644 --- a/main/EDMainMod.F90 +++ b/main/EDMainMod.F90 @@ -359,10 +359,10 @@ subroutine ed_integrate_state_variables(currentSite, bc_in, bc_out ) integer :: el ! Counter for element type (c,n,p,etc) real(r8) :: cohort_biomass_store ! remembers the biomass in the cohort for balance checking real(r8) :: dbh_old ! dbh of plant before daily PRT [cm] - real(r8) :: hite_old ! height of plant before daily PRT [m] + real(r8) :: height_old ! height of plant before daily PRT [m] logical :: is_drought ! logical for if the plant (site) is in a drought state real(r8) :: delta_dbh ! correction for dbh - real(r8) :: delta_hite ! correction for hite + real(r8) :: delta_height ! correction for height real(r8) :: mean_temp logical :: newly_recovered ! If the current loop is dealing with a newly created cohort, which @@ -555,10 +555,10 @@ subroutine ed_integrate_state_variables(currentSite, bc_in, bc_out ) ! If the current diameter of a plant is somehow less than what is consistent ! with what is allometrically consistent with the stuctural biomass, then ! correct the dbh to match. - call EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_hite) + call EvaluateAndCorrectDBH(currentCohort,delta_dbh,delta_height) ! We want to save these values for the newly recovered cohort as well - hite_old = currentCohort%hite + height_old = currentCohort%height dbh_old = currentCohort%dbh ! ----------------------------------------------------------------------------- @@ -642,9 +642,9 @@ subroutine ed_integrate_state_variables(currentSite, bc_in, bc_out ) currentCohort%isnew = .false. ! Update the plant height (if it has grown) - call h_allom(currentCohort%dbh,ft,currentCohort%hite) + call h_allom(currentCohort%dbh,ft,currentCohort%height) - currentCohort%dhdt = (currentCohort%hite-hite_old)/hlm_freq_day + currentCohort%dhdt = (currentCohort%height-height_old)/hlm_freq_day currentCohort%ddbhdt = (currentCohort%dbh-dbh_old)/hlm_freq_day ! Carbon assimilate has been spent at this point diff --git a/main/EDTypesMod.F90 b/main/EDTypesMod.F90 index c9b9a90161..020d26eafd 100644 --- a/main/EDTypesMod.F90 +++ b/main/EDTypesMod.F90 @@ -99,7 +99,7 @@ module EDTypesMod integer, parameter, public :: phen_dstat_moistoff = 1 ! Leaves off due to moisture avail (drought phenology) integer, parameter, public :: phen_dstat_moiston = 2 ! Leaves on due to moisture avail (drought phenology) integer, parameter, public :: phen_dstat_timeon = 3 ! Leaves on due to time exceedance (drought phenology) - integer, parameter, public :: phen_dstat_pshed = 4 ! Leaves partially abscissing (drought phenology) + integer, parameter, public :: phen_dstat_pshed = 4 ! Leaves partially abscissing (drought phenology) ! PATCH FUSION real(r8), parameter, public :: force_patchfuse_min_biomass = 0.005_r8 ! min biomass (kg / m2 patch area) below which to force-fuse patches @@ -107,8 +107,8 @@ module EDTypesMod real(r8), parameter, public :: max_age_of_second_oldest_patch = 200._r8 ! age in years above which to combine all patches ! COHORT FUSION - real(r8), parameter, public :: HITEMAX = 30.0_r8 ! max dbh value used in hgt profile comparison - integer , parameter, public :: N_HITE_BINS = 60 ! no. of hite bins used to distribute LAI + real(r8), parameter, public :: HEIGHTMAX = 30.0_r8 ! max dbh value used in hgt profile comparison + integer , parameter, public :: N_HEIGHT_BINS = 60 ! no. of height bins used to distribute LAI ! COHORT TERMINATION diff --git a/main/FatesHistoryInterfaceMod.F90 b/main/FatesHistoryInterfaceMod.F90 index 0c6ff7c4e6..e76a3f5406 100644 --- a/main/FatesHistoryInterfaceMod.F90 +++ b/main/FatesHistoryInterfaceMod.F90 @@ -2805,9 +2805,9 @@ subroutine update_history_dyn(this,nc,nsites,sites,bc_in) + ccohort%c_area * AREA_INV ! calculate leaf height distribution, assuming leaf area is evenly distributed thru crown depth - call CrownDepth(ccohort%hite,ft,crown_depth) - height_bin_max = get_height_index(ccohort%hite) - height_bin_min = get_height_index(ccohort%hite - crown_depth) + call CrownDepth(ccohort%height,ft,crown_depth) + height_bin_max = get_height_index(ccohort%height) + height_bin_min = get_height_index(ccohort%height - crown_depth) do i_heightbin = height_bin_min, height_bin_max binbottom = ED_val_history_height_bin_edges(i_heightbin) if (i_heightbin .eq. nlevheight) then @@ -2816,8 +2816,8 @@ subroutine update_history_dyn(this,nc,nsites,sites,bc_in) bintop = ED_val_history_height_bin_edges(i_heightbin+1) endif ! what fraction of a cohort's crown is in this height bin? - frac_canopy_in_bin = (min(bintop,ccohort%hite) - & - max(binbottom,ccohort%hite-crown_depth)) / & + frac_canopy_in_bin = (min(bintop,ccohort%height) - & + max(binbottom,ccohort%height-crown_depth)) / & (crown_depth) hio_leaf_height_dist_si_height(io_si,i_heightbin) = & @@ -3154,7 +3154,7 @@ subroutine update_history_dyn(this,nc,nsites,sites,bc_in) ccohort%ddbhdt*ccohort%n / m2_per_ha * m_per_cm hio_ba_weighted_height_si(io_si) = hio_ba_weighted_height_si(io_si) + & - ccohort%hite * & + ccohort%height * & 0.25_r8*pi_const*((dbh/100.0_r8)**2.0_r8)*ccohort%n / m2_per_ha end if @@ -3482,7 +3482,7 @@ subroutine update_history_dyn(this,nc,nsites,sites,bc_in) ccohort%canopy_layer_yesterday * ccohort%n / m2_per_ha hio_ca_weighted_height_si(io_si) = hio_ca_weighted_height_si(io_si) + & - ccohort%hite * ccohort%c_area / m2_per_ha + ccohort%height * ccohort%c_area / m2_per_ha else canlayer hio_nplant_understory_si_scag(io_si,iscag) = hio_nplant_understory_si_scag(io_si,iscag) + ccohort%n / m2_per_ha hio_mortality_understory_si_scag(io_si,iscag) = hio_mortality_understory_si_scag(io_si,iscag) + & diff --git a/main/FatesInventoryInitMod.F90 b/main/FatesInventoryInitMod.F90 index 0141c68fe5..ec099860f1 100644 --- a/main/FatesInventoryInitMod.F90 +++ b/main/FatesInventoryInitMod.F90 @@ -859,7 +859,7 @@ subroutine set_inventory_edcohort_type1(csite,bc_in,css_file_unit,npatches, & ! patch (string) patch id string associated with this cohort ! index (integer) cohort index ! dbh (cm) diameter at breast height - ! height (m) height of the tree + ! height (m) height of the tree ! pft (integer) the plant functional type index (must be consistent with param file) ! n (/m2) The plant number density ! bdead (kgC/plant)The dead biomass per indiv of this cohort (NOT USED) @@ -1033,7 +1033,7 @@ subroutine set_inventory_edcohort_type1(csite,bc_in,css_file_unit,npatches, & temp_cohort%dbh = c_dbh temp_cohort%crowndamage = 1 ! assume undamaged - call h_allom(c_dbh,temp_cohort%pft,temp_cohort%hite) + call h_allom(c_dbh,temp_cohort%pft,temp_cohort%height) temp_cohort%canopy_trim = 1.0_r8 ! Determine the phenology status and the elongation factors. @@ -1190,7 +1190,7 @@ subroutine set_inventory_edcohort_type1(csite,bc_in,css_file_unit,npatches, & call prt_obj%CheckInitialConditions() - call create_cohort(csite, cpatch, temp_cohort%pft, temp_cohort%n, temp_cohort%hite, & + call create_cohort(csite, cpatch, temp_cohort%pft, temp_cohort%n, temp_cohort%height, & temp_cohort%coage, temp_cohort%dbh, & prt_obj, temp_cohort%efleaf_coh, temp_cohort%effnrt_coh, & temp_cohort%efstem_coh, temp_cohort%status_coh, rstatus, & @@ -1268,7 +1268,7 @@ subroutine write_inventory_type1(currentSite) open(unit=css_file_out,file=trim(css_name_out), status='UNKNOWN',action='WRITE',form='FORMATTED') write(pss_file_out,*) 'time patch trk age area water fsc stsc stsl ssc psc msn fsn' - write(css_file_out,*) 'time patch cohort dbh hite pft nplant bdead alive Avgrg' + write(css_file_out,*) 'time patch cohort dbh height pft nplant bdead alive Avgrg' ipatch=0 currentpatch => currentSite%youngest_patch diff --git a/main/FatesRestartInterfaceMod.F90 b/main/FatesRestartInterfaceMod.F90 index 55016e9acb..2961e0900a 100644 --- a/main/FatesRestartInterfaceMod.F90 +++ b/main/FatesRestartInterfaceMod.F90 @@ -2298,7 +2298,7 @@ subroutine set_restart_vectors(this,nc,nsites,sites) rio_size_class_lasttimestep(io_idx_co) = ccohort%size_class_lasttimestep rio_dbh_co(io_idx_co) = ccohort%dbh rio_coage_co(io_idx_co) = ccohort%coage - rio_height_co(io_idx_co) = ccohort%hite + rio_height_co(io_idx_co) = ccohort%height rio_g_sb_laweight_co(io_idx_co)= ccohort%g_sb_laweight rio_nplant_co(io_idx_co) = ccohort%n rio_gpp_acc_co(io_idx_co) = ccohort%gpp_acc @@ -3210,7 +3210,7 @@ subroutine get_restart_vectors(this, nc, nsites, sites) ccohort%dbh = rio_dbh_co(io_idx_co) ccohort%coage = rio_coage_co(io_idx_co) ccohort%g_sb_laweight= rio_g_sb_laweight_co(io_idx_co) - ccohort%hite = rio_height_co(io_idx_co) + ccohort%height = rio_height_co(io_idx_co) ccohort%n = rio_nplant_co(io_idx_co) ccohort%gpp_acc = rio_gpp_acc_co(io_idx_co) ccohort%npp_acc = rio_npp_acc_co(io_idx_co) diff --git a/parteh/PRTAllometricCarbonMod.F90 b/parteh/PRTAllometricCarbonMod.F90 index c16d3541e6..8a732b24c7 100644 --- a/parteh/PRTAllometricCarbonMod.F90 +++ b/parteh/PRTAllometricCarbonMod.F90 @@ -378,7 +378,7 @@ subroutine DailyPRTAllometricCarbon(this,phase) integer :: nsteps ! number of sub-steps integer :: istep ! current substep index real(r8) :: totalC ! total carbon allocated over alometric growth step - real(r8) :: hite_out ! dummy height variable + real(r8) :: height_out ! dummy height variable integer :: i_var ! index for iterating state variables integer :: i_age ! index for iterating leaf ages