module clmtypeInitMod 1,4 !----------------------------------------------------------------------- !BOP ! ! !MODULE: clmtypeInitMod ! ! !DESCRIPTION: ! Allocate clmtype components and initialize them to signaling NaN. ! ! !USES: use shr_kind_mod, only : r8 => shr_kind_r8 use nanMod , only : nan, bigint use clmtype use clm_varpar , only : maxpatch_pft, nlevsno, nlevgrnd, numrad, nlevlak, & numpft, ndst, nvoc, nlevurb, nlevsoi ! ! !PUBLIC TYPES: implicit none save ! ! !PUBLIC MEMBER FUNCTIONS: public :: initClmtype ! ! !REVISION HISTORY: ! Created by Peter Thornton and Mariana Vertenstein ! Modified by Colette L. Heald (05/06) for VOC emission factors ! 3/17/08 David Lawrence, changed nlevsoi to nlevgrnd where appropriate ! ! !PRIVATE MEMBER FUNCTIONS: private :: init_pft_type private :: init_column_type private :: init_landunit_type private :: init_gridcell_type private :: init_energy_balance_type private :: init_water_balance_type private :: init_pft_ecophys_constants #if (defined CNDV) private :: init_pft_DGVMecophys_constants #endif private :: init_pft_pstate_type private :: init_pft_epv_type #if (defined CNDV) private :: init_pft_pdgvstate_type #endif private :: init_pft_vstate_type private :: init_pft_estate_type private :: init_pft_wstate_type private :: init_pft_cstate_type private :: init_pft_nstate_type private :: init_pft_eflux_type private :: init_pft_mflux_type private :: init_pft_wflux_type private :: init_pft_cflux_type private :: init_pft_nflux_type private :: init_pft_vflux_type private :: init_pft_dflux_type private :: init_pft_depvd_type private :: init_column_pstate_type private :: init_column_estate_type private :: init_column_wstate_type private :: init_column_cstate_type private :: init_column_nstate_type private :: init_column_eflux_type private :: init_column_wflux_type private :: init_column_cflux_type private :: init_column_nflux_type private :: init_landunit_pstate_type private :: init_landunit_eflux_type private :: init_gridcell_pstate_type private :: init_gridcell_efstate_type private :: init_gridcell_wflux_type !EOP !---------------------------------------------------- contains !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: initClmtype ! ! !INTERFACE: subroutine initClmtype() 1,97 ! ! !DESCRIPTION: ! Initialize clmtype components to signaling nan ! The following clmtype components should NOT be initialized here ! since they are set in routine clm_map which is called before this ! routine is invoked ! *%area, *%wt, *%wtlnd, *%wtxy, *%ixy, *%jxy, *%mxy, %snindex ! *%ifspecial, *%ityplun, *%itype ! *%pfti, *%pftf, *%pftn ! *%coli, *%colf, *%coln ! *%luni, *%lunf, *%lunn ! ! !USES: use decompMod , only : get_proc_bounds, get_proc_global ! ! !ARGUMENTS: implicit none ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP ! ! LOCAL VARAIBLES: integer :: begp, endp ! per-proc beginning and ending pft indices integer :: begc, endc ! per-proc beginning and ending column indices integer :: begl, endl ! per-proc beginning and ending landunit indices integer :: begg, endg ! per-proc gridcell ending gridcell indices integer :: numg ! total number of gridcells across all processors integer :: numl ! total number of landunits across all processors integer :: numc ! total number of columns across all processors integer :: nump ! total number of pfts across all processors !------------------------------------------------------------------------ ! Determine necessary indices call get_proc_bounds(begg, endg, begl, endl, begc, endc, begp, endp) call get_proc_global(numg, numl, numc, nump) call init_pft_type (begp, endp, clm3%g%l%c%p) call init_column_type (begc, endc, clm3%g%l%c) call init_landunit_type(begl, endl, clm3%g%l) call init_gridcell_type(begg, endg, clm3%g) ! pft ecophysiological constants call init_pft_ecophys_constants() #if (defined CNDV) ! pft DGVM-specific ecophysiological constants call init_pft_DGVMecophys_constants() #endif ! energy balance structures (all levels) call init_energy_balance_type(begp, endp, clm3%g%l%c%p%pebal) call init_energy_balance_type(begc, endc, clm3%g%l%c%cebal) call init_energy_balance_type(begl, endl, clm3%g%l%lebal) call init_energy_balance_type(begg, endg, clm3%g%gebal) call init_energy_balance_type(1, 1, clm3%mebal) ! water balance structures (all levels) call init_water_balance_type(begp, endp, clm3%g%l%c%p%pwbal) call init_water_balance_type(begc, endc, clm3%g%l%c%cwbal) call init_water_balance_type(begl, endl, clm3%g%l%lwbal) call init_water_balance_type(begg, endg, clm3%g%gwbal) call init_water_balance_type(1, 1, clm3%mwbal) ! carbon balance structures (pft and column levels) call init_carbon_balance_type(begp, endp, clm3%g%l%c%p%pcbal) call init_carbon_balance_type(begc, endc, clm3%g%l%c%ccbal) ! nitrogen balance structures (pft and column levels) call init_nitrogen_balance_type(begp, endp, clm3%g%l%c%p%pnbal) call init_nitrogen_balance_type(begc, endc, clm3%g%l%c%cnbal) ! pft physical state variables at pft level and averaged to the column call init_pft_pstate_type(begp, endp, clm3%g%l%c%p%pps) call init_pft_pstate_type(begc, endc, clm3%g%l%c%cps%pps_a) ! pft ecophysiological variables (only at the pft level for now) call init_pft_epv_type(begp, endp, clm3%g%l%c%p%pepv) #if (defined CNDV) ! pft DGVM state variables at pft level and averaged to column call init_pft_pdgvstate_type(begp, endp, clm3%g%l%c%p%pdgvs) #endif #if (defined CNDV) call init_pft_pdgvstate_type(begc, endc, clm3%g%l%c%cdgvs%pdgvs_a) #endif call init_pft_vstate_type(begp, endp, clm3%g%l%c%p%pvs) ! pft energy state variables at the pft level and averaged to the column call init_pft_estate_type(begp, endp, clm3%g%l%c%p%pes) call init_pft_estate_type(begc, endc, clm3%g%l%c%ces%pes_a) ! pft water state variables at the pft level and averaged to the column call init_pft_wstate_type(begp, endp, clm3%g%l%c%p%pws) call init_pft_wstate_type(begc, endc, clm3%g%l%c%cws%pws_a) ! pft carbon state variables at the pft level and averaged to the column call init_pft_cstate_type(begp, endp, clm3%g%l%c%p%pcs) call init_pft_cstate_type(begc, endc, clm3%g%l%c%ccs%pcs_a) #if (defined C13) ! 4/14/05: PET ! Adding isotope code call init_pft_cstate_type(begp, endp, clm3%g%l%c%p%pc13s) call init_pft_cstate_type(begc, endc, clm3%g%l%c%cc13s%pcs_a) #endif ! pft nitrogen state variables at the pft level and averaged to the column call init_pft_nstate_type(begp, endp, clm3%g%l%c%p%pns) call init_pft_nstate_type(begc, endc, clm3%g%l%c%cns%pns_a) ! pft energy flux variables at pft level and averaged to column call init_pft_eflux_type(begp, endp, clm3%g%l%c%p%pef) call init_pft_eflux_type(begc, endc, clm3%g%l%c%cef%pef_a) ! pft momentum flux variables at pft level and averaged to the column call init_pft_mflux_type(begp, endp, clm3%g%l%c%p%pmf) call init_pft_mflux_type(begc, endc, clm3%g%l%c%cmf%pmf_a) ! pft water flux variables call init_pft_wflux_type(begp, endp, clm3%g%l%c%p%pwf) call init_pft_wflux_type(begc, endc, clm3%g%l%c%cwf%pwf_a) ! pft carbon flux variables at pft level and averaged to column call init_pft_cflux_type(begp, endp, clm3%g%l%c%p%pcf) call init_pft_cflux_type(begc, endc, clm3%g%l%c%ccf%pcf_a) #if (defined C13) ! 4/14/05: PET ! Adding isotope code call init_pft_cflux_type(begp, endp, clm3%g%l%c%p%pc13f) call init_pft_cflux_type(begc, endc, clm3%g%l%c%cc13f%pcf_a) #endif ! pft nitrogen flux variables at pft level and averaged to column call init_pft_nflux_type(begp, endp, clm3%g%l%c%p%pnf) call init_pft_nflux_type(begc, endc, clm3%g%l%c%cnf%pnf_a) ! pft VOC flux variables at pft level and averaged to column call init_pft_vflux_type(begp, endp, clm3%g%l%c%p%pvf) call init_pft_vflux_type(begc, endc, clm3%g%l%c%cvf%pvf_a) ! gridcell VOC emission factors (heald, 05/06) call init_gridcell_efstate_type(begg, endg, clm3%g%gve) ! pft dust flux variables at pft level and averaged to column call init_pft_dflux_type(begp, endp, clm3%g%l%c%p%pdf) call init_pft_dflux_type(begc, endc, clm3%g%l%c%cdf%pdf_a) ! pft dry dep velocity variables at pft level and averaged to column call init_pft_depvd_type(begp, endp, clm3%g%l%c%p%pdd) ! column physical state variables at column level and averaged to ! the landunit and gridcell and model call init_column_pstate_type(begc, endc, clm3%g%l%c%cps) call init_column_pstate_type(begl, endl, clm3%g%l%lps%cps_a) call init_column_pstate_type(begg, endg, clm3%g%gps%cps_a) call init_column_pstate_type(1, 1, clm3%mps%cps_a) ! column energy state variables at column level and averaged to ! the landunit and gridcell and model call init_column_estate_type(begc, endc, clm3%g%l%c%ces) call init_column_estate_type(begl, endl, clm3%g%l%les%ces_a) call init_column_estate_type(begg, endg, clm3%g%ges%ces_a) call init_column_estate_type(1, 1, clm3%mes%ces_a) ! column water state variables at column level and averaged to ! the landunit and gridcell and model call init_column_wstate_type(begc, endc, clm3%g%l%c%cws) call init_column_wstate_type(begl, endl, clm3%g%l%lws%cws_a) call init_column_wstate_type(begg, endg, clm3%g%gws%cws_a) call init_column_wstate_type(1, 1, clm3%mws%cws_a) ! column carbon state variables at column level and averaged to ! the landunit and gridcell and model call init_column_cstate_type(begc, endc, clm3%g%l%c%ccs) call init_column_cstate_type(begl, endl, clm3%g%l%lcs%ccs_a) call init_column_cstate_type(begg, endg, clm3%g%gcs%ccs_a) call init_column_cstate_type(1, 1, clm3%mcs%ccs_a) #if (defined C13) ! 4/14/05: PET ! Adding isotope code call init_column_cstate_type(begc, endc, clm3%g%l%c%cc13s) #endif ! column nitrogen state variables at column level and averaged to ! the landunit and gridcell and model call init_column_nstate_type(begc, endc, clm3%g%l%c%cns) call init_column_nstate_type(begl, endl, clm3%g%l%lns%cns_a) call init_column_nstate_type(begg, endg, clm3%g%gns%cns_a) call init_column_nstate_type(1, 1, clm3%mns%cns_a) ! column energy flux variables at column level and averaged to ! the landunit and gridcell and model call init_column_eflux_type(begc, endc, clm3%g%l%c%cef) call init_column_eflux_type(begl, endl, clm3%g%l%lef%cef_a) call init_column_eflux_type(begg, endg, clm3%g%gef%cef_a) call init_column_eflux_type(1, 1, clm3%mef%cef_a) ! column water flux variables at column level and averaged to ! landunit, gridcell and model level call init_column_wflux_type(begc, endc, clm3%g%l%c%cwf) call init_column_wflux_type(begl, endl, clm3%g%l%lwf%cwf_a) call init_column_wflux_type(begg, endg, clm3%g%gwf%cwf_a) call init_column_wflux_type(1, 1, clm3%mwf%cwf_a) ! column carbon flux variables at column level call init_column_cflux_type(begc, endc, clm3%g%l%c%ccf) #if (defined C13) ! 4/14/05: PET ! Adding isotope code call init_column_cflux_type(begc, endc, clm3%g%l%c%cc13f) #endif ! column nitrogen flux variables at column level call init_column_nflux_type(begc, endc, clm3%g%l%c%cnf) ! land unit physical state variables call init_landunit_pstate_type(begl, endl, clm3%g%l%lps) ! land unit energy flux variables call init_landunit_eflux_type(begl, endl, clm3%g%l%lef) #if (defined CNDV) ! gridcell DGVM variables call init_gridcell_dgvstate_type(begg, endg, clm3%g%gdgvs) #endif ! gridcell physical state variables call init_gridcell_pstate_type(begg, endg, clm3%g%gps) ! gridcell: water flux variables call init_gridcell_wflux_type(begg, endg, clm3%g%gwf) ! gridcell: energy flux variables call init_gridcell_eflux_type(begg, endg, clm3%g%gef) ! gridcell: water state variables call init_gridcell_wstate_type(begg, endg, clm3%g%gws) ! gridcell: energy state variables call init_gridcell_estate_type(begg, endg, clm3%g%ges) end subroutine initClmtype !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_type ! ! !INTERFACE: subroutine init_pft_type (beg, end, p) 1 ! ! !DESCRIPTION: ! Initialize components of pft_type structure ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(pft_type), intent(inout):: p ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(p%gridcell(beg:end),p%wtgcell(beg:end)) allocate(p%landunit(beg:end),p%wtlunit(beg:end)) allocate(p%column (beg:end),p%wtcol (beg:end)) allocate(p%itype(beg:end)) allocate(p%mxy(beg:end)) end subroutine init_pft_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_type ! ! !INTERFACE: subroutine init_column_type (beg, end, c) 1 ! ! !DESCRIPTION: ! Initialize components of column_type structure ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(column_type), intent(inout):: c ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(c%gridcell(beg:end),c%wtgcell(beg:end)) allocate(c%landunit(beg:end),c%wtlunit(beg:end)) allocate(c%pfti(beg:end),c%pftf(beg:end),c%npfts(beg:end)) allocate(c%itype(beg:end)) end subroutine init_column_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_landunit_type ! ! !INTERFACE: subroutine init_landunit_type (beg, end,l) 1 ! ! !DESCRIPTION: ! Initialize components of landunit_type structure ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(landunit_type), intent(inout):: l ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(l%gridcell(beg:end),l%wtgcell(beg:end)) allocate(l%coli(beg:end),l%colf(beg:end),l%ncolumns(beg:end)) allocate(l%pfti(beg:end),l%pftf(beg:end),l%npfts (beg:end)) allocate(l%itype(beg:end)) allocate(l%ifspecial(beg:end)) allocate(l%lakpoi(beg:end)) allocate(l%urbpoi(beg:end)) allocate(l%glcmecpoi(beg:end)) ! MV - these should be moved to landunit physical state -MV allocate(l%canyon_hwr(beg:end)) allocate(l%wtroad_perv(beg:end)) allocate(l%ht_roof(beg:end)) allocate(l%wtlunit_roof(beg:end)) allocate(l%wind_hgt_canyon(beg:end)) allocate(l%z_0_town(beg:end)) allocate(l%z_d_town(beg:end)) l%canyon_hwr(beg:end) = nan l%wtroad_perv(beg:end) = nan l%ht_roof(beg:end) = nan l%wtlunit_roof(beg:end) = nan l%wind_hgt_canyon(beg:end) = nan l%z_0_town(beg:end) = nan l%z_d_town(beg:end) = nan l%glcmecpoi(beg:end) = .false. end subroutine init_landunit_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_type ! ! !INTERFACE: subroutine init_gridcell_type (beg, end,g) 1 ! ! !DESCRIPTION: ! Initialize components of gridcell_type structure ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(gridcell_type), intent(inout):: g ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(g%luni(beg:end),g%lunf(beg:end),g%nlandunits(beg:end)) allocate(g%coli(beg:end),g%colf(beg:end),g%ncolumns (beg:end)) allocate(g%pfti(beg:end),g%pftf(beg:end),g%npfts (beg:end)) allocate(g%gindex(beg:end)) allocate(g%area(beg:end)) allocate(g%lat(beg:end)) allocate(g%lon(beg:end)) allocate(g%latdeg(beg:end)) allocate(g%londeg(beg:end)) allocate(g%gindex_a(beg:end)) allocate(g%lat_a(beg:end)) allocate(g%lon_a(beg:end)) allocate(g%latdeg_a(beg:end)) allocate(g%londeg_a(beg:end)) allocate(g%gris_mask(beg:end)) allocate(g%gris_area(beg:end)) allocate(g%aais_mask(beg:end)) allocate(g%aais_area(beg:end)) g%gris_mask(beg:end) = nan g%gris_area(beg:end) = nan g%aais_mask(beg:end) = nan g%aais_area(beg:end) = nan end subroutine init_gridcell_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_energy_balance_type ! ! !INTERFACE: subroutine init_energy_balance_type(beg, end, ebal) 5 ! ! !DESCRIPTION: ! Initialize energy balance variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(energy_balance_type), intent(inout):: ebal ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(ebal%errsoi(beg:end)) allocate(ebal%errseb(beg:end)) allocate(ebal%errsol(beg:end)) allocate(ebal%errlon(beg:end)) ebal%errsoi(beg:end) = nan ebal%errseb(beg:end) = nan ebal%errsol(beg:end) = nan ebal%errlon(beg:end) = nan end subroutine init_energy_balance_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_water_balance_type ! ! !INTERFACE: subroutine init_water_balance_type(beg, end, wbal) 5 ! ! !DESCRIPTION: ! Initialize water balance variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(water_balance_type), intent(inout):: wbal ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(wbal%begwb(beg:end)) allocate(wbal%endwb(beg:end)) allocate(wbal%errh2o(beg:end)) wbal%begwb(beg:end) = nan wbal%endwb(beg:end) = nan wbal%errh2o(beg:end) = nan end subroutine init_water_balance_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_carbon_balance_type ! ! !INTERFACE: subroutine init_carbon_balance_type(beg, end, cbal) 2 ! ! !DESCRIPTION: ! Initialize carbon balance variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(carbon_balance_type), intent(inout):: cbal ! ! !REVISION HISTORY: ! Created by Peter Thornton, 12/11/2003 ! !EOP !------------------------------------------------------------------------ allocate(cbal%begcb(beg:end)) allocate(cbal%endcb(beg:end)) allocate(cbal%errcb(beg:end)) cbal%begcb(beg:end) = nan cbal%endcb(beg:end) = nan cbal%errcb(beg:end) = nan end subroutine init_carbon_balance_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_nitrogen_balance_type ! ! !INTERFACE: subroutine init_nitrogen_balance_type(beg, end, nbal) 2 ! ! !DESCRIPTION: ! Initialize nitrogen balance variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type(nitrogen_balance_type), intent(inout):: nbal ! ! !REVISION HISTORY: ! Created by Peter Thornton, 12/11/2003 ! !EOP !------------------------------------------------------------------------ allocate(nbal%begnb(beg:end)) allocate(nbal%endnb(beg:end)) allocate(nbal%errnb(beg:end)) nbal%begnb(beg:end) = nan nbal%endnb(beg:end) = nan nbal%errnb(beg:end) = nan end subroutine init_nitrogen_balance_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_ecophys_constants ! ! !INTERFACE: subroutine init_pft_ecophys_constants() 1 ! ! !DESCRIPTION: ! Initialize pft physical state ! ! !ARGUMENTS: implicit none ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pftcon%noveg(0:numpft)) allocate(pftcon%tree(0:numpft)) allocate(pftcon%smpso(0:numpft)) allocate(pftcon%smpsc(0:numpft)) allocate(pftcon%fnitr(0:numpft)) allocate(pftcon%foln(0:numpft)) allocate(pftcon%dleaf(0:numpft)) allocate(pftcon%c3psn(0:numpft)) allocate(pftcon%vcmx25(0:numpft)) allocate(pftcon%mp(0:numpft)) allocate(pftcon%qe25(0:numpft)) allocate(pftcon%xl(0:numpft)) allocate(pftcon%rhol(0:numpft,numrad)) allocate(pftcon%rhos(0:numpft,numrad)) allocate(pftcon%taul(0:numpft,numrad)) allocate(pftcon%taus(0:numpft,numrad)) allocate(pftcon%z0mr(0:numpft)) allocate(pftcon%displar(0:numpft)) allocate(pftcon%roota_par(0:numpft)) allocate(pftcon%rootb_par(0:numpft)) allocate(pftcon%sla(0:numpft)) allocate(pftcon%slatop(0:numpft)) allocate(pftcon%dsladlai(0:numpft)) allocate(pftcon%leafcn(0:numpft)) allocate(pftcon%flnr(0:numpft)) allocate(pftcon%woody(0:numpft)) allocate(pftcon%lflitcn(0:numpft)) allocate(pftcon%frootcn(0:numpft)) allocate(pftcon%livewdcn(0:numpft)) allocate(pftcon%deadwdcn(0:numpft)) allocate(pftcon%froot_leaf(0:numpft)) allocate(pftcon%stem_leaf(0:numpft)) allocate(pftcon%croot_stem(0:numpft)) allocate(pftcon%flivewd(0:numpft)) allocate(pftcon%fcur(0:numpft)) allocate(pftcon%lf_flab(0:numpft)) allocate(pftcon%lf_fcel(0:numpft)) allocate(pftcon%lf_flig(0:numpft)) allocate(pftcon%fr_flab(0:numpft)) allocate(pftcon%fr_fcel(0:numpft)) allocate(pftcon%fr_flig(0:numpft)) allocate(pftcon%dw_fcel(0:numpft)) allocate(pftcon%dw_flig(0:numpft)) allocate(pftcon%leaf_long(0:numpft)) allocate(pftcon%evergreen(0:numpft)) allocate(pftcon%stress_decid(0:numpft)) allocate(pftcon%season_decid(0:numpft)) allocate(pftcon%resist(0:numpft)) allocate(pftcon%dwood(0:numpft)) pftcon%noveg(:) = bigint pftcon%tree(:) = bigint pftcon%smpso(:) = nan pftcon%smpsc(:) = nan pftcon%fnitr(:) = nan pftcon%foln(:) = nan pftcon%dleaf(:) = nan pftcon%c3psn(:) = nan pftcon%vcmx25(:) = nan pftcon%mp(:) = nan pftcon%qe25(:) = nan pftcon%xl(:) = nan pftcon%rhol(:,:numrad) = nan pftcon%rhos(:,:numrad) = nan pftcon%taul(:,:numrad) = nan pftcon%taus(:,:numrad) = nan pftcon%z0mr(:) = nan pftcon%displar(:) = nan pftcon%roota_par(:) = nan pftcon%rootb_par(:) = nan pftcon%sla(:) = nan pftcon%slatop(:) = nan pftcon%dsladlai(:) = nan pftcon%leafcn(:) = nan pftcon%flnr(:) = nan pftcon%woody(:) = nan pftcon%lflitcn(:) = nan pftcon%frootcn(:) = nan pftcon%livewdcn(:) = nan pftcon%deadwdcn(:) = nan pftcon%froot_leaf(:) = nan pftcon%stem_leaf(:) = nan pftcon%croot_stem(:) = nan pftcon%flivewd(:) = nan pftcon%fcur(:) = nan pftcon%lf_flab(:) = nan pftcon%lf_fcel(:) = nan pftcon%lf_flig(:) = nan pftcon%fr_flab(:) = nan pftcon%fr_fcel(:) = nan pftcon%fr_flig(:) = nan pftcon%dw_fcel(:) = nan pftcon%dw_flig(:) = nan pftcon%leaf_long(:) = nan pftcon%evergreen(:) = nan pftcon%stress_decid(:) = nan pftcon%season_decid(:) = nan pftcon%resist(:) = nan pftcon%dwood(:) = nan end subroutine init_pft_ecophys_constants #if (defined CNDV) !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_DGVMecophys_constants ! ! !INTERFACE: subroutine init_pft_DGVMecophys_constants() 1 ! ! !DESCRIPTION: ! Initialize pft physical state ! ! !ARGUMENTS: implicit none ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(dgv_pftcon%crownarea_max(0:numpft)) allocate(dgv_pftcon%tcmin(0:numpft)) allocate(dgv_pftcon%tcmax(0:numpft)) allocate(dgv_pftcon%gddmin(0:numpft)) allocate(dgv_pftcon%twmax(0:numpft)) allocate(dgv_pftcon%reinickerp(0:numpft)) allocate(dgv_pftcon%allom1(0:numpft)) allocate(dgv_pftcon%allom2(0:numpft)) allocate(dgv_pftcon%allom3(0:numpft)) dgv_pftcon%crownarea_max(:) = nan dgv_pftcon%tcmin(:) = nan dgv_pftcon%tcmax(:) = nan dgv_pftcon%gddmin(:) = nan dgv_pftcon%twmax(:) = nan dgv_pftcon%reinickerp(:) = nan dgv_pftcon%allom1(:) = nan dgv_pftcon%allom2(:) = nan dgv_pftcon%allom3(:) = nan end subroutine init_pft_DGVMecophys_constants #endif !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_pstate_type ! ! !INTERFACE: subroutine init_pft_pstate_type(beg, end, pps) 2,2 ! ! !DESCRIPTION: ! Initialize pft physical state ! ! !USES: use clm_varcon, only : spval #if (defined CASA) use CASAMod , only : npools, nresp_pools, nlive, npool_types #endif ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_pstate_type), intent(inout):: pps ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pps%frac_veg_nosno(beg:end)) allocate(pps%frac_veg_nosno_alb(beg:end)) allocate(pps%emv(beg:end)) allocate(pps%z0mv(beg:end)) allocate(pps%z0hv(beg:end)) allocate(pps%z0qv(beg:end)) allocate(pps%rootfr(beg:end,1:nlevgrnd)) allocate(pps%rootr(beg:end,1:nlevgrnd)) allocate(pps%rresis(beg:end,1:nlevgrnd)) allocate(pps%dewmx(beg:end)) allocate(pps%rssun(beg:end)) allocate(pps%rssha(beg:end)) allocate(pps%laisun(beg:end)) allocate(pps%laisha(beg:end)) allocate(pps%btran(beg:end)) allocate(pps%fsun(beg:end)) allocate(pps%tlai(beg:end)) allocate(pps%tsai(beg:end)) allocate(pps%elai(beg:end)) allocate(pps%esai(beg:end)) allocate(pps%fwet(beg:end)) allocate(pps%fdry(beg:end)) allocate(pps%dt_veg(beg:end)) allocate(pps%htop(beg:end)) allocate(pps%hbot(beg:end)) allocate(pps%z0m(beg:end)) allocate(pps%displa(beg:end)) allocate(pps%albd(beg:end,1:numrad)) allocate(pps%albi(beg:end,1:numrad)) allocate(pps%fabd(beg:end,1:numrad)) allocate(pps%fabi(beg:end,1:numrad)) allocate(pps%ftdd(beg:end,1:numrad)) allocate(pps%ftid(beg:end,1:numrad)) allocate(pps%ftii(beg:end,1:numrad)) allocate(pps%u10(beg:end)) allocate(pps%fv(beg:end)) allocate(pps%ram1(beg:end)) allocate(pps%vds(beg:end)) allocate(pps%slasun(beg:end)) allocate(pps%slasha(beg:end)) allocate(pps%lncsun(beg:end)) allocate(pps%lncsha(beg:end)) allocate(pps%vcmxsun(beg:end)) allocate(pps%vcmxsha(beg:end)) allocate(pps%gdir(beg:end)) allocate(pps%omega(beg:end,1:numrad)) allocate(pps%eff_kid(beg:end,1:numrad)) allocate(pps%eff_kii(beg:end,1:numrad)) allocate(pps%sun_faid(beg:end,1:numrad)) allocate(pps%sun_faii(beg:end,1:numrad)) allocate(pps%sha_faid(beg:end,1:numrad)) allocate(pps%sha_faii(beg:end,1:numrad)) allocate(pps%forc_hgt_u_pft(beg:end)) allocate(pps%forc_hgt_t_pft(beg:end)) allocate(pps%forc_hgt_q_pft(beg:end)) ! 4/14/05: PET ! Adding isotope code allocate(pps%cisun(beg:end)) allocate(pps%cisha(beg:end)) #if (defined C13) allocate(pps%alphapsnsun(beg:end)) allocate(pps%alphapsnsha(beg:end)) #endif ! heald: added from CASA definition allocate(pps%sandfrac(beg:end)) allocate(pps%clayfrac(beg:end)) pps%sandfrac(beg:end) = nan pps%clayfrac(beg:end) = nan allocate(pps%mlaidiff(beg:end)) allocate(pps%rb1(beg:end)) allocate(pps%annlai(12,beg:end)) pps%mlaidiff(beg:end) = nan pps%rb1(beg:end) = nan pps%annlai(:,:) = nan #if (defined CASA) allocate(pps%Closs(beg:end,npools)) ! C lost to atm allocate(pps%Ctrans(beg:end,npool_types)) ! C transfers out of pool types allocate(pps%Resp_C(beg:end,npools)) allocate(pps%Tpool_C(beg:end,npools))! Total C pool size allocate(pps%eff(beg:end,nresp_pools)) allocate(pps%frac_donor(beg:end,nresp_pools)) allocate(pps%livefr(beg:end,nlive)) !live fraction allocate(pps%pet(beg:end)) !potential evaporation (mm h2o/s) allocate(pps%co2flux(beg:end)) ! net CO2 flux (g C/m2/sec) [+= atm] allocate(pps%fnpp(beg:end)) ! NPP (g C/m2/sec) allocate(pps%soilt(beg:end)) !soil temp for top 30cm allocate(pps%smoist(beg:end)) !soil moisture for top 30cm allocate(pps%sz(beg:end)) allocate(pps%watopt(beg:end)) allocate(pps%watdry(beg:end)) allocate(pps%soiltc(beg:end)) !soil temp for entire column allocate(pps%smoistc(beg:end)) !soil moisture for entire column allocate(pps%szc(beg:end)) allocate(pps%watoptc(beg:end)) allocate(pps%watdryc(beg:end)) allocate(pps%Wlim(beg:end)) allocate(pps%litterscalar(beg:end)) allocate(pps%rootlitscalar(beg:end)) allocate(pps%stressCD(beg:end)) allocate(pps%excessC(beg:end)) ! excess Carbon (gC/m2/timestep) allocate(pps%bgtemp(beg:end)) allocate(pps%bgmoist(beg:end)) allocate(pps%plai(beg:end)) ! prognostic LAI (m2 leaf/m2 ground) allocate(pps%Cflux(beg:end)) allocate(pps%XSCpool(beg:end)) allocate(pps%tday(beg:end)) ! daily accumulated temperature (deg C) allocate(pps%tdayavg(beg:end)) ! daily averaged temperature (deg C) allocate(pps%tcount(beg:end)) ! counter for daily avg temp allocate(pps%degday(beg:end)) ! accumulated degree days (deg C) allocate(pps%ndegday(beg:end)) ! counter for number of degree days allocate(pps%stressT(beg:end)) allocate(pps%stressW(beg:end)) ! water stress function for leaf loss allocate(pps%iseabeg(beg:end)) ! index for start of growing season allocate(pps%nstepbeg(beg:end)) ! nstep at start of growing season allocate(pps%lgrow(beg:end)) ! growing season index (0 or 1) to be ! passed daily to CASA to get NPP #if (defined CLAMP) ! Summary variables added for the C-LAMP Experiments allocate(pps%casa_agnpp(beg:end)) allocate(pps%casa_ar(beg:end)) allocate(pps%casa_bgnpp(beg:end)) allocate(pps%casa_cwdc(beg:end)) allocate(pps%casa_cwdc_hr(beg:end)) allocate(pps%casa_cwdc_loss(beg:end)) allocate(pps%casa_frootc(beg:end)) allocate(pps%casa_frootc_alloc(beg:end)) allocate(pps%casa_frootc_loss(beg:end)) allocate(pps%casa_gpp(beg:end)) allocate(pps%casa_hr(beg:end)) allocate(pps%casa_leafc(beg:end)) allocate(pps%casa_leafc_alloc(beg:end)) allocate(pps%casa_leafc_loss(beg:end)) allocate(pps%casa_litterc(beg:end)) allocate(pps%casa_litterc_hr(beg:end)) allocate(pps%casa_litterc_loss(beg:end)) allocate(pps%casa_nee(beg:end)) allocate(pps%casa_nep(beg:end)) allocate(pps%casa_npp(beg:end)) allocate(pps%casa_soilc(beg:end)) allocate(pps%casa_soilc_hr(beg:end)) allocate(pps%casa_soilc_loss(beg:end)) allocate(pps%casa_woodc(beg:end)) allocate(pps%casa_woodc_alloc(beg:end)) allocate(pps%casa_woodc_loss(beg:end)) #endif #endif pps%frac_veg_nosno(beg:end) = bigint pps%frac_veg_nosno_alb(beg:end) = 0 pps%emv(beg:end) = nan pps%z0mv(beg:end) = nan pps%z0hv(beg:end) = nan pps%z0qv(beg:end) = nan pps%rootfr(beg:end,:nlevgrnd) = spval pps%rootr (beg:end,:nlevgrnd) = spval pps%rresis(beg:end,:nlevgrnd) = spval pps%dewmx(beg:end) = nan pps%rssun(beg:end) = nan pps%rssha(beg:end) = nan pps%laisun(beg:end) = nan pps%laisha(beg:end) = nan pps%btran(beg:end) = nan pps%fsun(beg:end) = spval pps%tlai(beg:end) = 0._r8 pps%tsai(beg:end) = 0._r8 pps%elai(beg:end) = 0._r8 pps%esai(beg:end) = 0._r8 pps%fwet(beg:end) = nan pps%fdry(beg:end) = nan pps%dt_veg(beg:end) = nan pps%htop(beg:end) = 0._r8 pps%hbot(beg:end) = 0._r8 pps%z0m(beg:end) = nan pps%displa(beg:end) = nan pps%albd(beg:end,:numrad) = nan pps%albi(beg:end,:numrad) = nan pps%fabd(beg:end,:numrad) = nan pps%fabi(beg:end,:numrad) = nan pps%ftdd(beg:end,:numrad) = nan pps%ftid(beg:end,:numrad) = nan pps%ftii(beg:end,:numrad) = nan pps%u10(beg:end) = nan pps%fv(beg:end) = nan pps%ram1(beg:end) = nan pps%vds(beg:end) = nan pps%slasun(beg:end) = nan pps%slasha(beg:end) = nan pps%lncsun(beg:end) = nan pps%lncsha(beg:end) = nan pps%vcmxsun(beg:end) = nan pps%vcmxsha(beg:end) = nan pps%gdir(beg:end) = nan pps%omega(beg:end,1:numrad) = nan pps%eff_kid(beg:end,1:numrad) = nan pps%eff_kii(beg:end,1:numrad) = nan pps%sun_faid(beg:end,1:numrad) = nan pps%sun_faii(beg:end,1:numrad) = nan pps%sha_faid(beg:end,1:numrad) = nan pps%sha_faii(beg:end,1:numrad) = nan pps%forc_hgt_u_pft(beg:end) = nan pps%forc_hgt_t_pft(beg:end) = nan pps%forc_hgt_q_pft(beg:end) = nan ! 4/14/05: PET ! Adding isotope code pps%cisun(beg:end) = nan pps%cisha(beg:end) = nan #if (defined C13) pps%alphapsnsun(beg:end) = nan pps%alphapsnsha(beg:end) = nan #endif #if (defined CASA) pps%Closs(beg:end,:npools) = spval !init w/ spval the variables that pps%Ctrans(beg:end,:npool_types) = spval !init w/ spval the variables that pps%Resp_C(beg:end,:npools) = nan !go to history, because CASA pps%Tpool_C(beg:end,:npools) = spval !routines do not get called on pps%livefr(beg:end,:nlive) = spval !first timestep of nsrest=0 and pps%pet(beg:end) = spval !history would get nans pps%co2flux(beg:end) = nan !in the first timestep pps%fnpp(beg:end) = nan pps%excessC(beg:end) = spval pps%bgtemp(beg:end) = spval pps%bgmoist(beg:end) = spval pps%plai(beg:end) = spval pps%Cflux(beg:end) = nan pps%XSCpool(beg:end) = spval pps%tdayavg(beg:end) = spval pps%degday(beg:end) = spval pps%stressT(beg:end) = spval pps%stressW(beg:end) = spval pps%stressCD(beg:end) = spval pps%iseabeg(beg:end) = spval pps%nstepbeg(beg:end) = spval pps%lgrow(beg:end) = spval pps%eff(beg:end,:nresp_pools) = nan pps%frac_donor(beg:end,:nresp_pools) = nan pps%soilt(beg:end) = spval ! on history file pps%smoist(beg:end) = spval ! on history file pps%sz(beg:end) = nan pps%watopt(beg:end) = nan pps%watdry(beg:end) = nan pps%soiltc(beg:end) = nan pps%smoistc(beg:end) = nan pps%szc(beg:end) = nan pps%watoptc(beg:end) = spval ! on history file pps%watdryc(beg:end) = spval ! on history file pps%Wlim(beg:end) = spval ! on history file pps%litterscalar(beg:end) = nan pps%rootlitscalar(beg:end) = nan pps%tday(beg:end) = nan pps%tcount(beg:end) = nan pps%ndegday(beg:end) = nan #if (defined CLAMP) ! Summary variables added for the C-LAMP Experiments pps%casa_agnpp(beg:end) = nan pps%casa_ar(beg:end) = nan pps%casa_bgnpp(beg:end) = nan pps%casa_cwdc(beg:end) = nan pps%casa_cwdc_hr(beg:end) = nan pps%casa_cwdc_loss(beg:end) = nan pps%casa_frootc(beg:end) = nan pps%casa_frootc_alloc(beg:end) = nan pps%casa_frootc_loss(beg:end) = nan pps%casa_gpp(beg:end) = nan pps%casa_hr(beg:end) = nan pps%casa_leafc(beg:end) = nan pps%casa_leafc_alloc(beg:end) = nan pps%casa_leafc_loss(beg:end) = nan pps%casa_litterc(beg:end) = nan pps%casa_litterc_loss(beg:end) = nan pps%casa_nee(beg:end) = nan pps%casa_nep(beg:end) = nan pps%casa_npp(beg:end) = nan pps%casa_soilc(beg:end) = nan pps%casa_soilc_hr(beg:end) = nan pps%casa_soilc_loss(beg:end) = nan pps%casa_woodc(beg:end) = nan pps%casa_woodc_alloc(beg:end) = nan pps%casa_woodc_loss(beg:end) = nan #endif #endif end subroutine init_pft_pstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_epv_type ! ! !INTERFACE: subroutine init_pft_epv_type(beg, end, pepv) 1 ! ! !DESCRIPTION: ! Initialize pft ecophysiological variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_epv_type), intent(inout):: pepv ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(pepv%dormant_flag(beg:end)) allocate(pepv%days_active(beg:end)) allocate(pepv%onset_flag(beg:end)) allocate(pepv%onset_counter(beg:end)) allocate(pepv%onset_gddflag(beg:end)) allocate(pepv%onset_fdd(beg:end)) allocate(pepv%onset_gdd(beg:end)) allocate(pepv%onset_swi(beg:end)) allocate(pepv%offset_flag(beg:end)) allocate(pepv%offset_counter(beg:end)) allocate(pepv%offset_fdd(beg:end)) allocate(pepv%offset_swi(beg:end)) allocate(pepv%lgsf(beg:end)) allocate(pepv%bglfr(beg:end)) allocate(pepv%bgtr(beg:end)) allocate(pepv%dayl(beg:end)) allocate(pepv%prev_dayl(beg:end)) allocate(pepv%annavg_t2m(beg:end)) allocate(pepv%tempavg_t2m(beg:end)) allocate(pepv%gpp(beg:end)) allocate(pepv%availc(beg:end)) allocate(pepv%xsmrpool_recover(beg:end)) #if (defined C13) allocate(pepv%xsmrpool_c13ratio(beg:end)) #endif allocate(pepv%alloc_pnow(beg:end)) allocate(pepv%c_allometry(beg:end)) allocate(pepv%n_allometry(beg:end)) allocate(pepv%plant_ndemand(beg:end)) allocate(pepv%tempsum_potential_gpp(beg:end)) allocate(pepv%annsum_potential_gpp(beg:end)) allocate(pepv%tempmax_retransn(beg:end)) allocate(pepv%annmax_retransn(beg:end)) allocate(pepv%avail_retransn(beg:end)) allocate(pepv%plant_nalloc(beg:end)) allocate(pepv%plant_calloc(beg:end)) allocate(pepv%excess_cflux(beg:end)) allocate(pepv%downreg(beg:end)) allocate(pepv%prev_leafc_to_litter(beg:end)) allocate(pepv%prev_frootc_to_litter(beg:end)) allocate(pepv%tempsum_npp(beg:end)) allocate(pepv%annsum_npp(beg:end)) #if (defined CNDV) allocate(pepv%tempsum_litfall(beg:end)) allocate(pepv%annsum_litfall(beg:end)) #endif #if (defined C13) ! 4/21/05, PET ! Adding isotope code allocate(pepv%rc13_canair(beg:end)) allocate(pepv%rc13_psnsun(beg:end)) allocate(pepv%rc13_psnsha(beg:end)) #endif pepv%dormant_flag(beg:end) = nan pepv%days_active(beg:end) = nan pepv%onset_flag(beg:end) = nan pepv%onset_counter(beg:end) = nan pepv%onset_gddflag(beg:end) = nan pepv%onset_fdd(beg:end) = nan pepv%onset_gdd(beg:end) = nan pepv%onset_swi(beg:end) = nan pepv%offset_flag(beg:end) = nan pepv%offset_counter(beg:end) = nan pepv%offset_fdd(beg:end) = nan pepv%offset_swi(beg:end) = nan pepv%lgsf(beg:end) = nan pepv%bglfr(beg:end) = nan pepv%bgtr(beg:end) = nan pepv%dayl(beg:end) = nan pepv%prev_dayl(beg:end) = nan pepv%annavg_t2m(beg:end) = nan pepv%tempavg_t2m(beg:end) = nan pepv%gpp(beg:end) = nan pepv%availc(beg:end) = nan pepv%xsmrpool_recover(beg:end) = nan #if (defined C13) pepv%xsmrpool_c13ratio(beg:end) = nan #endif pepv%alloc_pnow(beg:end) = nan pepv%c_allometry(beg:end) = nan pepv%n_allometry(beg:end) = nan pepv%plant_ndemand(beg:end) = nan pepv%tempsum_potential_gpp(beg:end) = nan pepv%annsum_potential_gpp(beg:end) = nan pepv%tempmax_retransn(beg:end) = nan pepv%annmax_retransn(beg:end) = nan pepv%avail_retransn(beg:end) = nan pepv%plant_nalloc(beg:end) = nan pepv%plant_calloc(beg:end) = nan pepv%excess_cflux(beg:end) = nan pepv%downreg(beg:end) = nan pepv%prev_leafc_to_litter(beg:end) = nan pepv%prev_frootc_to_litter(beg:end) = nan pepv%tempsum_npp(beg:end) = nan pepv%annsum_npp(beg:end) = nan #if (defined CNDV) pepv%tempsum_litfall(beg:end) = nan pepv%annsum_litfall(beg:end) = nan #endif #if (defined C13) ! 4/21/05, PET ! Adding isotope code pepv%rc13_canair(beg:end) = nan pepv%rc13_psnsun(beg:end) = nan pepv%rc13_psnsha(beg:end) = nan #endif end subroutine init_pft_epv_type #if (defined CNDV) !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_pdgvstate_type ! ! !INTERFACE: subroutine init_pft_pdgvstate_type(beg, end, pdgvs) 2 ! ! !DESCRIPTION: ! Initialize pft DGVM state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_dgvstate_type), intent(inout):: pdgvs ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pdgvs%agddtw(beg:end)) allocate(pdgvs%agdd(beg:end)) allocate(pdgvs%t10(beg:end)) allocate(pdgvs%t_mo(beg:end)) allocate(pdgvs%t_mo_min(beg:end)) allocate(pdgvs%prec365(beg:end)) allocate(pdgvs%present(beg:end)) allocate(pdgvs%pftmayexist(beg:end)) allocate(pdgvs%nind(beg:end)) allocate(pdgvs%lm_ind(beg:end)) allocate(pdgvs%lai_ind(beg:end)) allocate(pdgvs%fpcinc(beg:end)) allocate(pdgvs%fpcgrid(beg:end)) allocate(pdgvs%fpcgridold(beg:end)) allocate(pdgvs%crownarea(beg:end)) allocate(pdgvs%greffic(beg:end)) allocate(pdgvs%heatstress(beg:end)) pdgvs%agddtw(beg:end) = nan pdgvs%agdd(beg:end) = nan pdgvs%t10(beg:end) = nan pdgvs%t_mo(beg:end) = nan pdgvs%t_mo_min(beg:end) = nan pdgvs%prec365(beg:end) = nan pdgvs%present(beg:end) = .false. pdgvs%pftmayexist(beg:end) = .true. pdgvs%nind(beg:end) = nan pdgvs%lm_ind(beg:end) = nan pdgvs%lai_ind(beg:end) = nan pdgvs%fpcinc(beg:end) = nan pdgvs%fpcgrid(beg:end) = nan pdgvs%fpcgridold(beg:end) = nan pdgvs%crownarea(beg:end) = nan pdgvs%greffic(beg:end) = nan pdgvs%heatstress(beg:end) = nan end subroutine init_pft_pdgvstate_type #endif !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_vstate_type ! ! !INTERFACE: subroutine init_pft_vstate_type(beg, end, pvs) 1,1 ! ! !DESCRIPTION: ! Initialize pft VOC variables ! ! !USES: use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_vstate_type), intent(inout):: pvs ! ! !REVISION HISTORY: ! Created by Erik Kluzek ! !EOP !------------------------------------------------------------------------ allocate(pvs%t_veg24 (beg:end)) allocate(pvs%t_veg240(beg:end)) allocate(pvs%fsd24 (beg:end)) allocate(pvs%fsd240 (beg:end)) allocate(pvs%fsi24 (beg:end)) allocate(pvs%fsi240 (beg:end)) allocate(pvs%fsun24 (beg:end)) allocate(pvs%fsun240 (beg:end)) allocate(pvs%elai_p (beg:end)) pvs%t_veg24 (beg:end) = spval pvs%t_veg240(beg:end) = spval pvs%fsd24 (beg:end) = spval pvs%fsd240 (beg:end) = spval pvs%fsi24 (beg:end) = spval pvs%fsi240 (beg:end) = spval pvs%fsun24 (beg:end) = spval pvs%fsun240 (beg:end) = spval pvs%elai_p (beg:end) = spval end subroutine init_pft_vstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_estate_type ! ! !INTERFACE: subroutine init_pft_estate_type(beg, end, pes) 2 ! ! !DESCRIPTION: ! Initialize pft energy state ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_estate_type), intent(inout):: pes ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pes%t_ref2m(beg:end)) allocate(pes%t_ref2m_min(beg:end)) allocate(pes%t_ref2m_max(beg:end)) allocate(pes%t_ref2m_min_inst(beg:end)) allocate(pes%t_ref2m_max_inst(beg:end)) allocate(pes%q_ref2m(beg:end)) allocate(pes%t_ref2m_u(beg:end)) allocate(pes%t_ref2m_r(beg:end)) allocate(pes%t_ref2m_min_u(beg:end)) allocate(pes%t_ref2m_min_r(beg:end)) allocate(pes%t_ref2m_max_u(beg:end)) allocate(pes%t_ref2m_max_r(beg:end)) allocate(pes%t_ref2m_min_inst_u(beg:end)) allocate(pes%t_ref2m_min_inst_r(beg:end)) allocate(pes%t_ref2m_max_inst_u(beg:end)) allocate(pes%t_ref2m_max_inst_r(beg:end)) allocate(pes%rh_ref2m(beg:end)) allocate(pes%rh_ref2m_u(beg:end)) allocate(pes%rh_ref2m_r(beg:end)) allocate(pes%t_veg(beg:end)) allocate(pes%thm(beg:end)) pes%t_ref2m(beg:end) = nan pes%t_ref2m_min(beg:end) = nan pes%t_ref2m_max(beg:end) = nan pes%t_ref2m_min_inst(beg:end) = nan pes%t_ref2m_max_inst(beg:end) = nan pes%q_ref2m(beg:end) = nan pes%t_ref2m_u(beg:end) = nan pes%t_ref2m_r(beg:end) = nan pes%t_ref2m_min_u(beg:end) = nan pes%t_ref2m_min_r(beg:end) = nan pes%t_ref2m_max_u(beg:end) = nan pes%t_ref2m_max_r(beg:end) = nan pes%t_ref2m_min_inst_u(beg:end) = nan pes%t_ref2m_min_inst_r(beg:end) = nan pes%t_ref2m_max_inst_u(beg:end) = nan pes%t_ref2m_max_inst_r(beg:end) = nan pes%rh_ref2m(beg:end) = nan pes%rh_ref2m_u(beg:end) = nan pes%rh_ref2m_r(beg:end) = nan pes%t_veg(beg:end) = nan pes%thm(beg:end) = nan end subroutine init_pft_estate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_wstate_type ! ! !INTERFACE: subroutine init_pft_wstate_type(beg, end, pws) 2 ! ! !DESCRIPTION: ! Initialize pft water state ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_wstate_type), intent(inout):: pws !pft water state ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pws%h2ocan(beg:end)) pws%h2ocan(beg:end) = nan end subroutine init_pft_wstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_cstate_type ! ! !INTERFACE: subroutine init_pft_cstate_type(beg, end, pcs) 4 ! ! !DESCRIPTION: ! Initialize pft carbon state ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_cstate_type), intent(inout):: pcs !pft carbon state ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(pcs%leafc(beg:end)) allocate(pcs%leafc_storage(beg:end)) allocate(pcs%leafc_xfer(beg:end)) allocate(pcs%frootc(beg:end)) allocate(pcs%frootc_storage(beg:end)) allocate(pcs%frootc_xfer(beg:end)) allocate(pcs%livestemc(beg:end)) allocate(pcs%livestemc_storage(beg:end)) allocate(pcs%livestemc_xfer(beg:end)) allocate(pcs%deadstemc(beg:end)) allocate(pcs%deadstemc_storage(beg:end)) allocate(pcs%deadstemc_xfer(beg:end)) allocate(pcs%livecrootc(beg:end)) allocate(pcs%livecrootc_storage(beg:end)) allocate(pcs%livecrootc_xfer(beg:end)) allocate(pcs%deadcrootc(beg:end)) allocate(pcs%deadcrootc_storage(beg:end)) allocate(pcs%deadcrootc_xfer(beg:end)) allocate(pcs%gresp_storage(beg:end)) allocate(pcs%gresp_xfer(beg:end)) allocate(pcs%cpool(beg:end)) allocate(pcs%xsmrpool(beg:end)) allocate(pcs%pft_ctrunc(beg:end)) allocate(pcs%dispvegc(beg:end)) allocate(pcs%storvegc(beg:end)) allocate(pcs%totvegc(beg:end)) allocate(pcs%totpftc(beg:end)) allocate(pcs%leafcmax(beg:end)) #if (defined CLAMP) && (defined CN) !CLAMP allocate(pcs%woodc(beg:end)) #endif pcs%leafc(beg:end) = nan pcs%leafc_storage(beg:end) = nan pcs%leafc_xfer(beg:end) = nan pcs%frootc(beg:end) = nan pcs%frootc_storage(beg:end) = nan pcs%frootc_xfer(beg:end) = nan pcs%livestemc(beg:end) = nan pcs%livestemc_storage(beg:end) = nan pcs%livestemc_xfer(beg:end) = nan pcs%deadstemc(beg:end) = nan pcs%deadstemc_storage(beg:end) = nan pcs%deadstemc_xfer(beg:end) = nan pcs%livecrootc(beg:end) = nan pcs%livecrootc_storage(beg:end) = nan pcs%livecrootc_xfer(beg:end) = nan pcs%deadcrootc(beg:end) = nan pcs%deadcrootc_storage(beg:end) = nan pcs%deadcrootc_xfer(beg:end) = nan pcs%gresp_storage(beg:end) = nan pcs%gresp_xfer(beg:end) = nan pcs%cpool(beg:end) = nan pcs%xsmrpool(beg:end) = nan pcs%pft_ctrunc(beg:end) = nan pcs%dispvegc(beg:end) = nan pcs%storvegc(beg:end) = nan pcs%totvegc(beg:end) = nan pcs%totpftc(beg:end) = nan pcs%leafcmax(beg:end) = nan #if (defined CLAMP) && (defined CN) !CLAMP pcs%woodc(beg:end) = nan #endif end subroutine init_pft_cstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_nstate_type ! ! !INTERFACE: subroutine init_pft_nstate_type(beg, end, pns) 2 ! ! !DESCRIPTION: ! Initialize pft nitrogen state ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_nstate_type), intent(inout):: pns !pft nitrogen state ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(pns%leafn(beg:end)) allocate(pns%leafn_storage(beg:end)) allocate(pns%leafn_xfer(beg:end)) allocate(pns%frootn(beg:end)) allocate(pns%frootn_storage(beg:end)) allocate(pns%frootn_xfer(beg:end)) allocate(pns%livestemn(beg:end)) allocate(pns%livestemn_storage(beg:end)) allocate(pns%livestemn_xfer(beg:end)) allocate(pns%deadstemn(beg:end)) allocate(pns%deadstemn_storage(beg:end)) allocate(pns%deadstemn_xfer(beg:end)) allocate(pns%livecrootn(beg:end)) allocate(pns%livecrootn_storage(beg:end)) allocate(pns%livecrootn_xfer(beg:end)) allocate(pns%deadcrootn(beg:end)) allocate(pns%deadcrootn_storage(beg:end)) allocate(pns%deadcrootn_xfer(beg:end)) allocate(pns%retransn(beg:end)) allocate(pns%npool(beg:end)) allocate(pns%pft_ntrunc(beg:end)) allocate(pns%dispvegn(beg:end)) allocate(pns%storvegn(beg:end)) allocate(pns%totvegn(beg:end)) allocate(pns%totpftn(beg:end)) pns%leafn(beg:end) = nan pns%leafn_storage(beg:end) = nan pns%leafn_xfer(beg:end) = nan pns%frootn(beg:end) = nan pns%frootn_storage(beg:end) = nan pns%frootn_xfer(beg:end) = nan pns%livestemn(beg:end) = nan pns%livestemn_storage(beg:end) = nan pns%livestemn_xfer(beg:end) = nan pns%deadstemn(beg:end) = nan pns%deadstemn_storage(beg:end) = nan pns%deadstemn_xfer(beg:end) = nan pns%livecrootn(beg:end) = nan pns%livecrootn_storage(beg:end) = nan pns%livecrootn_xfer(beg:end) = nan pns%deadcrootn(beg:end) = nan pns%deadcrootn_storage(beg:end) = nan pns%deadcrootn_xfer(beg:end) = nan pns%retransn(beg:end) = nan pns%npool(beg:end) = nan pns%pft_ntrunc(beg:end) = nan pns%dispvegn(beg:end) = nan pns%storvegn(beg:end) = nan pns%totvegn(beg:end) = nan pns%totpftn(beg:end) = nan end subroutine init_pft_nstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_eflux_type ! ! !INTERFACE: subroutine init_pft_eflux_type(beg, end, pef) 2 ! ! !DESCRIPTION: ! Initialize pft energy flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_eflux_type), intent(inout):: pef ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pef%sabg(beg:end)) allocate(pef%sabv(beg:end)) allocate(pef%fsa(beg:end)) allocate(pef%fsa_u(beg:end)) allocate(pef%fsa_r(beg:end)) allocate(pef%fsr(beg:end)) allocate(pef%parsun(beg:end)) allocate(pef%parsha(beg:end)) allocate(pef%dlrad(beg:end)) allocate(pef%ulrad(beg:end)) allocate(pef%eflx_lh_tot(beg:end)) allocate(pef%eflx_lh_tot_u(beg:end)) allocate(pef%eflx_lh_tot_r(beg:end)) allocate(pef%eflx_lh_grnd(beg:end)) allocate(pef%eflx_soil_grnd(beg:end)) allocate(pef%eflx_soil_grnd_u(beg:end)) allocate(pef%eflx_soil_grnd_r(beg:end)) allocate(pef%eflx_sh_tot(beg:end)) allocate(pef%eflx_sh_tot_u(beg:end)) allocate(pef%eflx_sh_tot_r(beg:end)) allocate(pef%eflx_sh_grnd(beg:end)) allocate(pef%eflx_sh_veg(beg:end)) allocate(pef%eflx_lh_vege(beg:end)) allocate(pef%eflx_lh_vegt(beg:end)) allocate(pef%eflx_wasteheat_pft(beg:end)) allocate(pef%eflx_heat_from_ac_pft(beg:end)) allocate(pef%eflx_traffic_pft(beg:end)) allocate(pef%eflx_anthro(beg:end)) allocate(pef%cgrnd(beg:end)) allocate(pef%cgrndl(beg:end)) allocate(pef%cgrnds(beg:end)) allocate(pef%eflx_gnet(beg:end)) allocate(pef%dgnetdT(beg:end)) allocate(pef%eflx_lwrad_out(beg:end)) allocate(pef%eflx_lwrad_net(beg:end)) allocate(pef%eflx_lwrad_net_u(beg:end)) allocate(pef%eflx_lwrad_net_r(beg:end)) allocate(pef%netrad(beg:end)) allocate(pef%fsds_vis_d(beg:end)) allocate(pef%fsds_nir_d(beg:end)) allocate(pef%fsds_vis_i(beg:end)) allocate(pef%fsds_nir_i(beg:end)) allocate(pef%fsr_vis_d(beg:end)) allocate(pef%fsr_nir_d(beg:end)) allocate(pef%fsr_vis_i(beg:end)) allocate(pef%fsr_nir_i(beg:end)) allocate(pef%fsds_vis_d_ln(beg:end)) allocate(pef%fsds_nir_d_ln(beg:end)) allocate(pef%fsr_vis_d_ln(beg:end)) allocate(pef%fsr_nir_d_ln(beg:end)) allocate(pef%sun_add(beg:end,1:numrad)) allocate(pef%tot_aid(beg:end,1:numrad)) allocate(pef%sun_aid(beg:end,1:numrad)) allocate(pef%sun_aii(beg:end,1:numrad)) allocate(pef%sha_aid(beg:end,1:numrad)) allocate(pef%sha_aii(beg:end,1:numrad)) allocate(pef%sun_atot(beg:end,1:numrad)) allocate(pef%sha_atot(beg:end,1:numrad)) allocate(pef%sun_alf(beg:end,1:numrad)) allocate(pef%sha_alf(beg:end,1:numrad)) allocate(pef%sun_aperlai(beg:end,1:numrad)) allocate(pef%sha_aperlai(beg:end,1:numrad)) allocate(pef%sabg_lyr(beg:end,-nlevsno+1:1)) allocate(pef%sfc_frc_aer(beg:end)) allocate(pef%sfc_frc_bc(beg:end)) allocate(pef%sfc_frc_oc(beg:end)) allocate(pef%sfc_frc_dst(beg:end)) allocate(pef%sfc_frc_aer_sno(beg:end)) allocate(pef%sfc_frc_bc_sno(beg:end)) allocate(pef%sfc_frc_oc_sno(beg:end)) allocate(pef%sfc_frc_dst_sno(beg:end)) allocate(pef%fsr_sno_vd(beg:end)) allocate(pef%fsr_sno_nd(beg:end)) allocate(pef%fsr_sno_vi(beg:end)) allocate(pef%fsr_sno_ni(beg:end)) allocate(pef%fsds_sno_vd(beg:end)) allocate(pef%fsds_sno_nd(beg:end)) allocate(pef%fsds_sno_vi(beg:end)) allocate(pef%fsds_sno_ni(beg:end)) pef%sabg(beg:end) = nan pef%sabv(beg:end) = nan pef%fsa(beg:end) = nan pef%fsa_u(beg:end) = nan pef%fsa_r(beg:end) = nan pef%fsr(beg:end) = nan pef%parsun(beg:end) = nan pef%parsha(beg:end) = nan pef%dlrad(beg:end) = nan pef%ulrad(beg:end) = nan pef%eflx_lh_tot(beg:end) = nan pef%eflx_lh_tot_u(beg:end) = nan pef%eflx_lh_tot_r(beg:end) = nan pef%eflx_lh_grnd(beg:end) = nan pef%eflx_soil_grnd(beg:end) = nan pef%eflx_soil_grnd_u(beg:end) = nan pef%eflx_soil_grnd_r(beg:end) = nan pef%eflx_sh_tot(beg:end) = nan pef%eflx_sh_tot_u(beg:end) = nan pef%eflx_sh_tot_r(beg:end) = nan pef%eflx_sh_grnd(beg:end) = nan pef%eflx_sh_veg(beg:end) = nan pef%eflx_lh_vege(beg:end) = nan pef%eflx_lh_vegt(beg:end) = nan pef%eflx_wasteheat_pft(beg:end) = nan pef%eflx_heat_from_ac_pft(beg:end) = nan pef%eflx_traffic_pft(beg:end) = nan pef%eflx_anthro(beg:end) = nan pef%cgrnd(beg:end) = nan pef%cgrndl(beg:end) = nan pef%cgrnds(beg:end) = nan pef%eflx_gnet(beg:end) = nan pef%dgnetdT(beg:end) = nan pef%eflx_lwrad_out(beg:end) = nan pef%eflx_lwrad_net(beg:end) = nan pef%eflx_lwrad_net_u(beg:end) = nan pef%eflx_lwrad_net_r(beg:end) = nan pef%netrad(beg:end) = nan pef%fsds_vis_d(beg:end) = nan pef%fsds_nir_d(beg:end) = nan pef%fsds_vis_i(beg:end) = nan pef%fsds_nir_i(beg:end) = nan pef%fsr_vis_d(beg:end) = nan pef%fsr_nir_d(beg:end) = nan pef%fsr_vis_i(beg:end) = nan pef%fsr_nir_i(beg:end) = nan pef%fsds_vis_d_ln(beg:end) = nan pef%fsds_nir_d_ln(beg:end) = nan pef%fsr_vis_d_ln(beg:end) = nan pef%fsr_nir_d_ln(beg:end) = nan pef%sun_add(beg:end,1:numrad) = nan pef%tot_aid(beg:end,1:numrad) = nan pef%sun_aid(beg:end,1:numrad) = nan pef%sun_aii(beg:end,1:numrad) = nan pef%sha_aid(beg:end,1:numrad) = nan pef%sha_aii(beg:end,1:numrad) = nan pef%sun_atot(beg:end,1:numrad) = nan pef%sha_atot(beg:end,1:numrad) = nan pef%sun_alf(beg:end,1:numrad) = nan pef%sha_alf(beg:end,1:numrad) = nan pef%sun_aperlai(beg:end,1:numrad) = nan pef%sha_aperlai(beg:end,1:numrad) = nan pef%sabg_lyr(beg:end,-nlevsno+1:1) = nan pef%sfc_frc_aer(beg:end) = nan pef%sfc_frc_bc(beg:end) = nan pef%sfc_frc_oc(beg:end) = nan pef%sfc_frc_dst(beg:end) = nan pef%sfc_frc_aer_sno(beg:end) = nan pef%sfc_frc_bc_sno(beg:end) = nan pef%sfc_frc_oc_sno(beg:end) = nan pef%sfc_frc_dst_sno(beg:end) = nan pef%fsr_sno_vd(beg:end) = nan pef%fsr_sno_nd(beg:end) = nan pef%fsr_sno_vi(beg:end) = nan pef%fsr_sno_ni(beg:end) = nan pef%fsds_sno_vd(beg:end) = nan pef%fsds_sno_nd(beg:end) = nan pef%fsds_sno_vi(beg:end) = nan pef%fsds_sno_ni(beg:end) = nan end subroutine init_pft_eflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_mflux_type ! ! !INTERFACE: subroutine init_pft_mflux_type(beg, end, pmf) 2 ! ! !DESCRIPTION: ! Initialize pft momentum flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_mflux_type), intent(inout) :: pmf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pmf%taux(beg:end)) allocate(pmf%tauy(beg:end)) pmf%taux(beg:end) = nan pmf%tauy(beg:end) = nan end subroutine init_pft_mflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_wflux_type ! ! !INTERFACE: subroutine init_pft_wflux_type(beg, end, pwf) 2 ! ! !DESCRIPTION: ! Initialize pft water flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_wflux_type), intent(inout) :: pwf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pwf%qflx_prec_intr(beg:end)) allocate(pwf%qflx_prec_grnd(beg:end)) allocate(pwf%qflx_rain_grnd(beg:end)) allocate(pwf%qflx_snow_grnd(beg:end)) allocate(pwf%qflx_snwcp_liq(beg:end)) allocate(pwf%qflx_snwcp_ice(beg:end)) allocate(pwf%qflx_evap_veg(beg:end)) allocate(pwf%qflx_tran_veg(beg:end)) allocate(pwf%qflx_evap_can(beg:end)) allocate(pwf%qflx_evap_soi(beg:end)) allocate(pwf%qflx_evap_tot(beg:end)) allocate(pwf%qflx_evap_grnd(beg:end)) allocate(pwf%qflx_dew_grnd(beg:end)) allocate(pwf%qflx_sub_snow(beg:end)) allocate(pwf%qflx_dew_snow(beg:end)) pwf%qflx_prec_intr(beg:end) = nan pwf%qflx_prec_grnd(beg:end) = nan pwf%qflx_rain_grnd(beg:end) = nan pwf%qflx_snow_grnd(beg:end) = nan pwf%qflx_snwcp_liq(beg:end) = nan pwf%qflx_snwcp_ice(beg:end) = nan pwf%qflx_evap_veg(beg:end) = nan pwf%qflx_tran_veg(beg:end) = nan pwf%qflx_evap_can(beg:end) = nan pwf%qflx_evap_soi(beg:end) = nan pwf%qflx_evap_tot(beg:end) = nan pwf%qflx_evap_grnd(beg:end) = nan pwf%qflx_dew_grnd(beg:end) = nan pwf%qflx_sub_snow(beg:end) = nan pwf%qflx_dew_snow(beg:end) = nan end subroutine init_pft_wflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_cflux_type ! ! !INTERFACE: subroutine init_pft_cflux_type(beg, end, pcf) 4 ! ! !DESCRIPTION: ! Initialize pft carbon flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_cflux_type), intent(inout) :: pcf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pcf%psnsun(beg:end)) allocate(pcf%psnsha(beg:end)) allocate(pcf%fpsn(beg:end)) allocate(pcf%fco2(beg:end)) allocate(pcf%m_leafc_to_litter(beg:end)) allocate(pcf%m_frootc_to_litter(beg:end)) allocate(pcf%m_leafc_storage_to_litter(beg:end)) allocate(pcf%m_frootc_storage_to_litter(beg:end)) allocate(pcf%m_livestemc_storage_to_litter(beg:end)) allocate(pcf%m_deadstemc_storage_to_litter(beg:end)) allocate(pcf%m_livecrootc_storage_to_litter(beg:end)) allocate(pcf%m_deadcrootc_storage_to_litter(beg:end)) allocate(pcf%m_leafc_xfer_to_litter(beg:end)) allocate(pcf%m_frootc_xfer_to_litter(beg:end)) allocate(pcf%m_livestemc_xfer_to_litter(beg:end)) allocate(pcf%m_deadstemc_xfer_to_litter(beg:end)) allocate(pcf%m_livecrootc_xfer_to_litter(beg:end)) allocate(pcf%m_deadcrootc_xfer_to_litter(beg:end)) allocate(pcf%m_livestemc_to_litter(beg:end)) allocate(pcf%m_deadstemc_to_litter(beg:end)) allocate(pcf%m_livecrootc_to_litter(beg:end)) allocate(pcf%m_deadcrootc_to_litter(beg:end)) allocate(pcf%m_gresp_storage_to_litter(beg:end)) allocate(pcf%m_gresp_xfer_to_litter(beg:end)) allocate(pcf%hrv_leafc_to_litter(beg:end)) allocate(pcf%hrv_leafc_storage_to_litter(beg:end)) allocate(pcf%hrv_leafc_xfer_to_litter(beg:end)) allocate(pcf%hrv_frootc_to_litter(beg:end)) allocate(pcf%hrv_frootc_storage_to_litter(beg:end)) allocate(pcf%hrv_frootc_xfer_to_litter(beg:end)) allocate(pcf%hrv_livestemc_to_litter(beg:end)) allocate(pcf%hrv_livestemc_storage_to_litter(beg:end)) allocate(pcf%hrv_livestemc_xfer_to_litter(beg:end)) allocate(pcf%hrv_deadstemc_to_prod10c(beg:end)) allocate(pcf%hrv_deadstemc_to_prod100c(beg:end)) allocate(pcf%hrv_deadstemc_storage_to_litter(beg:end)) allocate(pcf%hrv_deadstemc_xfer_to_litter(beg:end)) allocate(pcf%hrv_livecrootc_to_litter(beg:end)) allocate(pcf%hrv_livecrootc_storage_to_litter(beg:end)) allocate(pcf%hrv_livecrootc_xfer_to_litter(beg:end)) allocate(pcf%hrv_deadcrootc_to_litter(beg:end)) allocate(pcf%hrv_deadcrootc_storage_to_litter(beg:end)) allocate(pcf%hrv_deadcrootc_xfer_to_litter(beg:end)) allocate(pcf%hrv_gresp_storage_to_litter(beg:end)) allocate(pcf%hrv_gresp_xfer_to_litter(beg:end)) allocate(pcf%hrv_xsmrpool_to_atm(beg:end)) allocate(pcf%m_leafc_to_fire(beg:end)) allocate(pcf%m_frootc_to_fire(beg:end)) allocate(pcf%m_leafc_storage_to_fire(beg:end)) allocate(pcf%m_frootc_storage_to_fire(beg:end)) allocate(pcf%m_livestemc_storage_to_fire(beg:end)) allocate(pcf%m_deadstemc_storage_to_fire(beg:end)) allocate(pcf%m_livecrootc_storage_to_fire(beg:end)) allocate(pcf%m_deadcrootc_storage_to_fire(beg:end)) allocate(pcf%m_leafc_xfer_to_fire(beg:end)) allocate(pcf%m_frootc_xfer_to_fire(beg:end)) allocate(pcf%m_livestemc_xfer_to_fire(beg:end)) allocate(pcf%m_deadstemc_xfer_to_fire(beg:end)) allocate(pcf%m_livecrootc_xfer_to_fire(beg:end)) allocate(pcf%m_deadcrootc_xfer_to_fire(beg:end)) allocate(pcf%m_livestemc_to_fire(beg:end)) allocate(pcf%m_deadstemc_to_fire(beg:end)) allocate(pcf%m_deadstemc_to_litter_fire(beg:end)) allocate(pcf%m_livecrootc_to_fire(beg:end)) allocate(pcf%m_deadcrootc_to_fire(beg:end)) allocate(pcf%m_deadcrootc_to_litter_fire(beg:end)) allocate(pcf%m_gresp_storage_to_fire(beg:end)) allocate(pcf%m_gresp_xfer_to_fire(beg:end)) allocate(pcf%leafc_xfer_to_leafc(beg:end)) allocate(pcf%frootc_xfer_to_frootc(beg:end)) allocate(pcf%livestemc_xfer_to_livestemc(beg:end)) allocate(pcf%deadstemc_xfer_to_deadstemc(beg:end)) allocate(pcf%livecrootc_xfer_to_livecrootc(beg:end)) allocate(pcf%deadcrootc_xfer_to_deadcrootc(beg:end)) allocate(pcf%leafc_to_litter(beg:end)) allocate(pcf%frootc_to_litter(beg:end)) allocate(pcf%leaf_mr(beg:end)) allocate(pcf%froot_mr(beg:end)) allocate(pcf%livestem_mr(beg:end)) allocate(pcf%livecroot_mr(beg:end)) allocate(pcf%leaf_curmr(beg:end)) allocate(pcf%froot_curmr(beg:end)) allocate(pcf%livestem_curmr(beg:end)) allocate(pcf%livecroot_curmr(beg:end)) allocate(pcf%leaf_xsmr(beg:end)) allocate(pcf%froot_xsmr(beg:end)) allocate(pcf%livestem_xsmr(beg:end)) allocate(pcf%livecroot_xsmr(beg:end)) allocate(pcf%psnsun_to_cpool(beg:end)) allocate(pcf%psnshade_to_cpool(beg:end)) allocate(pcf%cpool_to_xsmrpool(beg:end)) allocate(pcf%cpool_to_leafc(beg:end)) allocate(pcf%cpool_to_leafc_storage(beg:end)) allocate(pcf%cpool_to_frootc(beg:end)) allocate(pcf%cpool_to_frootc_storage(beg:end)) allocate(pcf%cpool_to_livestemc(beg:end)) allocate(pcf%cpool_to_livestemc_storage(beg:end)) allocate(pcf%cpool_to_deadstemc(beg:end)) allocate(pcf%cpool_to_deadstemc_storage(beg:end)) allocate(pcf%cpool_to_livecrootc(beg:end)) allocate(pcf%cpool_to_livecrootc_storage(beg:end)) allocate(pcf%cpool_to_deadcrootc(beg:end)) allocate(pcf%cpool_to_deadcrootc_storage(beg:end)) allocate(pcf%cpool_to_gresp_storage(beg:end)) allocate(pcf%cpool_leaf_gr(beg:end)) allocate(pcf%cpool_leaf_storage_gr(beg:end)) allocate(pcf%transfer_leaf_gr(beg:end)) allocate(pcf%cpool_froot_gr(beg:end)) allocate(pcf%cpool_froot_storage_gr(beg:end)) allocate(pcf%transfer_froot_gr(beg:end)) allocate(pcf%cpool_livestem_gr(beg:end)) allocate(pcf%cpool_livestem_storage_gr(beg:end)) allocate(pcf%transfer_livestem_gr(beg:end)) allocate(pcf%cpool_deadstem_gr(beg:end)) allocate(pcf%cpool_deadstem_storage_gr(beg:end)) allocate(pcf%transfer_deadstem_gr(beg:end)) allocate(pcf%cpool_livecroot_gr(beg:end)) allocate(pcf%cpool_livecroot_storage_gr(beg:end)) allocate(pcf%transfer_livecroot_gr(beg:end)) allocate(pcf%cpool_deadcroot_gr(beg:end)) allocate(pcf%cpool_deadcroot_storage_gr(beg:end)) allocate(pcf%transfer_deadcroot_gr(beg:end)) allocate(pcf%leafc_storage_to_xfer(beg:end)) allocate(pcf%frootc_storage_to_xfer(beg:end)) allocate(pcf%livestemc_storage_to_xfer(beg:end)) allocate(pcf%deadstemc_storage_to_xfer(beg:end)) allocate(pcf%livecrootc_storage_to_xfer(beg:end)) allocate(pcf%deadcrootc_storage_to_xfer(beg:end)) allocate(pcf%gresp_storage_to_xfer(beg:end)) allocate(pcf%livestemc_to_deadstemc(beg:end)) allocate(pcf%livecrootc_to_deadcrootc(beg:end)) allocate(pcf%gpp(beg:end)) allocate(pcf%mr(beg:end)) allocate(pcf%current_gr(beg:end)) allocate(pcf%transfer_gr(beg:end)) allocate(pcf%storage_gr(beg:end)) allocate(pcf%gr(beg:end)) allocate(pcf%ar(beg:end)) allocate(pcf%rr(beg:end)) allocate(pcf%npp(beg:end)) allocate(pcf%agnpp(beg:end)) allocate(pcf%bgnpp(beg:end)) allocate(pcf%litfall(beg:end)) allocate(pcf%vegfire(beg:end)) allocate(pcf%wood_harvestc(beg:end)) allocate(pcf%pft_cinputs(beg:end)) allocate(pcf%pft_coutputs(beg:end)) allocate(pcf%pft_fire_closs(beg:end)) #if (defined CLAMP) && (defined CN) !CLAMP allocate(pcf%frootc_alloc(beg:end)) allocate(pcf%frootc_loss(beg:end)) allocate(pcf%leafc_alloc(beg:end)) allocate(pcf%leafc_loss(beg:end)) allocate(pcf%woodc_alloc(beg:end)) allocate(pcf%woodc_loss(beg:end)) #endif pcf%psnsun(beg:end) = nan pcf%psnsha(beg:end) = nan pcf%fpsn(beg:end) = nan pcf%fco2(beg:end) = 0._r8 pcf%m_leafc_to_litter(beg:end) = nan pcf%m_frootc_to_litter(beg:end) = nan pcf%m_leafc_storage_to_litter(beg:end) = nan pcf%m_frootc_storage_to_litter(beg:end) = nan pcf%m_livestemc_storage_to_litter(beg:end) = nan pcf%m_deadstemc_storage_to_litter(beg:end) = nan pcf%m_livecrootc_storage_to_litter(beg:end) = nan pcf%m_deadcrootc_storage_to_litter(beg:end) = nan pcf%m_leafc_xfer_to_litter(beg:end) = nan pcf%m_frootc_xfer_to_litter(beg:end) = nan pcf%m_livestemc_xfer_to_litter(beg:end) = nan pcf%m_deadstemc_xfer_to_litter(beg:end) = nan pcf%m_livecrootc_xfer_to_litter(beg:end) = nan pcf%m_deadcrootc_xfer_to_litter(beg:end) = nan pcf%m_livestemc_to_litter(beg:end) = nan pcf%m_deadstemc_to_litter(beg:end) = nan pcf%m_livecrootc_to_litter(beg:end) = nan pcf%m_deadcrootc_to_litter(beg:end) = nan pcf%m_gresp_storage_to_litter(beg:end) = nan pcf%m_gresp_xfer_to_litter(beg:end) = nan pcf%hrv_leafc_to_litter(beg:end) = nan pcf%hrv_leafc_storage_to_litter(beg:end) = nan pcf%hrv_leafc_xfer_to_litter(beg:end) = nan pcf%hrv_frootc_to_litter(beg:end) = nan pcf%hrv_frootc_storage_to_litter(beg:end) = nan pcf%hrv_frootc_xfer_to_litter(beg:end) = nan pcf%hrv_livestemc_to_litter(beg:end) = nan pcf%hrv_livestemc_storage_to_litter(beg:end) = nan pcf%hrv_livestemc_xfer_to_litter(beg:end) = nan pcf%hrv_deadstemc_to_prod10c(beg:end) = nan pcf%hrv_deadstemc_to_prod100c(beg:end) = nan pcf%hrv_deadstemc_storage_to_litter(beg:end) = nan pcf%hrv_deadstemc_xfer_to_litter(beg:end) = nan pcf%hrv_livecrootc_to_litter(beg:end) = nan pcf%hrv_livecrootc_storage_to_litter(beg:end) = nan pcf%hrv_livecrootc_xfer_to_litter(beg:end) = nan pcf%hrv_deadcrootc_to_litter(beg:end) = nan pcf%hrv_deadcrootc_storage_to_litter(beg:end) = nan pcf%hrv_deadcrootc_xfer_to_litter(beg:end) = nan pcf%hrv_gresp_storage_to_litter(beg:end) = nan pcf%hrv_gresp_xfer_to_litter(beg:end) = nan pcf%hrv_xsmrpool_to_atm(beg:end) = nan pcf%m_leafc_to_fire(beg:end) = nan pcf%m_frootc_to_fire(beg:end) = nan pcf%m_leafc_storage_to_fire(beg:end) = nan pcf%m_frootc_storage_to_fire(beg:end) = nan pcf%m_livestemc_storage_to_fire(beg:end) = nan pcf%m_deadstemc_storage_to_fire(beg:end) = nan pcf%m_livecrootc_storage_to_fire(beg:end) = nan pcf%m_deadcrootc_storage_to_fire(beg:end) = nan pcf%m_leafc_xfer_to_fire(beg:end) = nan pcf%m_frootc_xfer_to_fire(beg:end) = nan pcf%m_livestemc_xfer_to_fire(beg:end) = nan pcf%m_deadstemc_xfer_to_fire(beg:end) = nan pcf%m_livecrootc_xfer_to_fire(beg:end) = nan pcf%m_deadcrootc_xfer_to_fire(beg:end) = nan pcf%m_livestemc_to_fire(beg:end) = nan pcf%m_deadstemc_to_fire(beg:end) = nan pcf%m_deadstemc_to_litter_fire(beg:end) = nan pcf%m_livecrootc_to_fire(beg:end) = nan pcf%m_deadcrootc_to_fire(beg:end) = nan pcf%m_deadcrootc_to_litter_fire(beg:end) = nan pcf%m_gresp_storage_to_fire(beg:end) = nan pcf%m_gresp_xfer_to_fire(beg:end) = nan pcf%leafc_xfer_to_leafc(beg:end) = nan pcf%frootc_xfer_to_frootc(beg:end) = nan pcf%livestemc_xfer_to_livestemc(beg:end) = nan pcf%deadstemc_xfer_to_deadstemc(beg:end) = nan pcf%livecrootc_xfer_to_livecrootc(beg:end) = nan pcf%deadcrootc_xfer_to_deadcrootc(beg:end) = nan pcf%leafc_to_litter(beg:end) = nan pcf%frootc_to_litter(beg:end) = nan pcf%leaf_mr(beg:end) = nan pcf%froot_mr(beg:end) = nan pcf%livestem_mr(beg:end) = nan pcf%livecroot_mr(beg:end) = nan pcf%leaf_curmr(beg:end) = nan pcf%froot_curmr(beg:end) = nan pcf%livestem_curmr(beg:end) = nan pcf%livecroot_curmr(beg:end) = nan pcf%leaf_xsmr(beg:end) = nan pcf%froot_xsmr(beg:end) = nan pcf%livestem_xsmr(beg:end) = nan pcf%livecroot_xsmr(beg:end) = nan pcf%psnsun_to_cpool(beg:end) = nan pcf%psnshade_to_cpool(beg:end) = nan pcf%cpool_to_xsmrpool(beg:end) = nan pcf%cpool_to_leafc(beg:end) = nan pcf%cpool_to_leafc_storage(beg:end) = nan pcf%cpool_to_frootc(beg:end) = nan pcf%cpool_to_frootc_storage(beg:end) = nan pcf%cpool_to_livestemc(beg:end) = nan pcf%cpool_to_livestemc_storage(beg:end) = nan pcf%cpool_to_deadstemc(beg:end) = nan pcf%cpool_to_deadstemc_storage(beg:end) = nan pcf%cpool_to_livecrootc(beg:end) = nan pcf%cpool_to_livecrootc_storage(beg:end) = nan pcf%cpool_to_deadcrootc(beg:end) = nan pcf%cpool_to_deadcrootc_storage(beg:end) = nan pcf%cpool_to_gresp_storage(beg:end) = nan pcf%cpool_leaf_gr(beg:end) = nan pcf%cpool_leaf_storage_gr(beg:end) = nan pcf%transfer_leaf_gr(beg:end) = nan pcf%cpool_froot_gr(beg:end) = nan pcf%cpool_froot_storage_gr(beg:end) = nan pcf%transfer_froot_gr(beg:end) = nan pcf%cpool_livestem_gr(beg:end) = nan pcf%cpool_livestem_storage_gr(beg:end) = nan pcf%transfer_livestem_gr(beg:end) = nan pcf%cpool_deadstem_gr(beg:end) = nan pcf%cpool_deadstem_storage_gr(beg:end) = nan pcf%transfer_deadstem_gr(beg:end) = nan pcf%cpool_livecroot_gr(beg:end) = nan pcf%cpool_livecroot_storage_gr(beg:end) = nan pcf%transfer_livecroot_gr(beg:end) = nan pcf%cpool_deadcroot_gr(beg:end) = nan pcf%cpool_deadcroot_storage_gr(beg:end) = nan pcf%transfer_deadcroot_gr(beg:end) = nan pcf%leafc_storage_to_xfer(beg:end) = nan pcf%frootc_storage_to_xfer(beg:end) = nan pcf%livestemc_storage_to_xfer(beg:end) = nan pcf%deadstemc_storage_to_xfer(beg:end) = nan pcf%livecrootc_storage_to_xfer(beg:end) = nan pcf%deadcrootc_storage_to_xfer(beg:end) = nan pcf%gresp_storage_to_xfer(beg:end) = nan pcf%livestemc_to_deadstemc(beg:end) = nan pcf%livecrootc_to_deadcrootc(beg:end) = nan pcf%gpp(beg:end) = nan pcf%mr(beg:end) = nan pcf%current_gr(beg:end) = nan pcf%transfer_gr(beg:end) = nan pcf%storage_gr(beg:end) = nan pcf%gr(beg:end) = nan pcf%ar(beg:end) = nan pcf%rr(beg:end) = nan pcf%npp(beg:end) = nan pcf%agnpp(beg:end) = nan pcf%bgnpp(beg:end) = nan pcf%litfall(beg:end) = nan pcf%vegfire(beg:end) = nan pcf%wood_harvestc(beg:end) = nan pcf%pft_cinputs(beg:end) = nan pcf%pft_coutputs(beg:end) = nan pcf%pft_fire_closs(beg:end) = nan #if (defined CLAMP) && (defined CN) !CLAMP pcf%frootc_alloc(beg:end) = nan pcf%frootc_loss(beg:end) = nan pcf%leafc_alloc(beg:end) = nan pcf%leafc_loss(beg:end) = nan pcf%woodc_alloc(beg:end) = nan pcf%woodc_loss(beg:end) = nan #endif end subroutine init_pft_cflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_nflux_type ! ! !INTERFACE: subroutine init_pft_nflux_type(beg, end, pnf) 2 ! ! !DESCRIPTION: ! Initialize pft nitrogen flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_nflux_type), intent(inout) :: pnf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pnf%m_leafn_to_litter(beg:end)) allocate(pnf%m_frootn_to_litter(beg:end)) allocate(pnf%m_leafn_storage_to_litter(beg:end)) allocate(pnf%m_frootn_storage_to_litter(beg:end)) allocate(pnf%m_livestemn_storage_to_litter(beg:end)) allocate(pnf%m_deadstemn_storage_to_litter(beg:end)) allocate(pnf%m_livecrootn_storage_to_litter(beg:end)) allocate(pnf%m_deadcrootn_storage_to_litter(beg:end)) allocate(pnf%m_leafn_xfer_to_litter(beg:end)) allocate(pnf%m_frootn_xfer_to_litter(beg:end)) allocate(pnf%m_livestemn_xfer_to_litter(beg:end)) allocate(pnf%m_deadstemn_xfer_to_litter(beg:end)) allocate(pnf%m_livecrootn_xfer_to_litter(beg:end)) allocate(pnf%m_deadcrootn_xfer_to_litter(beg:end)) allocate(pnf%m_livestemn_to_litter(beg:end)) allocate(pnf%m_deadstemn_to_litter(beg:end)) allocate(pnf%m_livecrootn_to_litter(beg:end)) allocate(pnf%m_deadcrootn_to_litter(beg:end)) allocate(pnf%m_retransn_to_litter(beg:end)) allocate(pnf%hrv_leafn_to_litter(beg:end)) allocate(pnf%hrv_frootn_to_litter(beg:end)) allocate(pnf%hrv_leafn_storage_to_litter(beg:end)) allocate(pnf%hrv_frootn_storage_to_litter(beg:end)) allocate(pnf%hrv_livestemn_storage_to_litter(beg:end)) allocate(pnf%hrv_deadstemn_storage_to_litter(beg:end)) allocate(pnf%hrv_livecrootn_storage_to_litter(beg:end)) allocate(pnf%hrv_deadcrootn_storage_to_litter(beg:end)) allocate(pnf%hrv_leafn_xfer_to_litter(beg:end)) allocate(pnf%hrv_frootn_xfer_to_litter(beg:end)) allocate(pnf%hrv_livestemn_xfer_to_litter(beg:end)) allocate(pnf%hrv_deadstemn_xfer_to_litter(beg:end)) allocate(pnf%hrv_livecrootn_xfer_to_litter(beg:end)) allocate(pnf%hrv_deadcrootn_xfer_to_litter(beg:end)) allocate(pnf%hrv_livestemn_to_litter(beg:end)) allocate(pnf%hrv_deadstemn_to_prod10n(beg:end)) allocate(pnf%hrv_deadstemn_to_prod100n(beg:end)) allocate(pnf%hrv_livecrootn_to_litter(beg:end)) allocate(pnf%hrv_deadcrootn_to_litter(beg:end)) allocate(pnf%hrv_retransn_to_litter(beg:end)) allocate(pnf%m_leafn_to_fire(beg:end)) allocate(pnf%m_frootn_to_fire(beg:end)) allocate(pnf%m_leafn_storage_to_fire(beg:end)) allocate(pnf%m_frootn_storage_to_fire(beg:end)) allocate(pnf%m_livestemn_storage_to_fire(beg:end)) allocate(pnf%m_deadstemn_storage_to_fire(beg:end)) allocate(pnf%m_livecrootn_storage_to_fire(beg:end)) allocate(pnf%m_deadcrootn_storage_to_fire(beg:end)) allocate(pnf%m_leafn_xfer_to_fire(beg:end)) allocate(pnf%m_frootn_xfer_to_fire(beg:end)) allocate(pnf%m_livestemn_xfer_to_fire(beg:end)) allocate(pnf%m_deadstemn_xfer_to_fire(beg:end)) allocate(pnf%m_livecrootn_xfer_to_fire(beg:end)) allocate(pnf%m_deadcrootn_xfer_to_fire(beg:end)) allocate(pnf%m_livestemn_to_fire(beg:end)) allocate(pnf%m_deadstemn_to_fire(beg:end)) allocate(pnf%m_deadstemn_to_litter_fire(beg:end)) allocate(pnf%m_livecrootn_to_fire(beg:end)) allocate(pnf%m_deadcrootn_to_fire(beg:end)) allocate(pnf%m_deadcrootn_to_litter_fire(beg:end)) allocate(pnf%m_retransn_to_fire(beg:end)) allocate(pnf%leafn_xfer_to_leafn(beg:end)) allocate(pnf%frootn_xfer_to_frootn(beg:end)) allocate(pnf%livestemn_xfer_to_livestemn(beg:end)) allocate(pnf%deadstemn_xfer_to_deadstemn(beg:end)) allocate(pnf%livecrootn_xfer_to_livecrootn(beg:end)) allocate(pnf%deadcrootn_xfer_to_deadcrootn(beg:end)) allocate(pnf%leafn_to_litter(beg:end)) allocate(pnf%leafn_to_retransn(beg:end)) allocate(pnf%frootn_to_litter(beg:end)) allocate(pnf%retransn_to_npool(beg:end)) allocate(pnf%sminn_to_npool(beg:end)) allocate(pnf%npool_to_leafn(beg:end)) allocate(pnf%npool_to_leafn_storage(beg:end)) allocate(pnf%npool_to_frootn(beg:end)) allocate(pnf%npool_to_frootn_storage(beg:end)) allocate(pnf%npool_to_livestemn(beg:end)) allocate(pnf%npool_to_livestemn_storage(beg:end)) allocate(pnf%npool_to_deadstemn(beg:end)) allocate(pnf%npool_to_deadstemn_storage(beg:end)) allocate(pnf%npool_to_livecrootn(beg:end)) allocate(pnf%npool_to_livecrootn_storage(beg:end)) allocate(pnf%npool_to_deadcrootn(beg:end)) allocate(pnf%npool_to_deadcrootn_storage(beg:end)) allocate(pnf%leafn_storage_to_xfer(beg:end)) allocate(pnf%frootn_storage_to_xfer(beg:end)) allocate(pnf%livestemn_storage_to_xfer(beg:end)) allocate(pnf%deadstemn_storage_to_xfer(beg:end)) allocate(pnf%livecrootn_storage_to_xfer(beg:end)) allocate(pnf%deadcrootn_storage_to_xfer(beg:end)) allocate(pnf%livestemn_to_deadstemn(beg:end)) allocate(pnf%livestemn_to_retransn(beg:end)) allocate(pnf%livecrootn_to_deadcrootn(beg:end)) allocate(pnf%livecrootn_to_retransn(beg:end)) allocate(pnf%ndeploy(beg:end)) allocate(pnf%pft_ninputs(beg:end)) allocate(pnf%pft_noutputs(beg:end)) allocate(pnf%wood_harvestn(beg:end)) allocate(pnf%pft_fire_nloss(beg:end)) pnf%m_leafn_to_litter(beg:end) = nan pnf%m_frootn_to_litter(beg:end) = nan pnf%m_leafn_storage_to_litter(beg:end) = nan pnf%m_frootn_storage_to_litter(beg:end) = nan pnf%m_livestemn_storage_to_litter(beg:end) = nan pnf%m_deadstemn_storage_to_litter(beg:end) = nan pnf%m_livecrootn_storage_to_litter(beg:end) = nan pnf%m_deadcrootn_storage_to_litter(beg:end) = nan pnf%m_leafn_xfer_to_litter(beg:end) = nan pnf%m_frootn_xfer_to_litter(beg:end) = nan pnf%m_livestemn_xfer_to_litter(beg:end) = nan pnf%m_deadstemn_xfer_to_litter(beg:end) = nan pnf%m_livecrootn_xfer_to_litter(beg:end) = nan pnf%m_deadcrootn_xfer_to_litter(beg:end) = nan pnf%m_livestemn_to_litter(beg:end) = nan pnf%m_deadstemn_to_litter(beg:end) = nan pnf%m_livecrootn_to_litter(beg:end) = nan pnf%m_deadcrootn_to_litter(beg:end) = nan pnf%m_retransn_to_litter(beg:end) = nan pnf%hrv_leafn_to_litter(beg:end) = nan pnf%hrv_frootn_to_litter(beg:end) = nan pnf%hrv_leafn_storage_to_litter(beg:end) = nan pnf%hrv_frootn_storage_to_litter(beg:end) = nan pnf%hrv_livestemn_storage_to_litter(beg:end) = nan pnf%hrv_deadstemn_storage_to_litter(beg:end) = nan pnf%hrv_livecrootn_storage_to_litter(beg:end) = nan pnf%hrv_deadcrootn_storage_to_litter(beg:end) = nan pnf%hrv_leafn_xfer_to_litter(beg:end) = nan pnf%hrv_frootn_xfer_to_litter(beg:end) = nan pnf%hrv_livestemn_xfer_to_litter(beg:end) = nan pnf%hrv_deadstemn_xfer_to_litter(beg:end) = nan pnf%hrv_livecrootn_xfer_to_litter(beg:end) = nan pnf%hrv_deadcrootn_xfer_to_litter(beg:end) = nan pnf%hrv_livestemn_to_litter(beg:end) = nan pnf%hrv_deadstemn_to_prod10n(beg:end) = nan pnf%hrv_deadstemn_to_prod100n(beg:end) = nan pnf%hrv_livecrootn_to_litter(beg:end) = nan pnf%hrv_deadcrootn_to_litter(beg:end) = nan pnf%hrv_retransn_to_litter(beg:end) = nan pnf%m_leafn_to_fire(beg:end) = nan pnf%m_frootn_to_fire(beg:end) = nan pnf%m_leafn_storage_to_fire(beg:end) = nan pnf%m_frootn_storage_to_fire(beg:end) = nan pnf%m_livestemn_storage_to_fire(beg:end) = nan pnf%m_deadstemn_storage_to_fire(beg:end) = nan pnf%m_livecrootn_storage_to_fire(beg:end) = nan pnf%m_deadcrootn_storage_to_fire(beg:end) = nan pnf%m_leafn_xfer_to_fire(beg:end) = nan pnf%m_frootn_xfer_to_fire(beg:end) = nan pnf%m_livestemn_xfer_to_fire(beg:end) = nan pnf%m_deadstemn_xfer_to_fire(beg:end) = nan pnf%m_livecrootn_xfer_to_fire(beg:end) = nan pnf%m_deadcrootn_xfer_to_fire(beg:end) = nan pnf%m_livestemn_to_fire(beg:end) = nan pnf%m_deadstemn_to_fire(beg:end) = nan pnf%m_deadstemn_to_litter_fire(beg:end) = nan pnf%m_livecrootn_to_fire(beg:end) = nan pnf%m_deadcrootn_to_fire(beg:end) = nan pnf%m_deadcrootn_to_litter_fire(beg:end) = nan pnf%m_retransn_to_fire(beg:end) = nan pnf%leafn_xfer_to_leafn(beg:end) = nan pnf%frootn_xfer_to_frootn(beg:end) = nan pnf%livestemn_xfer_to_livestemn(beg:end) = nan pnf%deadstemn_xfer_to_deadstemn(beg:end) = nan pnf%livecrootn_xfer_to_livecrootn(beg:end) = nan pnf%deadcrootn_xfer_to_deadcrootn(beg:end) = nan pnf%leafn_to_litter(beg:end) = nan pnf%leafn_to_retransn(beg:end) = nan pnf%frootn_to_litter(beg:end) = nan pnf%retransn_to_npool(beg:end) = nan pnf%sminn_to_npool(beg:end) = nan pnf%npool_to_leafn(beg:end) = nan pnf%npool_to_leafn_storage(beg:end) = nan pnf%npool_to_frootn(beg:end) = nan pnf%npool_to_frootn_storage(beg:end) = nan pnf%npool_to_livestemn(beg:end) = nan pnf%npool_to_livestemn_storage(beg:end) = nan pnf%npool_to_deadstemn(beg:end) = nan pnf%npool_to_deadstemn_storage(beg:end) = nan pnf%npool_to_livecrootn(beg:end) = nan pnf%npool_to_livecrootn_storage(beg:end) = nan pnf%npool_to_deadcrootn(beg:end) = nan pnf%npool_to_deadcrootn_storage(beg:end) = nan pnf%leafn_storage_to_xfer(beg:end) = nan pnf%frootn_storage_to_xfer(beg:end) = nan pnf%livestemn_storage_to_xfer(beg:end) = nan pnf%deadstemn_storage_to_xfer(beg:end) = nan pnf%livecrootn_storage_to_xfer(beg:end) = nan pnf%deadcrootn_storage_to_xfer(beg:end) = nan pnf%livestemn_to_deadstemn(beg:end) = nan pnf%livestemn_to_retransn(beg:end) = nan pnf%livecrootn_to_deadcrootn(beg:end) = nan pnf%livecrootn_to_retransn(beg:end) = nan pnf%ndeploy(beg:end) = nan pnf%pft_ninputs(beg:end) = nan pnf%pft_noutputs(beg:end) = nan pnf%wood_harvestn(beg:end) = nan pnf%pft_fire_nloss(beg:end) = nan end subroutine init_pft_nflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_vflux_type ! ! !INTERFACE: subroutine init_pft_vflux_type(beg, end, pvf) 2,1 ! ! !DESCRIPTION: ! Initialize pft VOC flux variables ! use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_vflux_type), intent(inout) :: pvf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! (heald, 08/06) ! !EOP !------------------------------------------------------------------------ allocate(pvf%vocflx_tot(beg:end)) allocate(pvf%vocflx(beg:end,1:nvoc)) allocate(pvf%vocflx_1(beg:end)) allocate(pvf%vocflx_2(beg:end)) allocate(pvf%vocflx_3(beg:end)) allocate(pvf%vocflx_4(beg:end)) allocate(pvf%vocflx_5(beg:end)) allocate(pvf%Eopt_out(beg:end)) allocate(pvf%topt_out(beg:end)) allocate(pvf%alpha_out(beg:end)) allocate(pvf%cp_out(beg:end)) allocate(pvf%para_out(beg:end)) allocate(pvf%par24a_out(beg:end)) allocate(pvf%par240a_out(beg:end)) allocate(pvf%paru_out(beg:end)) allocate(pvf%par24u_out(beg:end)) allocate(pvf%par240u_out(beg:end)) allocate(pvf%gamma_out(beg:end)) allocate(pvf%gammaL_out(beg:end)) allocate(pvf%gammaT_out(beg:end)) allocate(pvf%gammaP_out(beg:end)) allocate(pvf%gammaA_out(beg:end)) allocate(pvf%gammaS_out(beg:end)) pvf%vocflx_tot(beg:end) = spval pvf%vocflx(beg:end,1:nvoc) = spval pvf%vocflx_1(beg:end) = spval pvf%vocflx_2(beg:end) = spval pvf%vocflx_3(beg:end) = spval pvf%vocflx_4(beg:end) = spval pvf%vocflx_5(beg:end) = spval pvf%Eopt_out(beg:end) = nan pvf%topt_out(beg:end) = nan pvf%alpha_out(beg:end) = nan pvf%cp_out(beg:end) = nan pvf%para_out(beg:end) = nan pvf%par24a_out(beg:end) = nan pvf%par240a_out(beg:end) = nan pvf%paru_out(beg:end) = nan pvf%par24u_out(beg:end) = nan pvf%par240u_out(beg:end) = nan pvf%gamma_out(beg:end) = nan pvf%gammaL_out(beg:end) = nan pvf%gammaT_out(beg:end) = nan pvf%gammaP_out(beg:end) = nan pvf%gammaA_out(beg:end) = nan pvf%gammaS_out(beg:end) = nan end subroutine init_pft_vflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_dflux_type ! ! !INTERFACE: subroutine init_pft_dflux_type(beg, end, pdf) 2 ! ! !DESCRIPTION: ! Initialize pft dust flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_dflux_type), intent(inout):: pdf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(pdf%flx_mss_vrt_dst(beg:end,1:ndst)) allocate(pdf%flx_mss_vrt_dst_tot(beg:end)) allocate(pdf%vlc_trb(beg:end,1:ndst)) allocate(pdf%vlc_trb_1(beg:end)) allocate(pdf%vlc_trb_2(beg:end)) allocate(pdf%vlc_trb_3(beg:end)) allocate(pdf%vlc_trb_4(beg:end)) pdf%flx_mss_vrt_dst(beg:end,1:ndst) = nan pdf%flx_mss_vrt_dst_tot(beg:end) = nan pdf%vlc_trb(beg:end,1:ndst) = nan pdf%vlc_trb_1(beg:end) = nan pdf%vlc_trb_2(beg:end) = nan pdf%vlc_trb_3(beg:end) = nan pdf%vlc_trb_4(beg:end) = nan end subroutine init_pft_dflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_pft_depvd_type ! ! !INTERFACE: subroutine init_pft_depvd_type(beg, end, pdd) 1,1 use seq_drydep_mod, only: n_drydep, drydep_method, DD_XLND ! ! !DESCRIPTION: ! Initialize pft dep velocity variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (pft_depvd_type), intent(inout):: pdd integer :: i ! ! !REVISION HISTORY: ! Created by James Sulzman 541-929-6183 ! !EOP !------------------------------------------------------------------------ if ( n_drydep > 0 .and. drydep_method == DD_XLND )then allocate(pdd%drydepvel(beg:end,n_drydep)) pdd%drydepvel = nan end if end subroutine init_pft_depvd_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_pstate_type ! ! !INTERFACE: subroutine init_column_pstate_type(beg, end, cps) 4,1 ! ! !DESCRIPTION: ! Initialize column physical state variables ! ! !USES: use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_pstate_type), intent(inout):: cps ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(cps%snl(beg:end)) !* cannot be averaged up allocate(cps%isoicol(beg:end)) !* cannot be averaged up allocate(cps%bsw(beg:end,nlevgrnd)) allocate(cps%watsat(beg:end,nlevgrnd)) allocate(cps%watfc(beg:end,nlevgrnd)) allocate(cps%watdry(beg:end,nlevgrnd)) allocate(cps%watopt(beg:end,nlevgrnd)) allocate(cps%hksat(beg:end,nlevgrnd)) allocate(cps%sucsat(beg:end,nlevgrnd)) allocate(cps%csol(beg:end,nlevgrnd)) allocate(cps%tkmg(beg:end,nlevgrnd)) allocate(cps%tkdry(beg:end,nlevgrnd)) allocate(cps%tksatu(beg:end,nlevgrnd)) allocate(cps%smpmin(beg:end)) allocate(cps%hkdepth(beg:end)) allocate(cps%wtfact(beg:end)) allocate(cps%fracice(beg:end,nlevgrnd)) allocate(cps%gwc_thr(beg:end)) allocate(cps%mss_frc_cly_vld(beg:end)) allocate(cps%mbl_bsn_fct(beg:end)) allocate(cps%do_capsnow(beg:end)) allocate(cps%snowdp(beg:end)) allocate(cps%frac_sno (beg:end)) allocate(cps%zi(beg:end,-nlevsno+0:nlevgrnd)) allocate(cps%dz(beg:end,-nlevsno+1:nlevgrnd)) allocate(cps%z (beg:end,-nlevsno+1:nlevgrnd)) allocate(cps%frac_iceold(beg:end,-nlevsno+1:nlevgrnd)) allocate(cps%imelt(beg:end,-nlevsno+1:nlevgrnd)) allocate(cps%eff_porosity(beg:end,nlevgrnd)) allocate(cps%emg(beg:end)) allocate(cps%z0mg(beg:end)) allocate(cps%z0hg(beg:end)) allocate(cps%z0qg(beg:end)) allocate(cps%htvp(beg:end)) allocate(cps%beta(beg:end)) allocate(cps%zii(beg:end)) allocate(cps%albgrd(beg:end,numrad)) allocate(cps%albgri(beg:end,numrad)) allocate(cps%rootr_column(beg:end,nlevgrnd)) allocate(cps%rootfr_road_perv(beg:end,nlevgrnd)) allocate(cps%rootr_road_perv(beg:end,nlevgrnd)) allocate(cps%wf(beg:end)) ! allocate(cps%xirrig(beg:end)) allocate(cps%max_dayl(beg:end)) allocate(cps%bsw2(beg:end,nlevgrnd)) allocate(cps%psisat(beg:end,nlevgrnd)) allocate(cps%vwcsat(beg:end,nlevgrnd)) allocate(cps%soilpsi(beg:end,nlevgrnd)) allocate(cps%decl(beg:end)) allocate(cps%coszen(beg:end)) allocate(cps%fpi(beg:end)) allocate(cps%fpg(beg:end)) allocate(cps%annsum_counter(beg:end)) allocate(cps%cannsum_npp(beg:end)) allocate(cps%cannavg_t2m(beg:end)) allocate(cps%me(beg:end)) allocate(cps%fire_prob(beg:end)) allocate(cps%mean_fire_prob(beg:end)) allocate(cps%fireseasonl(beg:end)) allocate(cps%farea_burned(beg:end)) allocate(cps%ann_farea_burned(beg:end)) allocate(cps%albsnd_hst(beg:end,numrad)) allocate(cps%albsni_hst(beg:end,numrad)) allocate(cps%albsod(beg:end,numrad)) allocate(cps%albsoi(beg:end,numrad)) allocate(cps%flx_absdv(beg:end,-nlevsno+1:1)) allocate(cps%flx_absdn(beg:end,-nlevsno+1:1)) allocate(cps%flx_absiv(beg:end,-nlevsno+1:1)) allocate(cps%flx_absin(beg:end,-nlevsno+1:1)) allocate(cps%snw_rds(beg:end,-nlevsno+1:0)) allocate(cps%snw_rds_top(beg:end)) allocate(cps%sno_liq_top(beg:end)) allocate(cps%mss_bcpho(beg:end,-nlevsno+1:0)) allocate(cps%mss_bcphi(beg:end,-nlevsno+1:0)) allocate(cps%mss_bctot(beg:end,-nlevsno+1:0)) allocate(cps%mss_bc_col(beg:end)) allocate(cps%mss_bc_top(beg:end)) allocate(cps%mss_ocpho(beg:end,-nlevsno+1:0)) allocate(cps%mss_ocphi(beg:end,-nlevsno+1:0)) allocate(cps%mss_octot(beg:end,-nlevsno+1:0)) allocate(cps%mss_oc_col(beg:end)) allocate(cps%mss_oc_top(beg:end)) allocate(cps%mss_dst1(beg:end,-nlevsno+1:0)) allocate(cps%mss_dst2(beg:end,-nlevsno+1:0)) allocate(cps%mss_dst3(beg:end,-nlevsno+1:0)) allocate(cps%mss_dst4(beg:end,-nlevsno+1:0)) allocate(cps%mss_dsttot(beg:end,-nlevsno+1:0)) allocate(cps%mss_dst_col(beg:end)) allocate(cps%mss_dst_top(beg:end)) allocate(cps%h2osno_top(beg:end)) allocate(cps%mss_cnc_bcphi(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_bcpho(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_ocphi(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_ocpho(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_dst1(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_dst2(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_dst3(beg:end,-nlevsno+1:0)) allocate(cps%mss_cnc_dst4(beg:end,-nlevsno+1:0)) allocate(cps%albgrd_pur(beg:end,numrad)) allocate(cps%albgri_pur(beg:end,numrad)) allocate(cps%albgrd_bc(beg:end,numrad)) allocate(cps%albgri_bc(beg:end,numrad)) allocate(cps%albgrd_oc(beg:end,numrad)) allocate(cps%albgri_oc(beg:end,numrad)) allocate(cps%albgrd_dst(beg:end,numrad)) allocate(cps%albgri_dst(beg:end,numrad)) allocate(cps%dTdz_top(beg:end)) allocate(cps%snot_top(beg:end)) allocate(cps%forc_pbot(beg:end)) allocate(cps%forc_rho(beg:end)) allocate(cps%glc_topo(beg:end)) cps%isoicol(beg:end) = bigint cps%bsw(beg:end,1:nlevgrnd) = nan cps%watsat(beg:end,1:nlevgrnd) = nan cps%watfc(beg:end,1:nlevgrnd) = nan cps%watdry(beg:end,1:nlevgrnd) = nan cps%watopt(beg:end,1:nlevgrnd) = nan cps%hksat(beg:end,1:nlevgrnd) = nan cps%sucsat(beg:end,1:nlevgrnd) = nan cps%csol(beg:end,1:nlevgrnd) = nan cps%tkmg(beg:end,1:nlevgrnd) = nan cps%tkdry(beg:end,1:nlevgrnd) = nan cps%tksatu(beg:end,1:nlevgrnd) = nan cps%smpmin(beg:end) = nan cps%hkdepth(beg:end) = nan cps%wtfact(beg:end) = nan cps%fracice(beg:end,1:nlevgrnd) = nan cps%gwc_thr(beg:end) = nan cps%mss_frc_cly_vld(beg:end) = nan cps%mbl_bsn_fct(beg:end) = nan cps%do_capsnow (beg:end)= .false. cps%snowdp(beg:end) = nan cps%frac_sno(beg:end) = nan cps%zi(beg:end,-nlevsno+0:nlevgrnd) = nan cps%dz(beg:end,-nlevsno+1:nlevgrnd) = nan cps%z (beg:end,-nlevsno+1:nlevgrnd) = nan cps%frac_iceold(beg:end,-nlevsno+1:nlevgrnd) = spval cps%imelt(beg:end,-nlevsno+1:nlevgrnd) = bigint cps%eff_porosity(beg:end,1:nlevgrnd) = spval cps%emg(beg:end) = nan cps%z0mg(beg:end) = nan cps%z0hg(beg:end) = nan cps%z0qg(beg:end) = nan cps%htvp(beg:end) = nan cps%beta(beg:end) = nan cps%zii(beg:end) = nan cps%albgrd(beg:end,:numrad) = nan cps%albgri(beg:end,:numrad) = nan cps%rootr_column(beg:end,1:nlevgrnd) = spval cps%rootfr_road_perv(beg:end,1:nlevurb) = nan cps%rootr_road_perv(beg:end,1:nlevurb) = nan cps%wf(beg:end) = nan ! cps%xirrig(beg:end) = 0._r8 cps%bsw2(beg:end,1:nlevgrnd) = nan cps%psisat(beg:end,1:nlevgrnd) = nan cps%vwcsat(beg:end,1:nlevgrnd) = nan cps%soilpsi(beg:end,1:nlevgrnd) = spval cps%decl(beg:end) = nan cps%coszen(beg:end) = nan cps%fpi(beg:end) = nan cps%fpg(beg:end) = nan cps%annsum_counter(beg:end) = nan cps%cannsum_npp(beg:end) = nan cps%cannavg_t2m(beg:end) = nan cps%me(beg:end) = nan cps%fire_prob(beg:end) = nan cps%mean_fire_prob(beg:end) = nan cps%fireseasonl(beg:end) = nan cps%farea_burned(beg:end) = nan cps%ann_farea_burned(beg:end) = nan cps%albsnd_hst(beg:end,:numrad) = spval cps%albsni_hst(beg:end,:numrad) = spval cps%albsod(beg:end,:numrad) = nan cps%albsoi(beg:end,:numrad) = nan cps%flx_absdv(beg:end,-nlevsno+1:1) = spval cps%flx_absdn(beg:end,-nlevsno+1:1) = spval cps%flx_absiv(beg:end,-nlevsno+1:1) = spval cps%flx_absin(beg:end,-nlevsno+1:1) = spval cps%snw_rds(beg:end,-nlevsno+1:0) = nan cps%snw_rds_top(beg:end) = nan cps%sno_liq_top(beg:end) = nan cps%mss_bcpho(beg:end,-nlevsno+1:0) = nan cps%mss_bcphi(beg:end,-nlevsno+1:0) = nan cps%mss_bctot(beg:end,-nlevsno+1:0) = nan cps%mss_bc_col(beg:end) = nan cps%mss_bc_top(beg:end) = nan cps%mss_ocpho(beg:end,-nlevsno+1:0) = nan cps%mss_ocphi(beg:end,-nlevsno+1:0) = nan cps%mss_octot(beg:end,-nlevsno+1:0) = nan cps%mss_oc_col(beg:end) = nan cps%mss_oc_top(beg:end) = nan cps%mss_dst1(beg:end,-nlevsno+1:0) = nan cps%mss_dst2(beg:end,-nlevsno+1:0) = nan cps%mss_dst3(beg:end,-nlevsno+1:0) = nan cps%mss_dst4(beg:end,-nlevsno+1:0) = nan cps%mss_dsttot(beg:end,-nlevsno+1:0) = nan cps%mss_dst_col(beg:end) = nan cps%mss_dst_top(beg:end) = nan cps%h2osno_top(beg:end) = nan cps%mss_cnc_bcphi(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_bcpho(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_ocphi(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_ocpho(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_dst1(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_dst2(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_dst3(beg:end,-nlevsno+1:0) = nan cps%mss_cnc_dst4(beg:end,-nlevsno+1:0) = nan cps%albgrd_pur(beg:end,:numrad) = nan cps%albgri_pur(beg:end,:numrad) = nan cps%albgrd_bc(beg:end,:numrad) = nan cps%albgri_bc(beg:end,:numrad) = nan cps%albgrd_oc(beg:end,:numrad) = nan cps%albgri_oc(beg:end,:numrad) = nan cps%albgrd_dst(beg:end,:numrad) = nan cps%albgri_dst(beg:end,:numrad) = nan cps%dTdz_top(beg:end) = nan cps%snot_top(beg:end) = nan cps%forc_pbot(beg:end) = nan cps%forc_rho(beg:end) = nan cps%glc_topo(beg:end) = nan end subroutine init_column_pstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_estate_type ! ! !INTERFACE: subroutine init_column_estate_type(beg, end, ces) 4,1 ! ! !DESCRIPTION: ! Initialize column energy state variables ! ! !USES: use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_estate_type), intent(inout):: ces ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(ces%t_grnd(beg:end)) allocate(ces%t_grnd_u(beg:end)) allocate(ces%t_grnd_r(beg:end)) allocate(ces%dt_grnd(beg:end)) allocate(ces%t_soisno(beg:end,-nlevsno+1:nlevgrnd)) allocate(ces%t_soi_10cm(beg:end)) allocate(ces%t_lake(beg:end,1:nlevlak)) allocate(ces%tssbef(beg:end,-nlevsno+1:nlevgrnd)) allocate(ces%thv(beg:end)) allocate(ces%hc_soi(beg:end)) allocate(ces%hc_soisno(beg:end)) allocate(ces%forc_t(beg:end)) allocate(ces%forc_th(beg:end)) ces%t_grnd(beg:end) = nan ces%t_grnd_u(beg:end) = nan ces%t_grnd_r(beg:end) = nan ces%dt_grnd(beg:end) = nan ces%t_soisno(beg:end,-nlevsno+1:nlevgrnd) = spval ces%t_soi_10cm(beg:end) = spval ces%t_lake(beg:end,1:nlevlak) = nan ces%tssbef(beg:end,-nlevsno+1:nlevgrnd) = nan ces%thv(beg:end) = nan ces%hc_soi(beg:end) = nan ces%hc_soisno(beg:end) = nan ces%forc_t(beg:end) = nan ces%forc_th(beg:end) = nan end subroutine init_column_estate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_wstate_type ! ! !INTERFACE: subroutine init_column_wstate_type(beg, end, cws) 4,1 ! ! !DESCRIPTION: ! Initialize column water state variables ! ! !USES: use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_wstate_type), intent(inout):: cws !column water state ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(cws%h2osno(beg:end)) allocate(cws%h2osoi_liq(beg:end,-nlevsno+1:nlevgrnd)) allocate(cws%h2osoi_ice(beg:end,-nlevsno+1:nlevgrnd)) allocate(cws%h2osoi_liqice_10cm(beg:end)) allocate(cws%h2osoi_vol(beg:end,1:nlevgrnd)) allocate(cws%h2osno_old(beg:end)) allocate(cws%qg(beg:end)) allocate(cws%dqgdT(beg:end)) allocate(cws%snowice(beg:end)) allocate(cws%snowliq(beg:end)) allocate(cws%soilalpha(beg:end)) allocate(cws%soilbeta(beg:end)) allocate(cws%soilalpha_u(beg:end)) allocate(cws%zwt(beg:end)) allocate(cws%fcov(beg:end)) allocate(cws%fsat(beg:end)) allocate(cws%wa(beg:end)) allocate(cws%wt(beg:end)) allocate(cws%qcharge(beg:end)) allocate(cws%smp_l(beg:end,1:nlevgrnd)) allocate(cws%hk_l(beg:end,1:nlevgrnd)) allocate(cws%forc_q(beg:end)) cws%h2osno(beg:end) = nan cws%h2osoi_liq(beg:end,-nlevsno+1:nlevgrnd)= spval cws%h2osoi_ice(beg:end,-nlevsno+1:nlevgrnd) = spval cws%h2osoi_liqice_10cm(beg:end) = spval cws%h2osoi_vol(beg:end,1:nlevgrnd) = spval cws%h2osno_old(beg:end) = nan cws%qg(beg:end) = nan cws%dqgdT(beg:end) = nan cws%snowice(beg:end) = nan cws%snowliq(beg:end) = nan cws%soilalpha(beg:end) = nan cws%soilbeta(beg:end) = nan cws%soilalpha_u(beg:end) = nan cws%zwt(beg:end) = nan cws%fcov(beg:end) = nan cws%fsat(beg:end) = nan cws%wa(beg:end) = nan cws%wt(beg:end) = nan cws%qcharge(beg:end) = nan cws%smp_l(beg:end,1:nlevgrnd) = spval cws%hk_l(beg:end,1:nlevgrnd) = spval cws%forc_q(beg:end) = nan end subroutine init_column_wstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_cstate_type ! ! !INTERFACE: subroutine init_column_cstate_type(beg, end, ccs) 5 ! ! !DESCRIPTION: ! Initialize column carbon state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_cstate_type), intent(inout):: ccs ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(ccs%soilc(beg:end)) allocate(ccs%cwdc(beg:end)) allocate(ccs%litr1c(beg:end)) allocate(ccs%litr2c(beg:end)) allocate(ccs%litr3c(beg:end)) allocate(ccs%soil1c(beg:end)) allocate(ccs%soil2c(beg:end)) allocate(ccs%soil3c(beg:end)) allocate(ccs%soil4c(beg:end)) allocate(ccs%seedc(beg:end)) allocate(ccs%col_ctrunc(beg:end)) allocate(ccs%prod10c(beg:end)) allocate(ccs%prod100c(beg:end)) allocate(ccs%totprodc(beg:end)) allocate(ccs%totlitc(beg:end)) allocate(ccs%totsomc(beg:end)) allocate(ccs%totecosysc(beg:end)) allocate(ccs%totcolc(beg:end)) ccs%soilc(beg:end) = nan ccs%cwdc(beg:end) = nan ccs%litr1c(beg:end) = nan ccs%litr2c(beg:end) = nan ccs%litr3c(beg:end) = nan ccs%soil1c(beg:end) = nan ccs%soil2c(beg:end) = nan ccs%soil3c(beg:end) = nan ccs%soil4c(beg:end) = nan ccs%seedc(beg:end) = nan ccs%col_ctrunc(beg:end) = nan ccs%prod10c(beg:end) = nan ccs%prod100c(beg:end) = nan ccs%totprodc(beg:end) = nan ccs%totlitc(beg:end) = nan ccs%totsomc(beg:end) = nan ccs%totecosysc(beg:end) = nan ccs%totcolc(beg:end) = nan end subroutine init_column_cstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_nstate_type ! ! !INTERFACE: subroutine init_column_nstate_type(beg, end, cns) 4 ! ! !DESCRIPTION: ! Initialize column nitrogen state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_nstate_type), intent(inout):: cns ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(cns%cwdn(beg:end)) allocate(cns%litr1n(beg:end)) allocate(cns%litr2n(beg:end)) allocate(cns%litr3n(beg:end)) allocate(cns%soil1n(beg:end)) allocate(cns%soil2n(beg:end)) allocate(cns%soil3n(beg:end)) allocate(cns%soil4n(beg:end)) allocate(cns%sminn(beg:end)) allocate(cns%col_ntrunc(beg:end)) allocate(cns%seedn(beg:end)) allocate(cns%prod10n(beg:end)) allocate(cns%prod100n(beg:end)) allocate(cns%totprodn(beg:end)) allocate(cns%totlitn(beg:end)) allocate(cns%totsomn(beg:end)) allocate(cns%totecosysn(beg:end)) allocate(cns%totcoln(beg:end)) cns%cwdn(beg:end) = nan cns%litr1n(beg:end) = nan cns%litr2n(beg:end) = nan cns%litr3n(beg:end) = nan cns%soil1n(beg:end) = nan cns%soil2n(beg:end) = nan cns%soil3n(beg:end) = nan cns%soil4n(beg:end) = nan cns%sminn(beg:end) = nan cns%col_ntrunc(beg:end) = nan cns%seedn(beg:end) = nan cns%prod10n(beg:end) = nan cns%prod100n(beg:end) = nan cns%totprodn(beg:end) = nan cns%totlitn(beg:end) = nan cns%totsomn(beg:end) = nan cns%totecosysn(beg:end) = nan cns%totcoln(beg:end) = nan end subroutine init_column_nstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_eflux_type ! ! !INTERFACE: subroutine init_column_eflux_type(beg, end, cef) 4 ! ! !DESCRIPTION: ! Initialize column energy flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_eflux_type), intent(inout):: cef ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(cef%eflx_snomelt(beg:end)) allocate(cef%eflx_snomelt_u(beg:end)) allocate(cef%eflx_snomelt_r(beg:end)) allocate(cef%eflx_impsoil(beg:end)) allocate(cef%eflx_fgr12(beg:end)) allocate(cef%eflx_building_heat(beg:end)) allocate(cef%eflx_urban_ac(beg:end)) allocate(cef%eflx_urban_heat(beg:end)) allocate(cef%eflx_bot(beg:end)) cef%eflx_snomelt(beg:end) = nan cef%eflx_snomelt_u(beg:end) = nan cef%eflx_snomelt_r(beg:end) = nan cef%eflx_impsoil(beg:end) = nan cef%eflx_fgr12(beg:end) = nan cef%eflx_building_heat(beg:end) = nan cef%eflx_urban_ac(beg:end) = nan cef%eflx_urban_heat(beg:end) = nan cef%eflx_bot(beg:end) = nan end subroutine init_column_eflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_wflux_type ! ! !INTERFACE: subroutine init_column_wflux_type(beg, end, cwf) 4,1 ! ! !DESCRIPTION: ! Initialize column water flux variables ! ! !USES: use clm_varcon, only : spval ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_wflux_type), intent(inout):: cwf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(cwf%qflx_infl(beg:end)) allocate(cwf%qflx_surf(beg:end)) allocate(cwf%qflx_drain(beg:end)) allocate(cwf%qflx_top_soil(beg:end)) allocate(cwf%qflx_snomelt(beg:end)) allocate(cwf%qflx_qrgwl(beg:end)) allocate(cwf%qflx_runoff(beg:end)) allocate(cwf%qflx_runoff_u(beg:end)) allocate(cwf%qflx_runoff_r(beg:end)) allocate(cwf%qmelt(beg:end)) allocate(cwf%h2ocan_loss(beg:end)) allocate(cwf%qflx_rsub_sat(beg:end)) allocate(cwf%flx_bc_dep_dry(beg:end)) allocate(cwf%flx_bc_dep_wet(beg:end)) allocate(cwf%flx_bc_dep_pho(beg:end)) allocate(cwf%flx_bc_dep_phi(beg:end)) allocate(cwf%flx_bc_dep(beg:end)) allocate(cwf%flx_oc_dep_dry(beg:end)) allocate(cwf%flx_oc_dep_wet(beg:end)) allocate(cwf%flx_oc_dep_pho(beg:end)) allocate(cwf%flx_oc_dep_phi(beg:end)) allocate(cwf%flx_oc_dep(beg:end)) allocate(cwf%flx_dst_dep_dry1(beg:end)) allocate(cwf%flx_dst_dep_wet1(beg:end)) allocate(cwf%flx_dst_dep_dry2(beg:end)) allocate(cwf%flx_dst_dep_wet2(beg:end)) allocate(cwf%flx_dst_dep_dry3(beg:end)) allocate(cwf%flx_dst_dep_wet3(beg:end)) allocate(cwf%flx_dst_dep_dry4(beg:end)) allocate(cwf%flx_dst_dep_wet4(beg:end)) allocate(cwf%flx_dst_dep(beg:end)) allocate(cwf%qflx_snofrz_lyr(beg:end,-nlevsno+1:0)) allocate(cwf%qflx_glcice(beg:end)) allocate(cwf%glc_rofi(beg:end)) allocate(cwf%glc_rofl(beg:end)) cwf%qflx_infl(beg:end) = nan cwf%qflx_surf(beg:end) = nan cwf%qflx_drain(beg:end) = nan cwf%qflx_top_soil(beg:end) = spval cwf%qflx_snomelt(beg:end) = nan cwf%qflx_qrgwl(beg:end) = nan cwf%qflx_runoff(beg:end) = nan cwf%qflx_runoff_u(beg:end) = nan cwf%qflx_runoff_r(beg:end) = nan cwf%qmelt(beg:end) = nan cwf%h2ocan_loss(beg:end) = nan cwf%qflx_rsub_sat(beg:end) = nan cwf%flx_bc_dep_dry(beg:end) = nan cwf%flx_bc_dep_wet(beg:end) = nan cwf%flx_bc_dep_pho(beg:end) = nan cwf%flx_bc_dep_phi(beg:end) = nan cwf%flx_bc_dep(beg:end) = nan cwf%flx_oc_dep_dry(beg:end) = nan cwf%flx_oc_dep_wet(beg:end) = nan cwf%flx_oc_dep_pho(beg:end) = nan cwf%flx_oc_dep_phi(beg:end) = nan cwf%flx_oc_dep(beg:end) = nan cwf%flx_dst_dep_dry1(beg:end) = nan cwf%flx_dst_dep_wet1(beg:end) = nan cwf%flx_dst_dep_dry2(beg:end) = nan cwf%flx_dst_dep_wet2(beg:end) = nan cwf%flx_dst_dep_dry3(beg:end) = nan cwf%flx_dst_dep_wet3(beg:end) = nan cwf%flx_dst_dep_dry4(beg:end) = nan cwf%flx_dst_dep_wet4(beg:end) = nan cwf%flx_dst_dep(beg:end) = nan cwf%qflx_snofrz_lyr(beg:end,-nlevsno+1:0) = spval cwf%qflx_glcice(beg:end) = spval cwf%glc_rofi(beg:end) = nan cwf%glc_rofl(beg:end) = nan end subroutine init_column_wflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_cflux_type ! ! !INTERFACE: subroutine init_column_cflux_type(beg, end, ccf) 2 ! ! !DESCRIPTION: ! Initialize column carbon flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_cflux_type), intent(inout):: ccf ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(ccf%m_leafc_to_litr1c(beg:end)) allocate(ccf%m_leafc_to_litr2c(beg:end)) allocate(ccf%m_leafc_to_litr3c(beg:end)) allocate(ccf%m_frootc_to_litr1c(beg:end)) allocate(ccf%m_frootc_to_litr2c(beg:end)) allocate(ccf%m_frootc_to_litr3c(beg:end)) allocate(ccf%m_leafc_storage_to_litr1c(beg:end)) allocate(ccf%m_frootc_storage_to_litr1c(beg:end)) allocate(ccf%m_livestemc_storage_to_litr1c(beg:end)) allocate(ccf%m_deadstemc_storage_to_litr1c(beg:end)) allocate(ccf%m_livecrootc_storage_to_litr1c(beg:end)) allocate(ccf%m_deadcrootc_storage_to_litr1c(beg:end)) allocate(ccf%m_leafc_xfer_to_litr1c(beg:end)) allocate(ccf%m_frootc_xfer_to_litr1c(beg:end)) allocate(ccf%m_livestemc_xfer_to_litr1c(beg:end)) allocate(ccf%m_deadstemc_xfer_to_litr1c(beg:end)) allocate(ccf%m_livecrootc_xfer_to_litr1c(beg:end)) allocate(ccf%m_deadcrootc_xfer_to_litr1c(beg:end)) allocate(ccf%m_livestemc_to_cwdc(beg:end)) allocate(ccf%m_deadstemc_to_cwdc(beg:end)) allocate(ccf%m_livecrootc_to_cwdc(beg:end)) allocate(ccf%m_deadcrootc_to_cwdc(beg:end)) allocate(ccf%m_gresp_storage_to_litr1c(beg:end)) allocate(ccf%m_gresp_xfer_to_litr1c(beg:end)) allocate(ccf%m_deadstemc_to_cwdc_fire(beg:end)) allocate(ccf%m_deadcrootc_to_cwdc_fire(beg:end)) allocate(ccf%hrv_leafc_to_litr1c(beg:end)) allocate(ccf%hrv_leafc_to_litr2c(beg:end)) allocate(ccf%hrv_leafc_to_litr3c(beg:end)) allocate(ccf%hrv_frootc_to_litr1c(beg:end)) allocate(ccf%hrv_frootc_to_litr2c(beg:end)) allocate(ccf%hrv_frootc_to_litr3c(beg:end)) allocate(ccf%hrv_livestemc_to_cwdc(beg:end)) allocate(ccf%hrv_deadstemc_to_prod10c(beg:end)) allocate(ccf%hrv_deadstemc_to_prod100c(beg:end)) allocate(ccf%hrv_livecrootc_to_cwdc(beg:end)) allocate(ccf%hrv_deadcrootc_to_cwdc(beg:end)) allocate(ccf%hrv_leafc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_frootc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_livestemc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_deadstemc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_livecrootc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_deadcrootc_storage_to_litr1c(beg:end)) allocate(ccf%hrv_gresp_storage_to_litr1c(beg:end)) allocate(ccf%hrv_leafc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_frootc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_livestemc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_deadstemc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_livecrootc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_deadcrootc_xfer_to_litr1c(beg:end)) allocate(ccf%hrv_gresp_xfer_to_litr1c(beg:end)) allocate(ccf%m_litr1c_to_fire(beg:end)) allocate(ccf%m_litr2c_to_fire(beg:end)) allocate(ccf%m_litr3c_to_fire(beg:end)) allocate(ccf%m_cwdc_to_fire(beg:end)) allocate(ccf%leafc_to_litr1c(beg:end)) allocate(ccf%leafc_to_litr2c(beg:end)) allocate(ccf%leafc_to_litr3c(beg:end)) allocate(ccf%frootc_to_litr1c(beg:end)) allocate(ccf%frootc_to_litr2c(beg:end)) allocate(ccf%frootc_to_litr3c(beg:end)) allocate(ccf%cwdc_to_litr2c(beg:end)) allocate(ccf%cwdc_to_litr3c(beg:end)) allocate(ccf%litr1_hr(beg:end)) allocate(ccf%litr1c_to_soil1c(beg:end)) allocate(ccf%litr2_hr(beg:end)) allocate(ccf%litr2c_to_soil2c(beg:end)) allocate(ccf%litr3_hr(beg:end)) allocate(ccf%litr3c_to_soil3c(beg:end)) allocate(ccf%soil1_hr(beg:end)) allocate(ccf%soil1c_to_soil2c(beg:end)) allocate(ccf%soil2_hr(beg:end)) allocate(ccf%soil2c_to_soil3c(beg:end)) allocate(ccf%soil3_hr(beg:end)) allocate(ccf%soil3c_to_soil4c(beg:end)) allocate(ccf%soil4_hr(beg:end)) #ifdef CN allocate(ccf%dwt_seedc_to_leaf(beg:end)) allocate(ccf%dwt_seedc_to_deadstem(beg:end)) allocate(ccf%dwt_conv_cflux(beg:end)) allocate(ccf%dwt_prod10c_gain(beg:end)) allocate(ccf%dwt_prod100c_gain(beg:end)) allocate(ccf%dwt_frootc_to_litr1c(beg:end)) allocate(ccf%dwt_frootc_to_litr2c(beg:end)) allocate(ccf%dwt_frootc_to_litr3c(beg:end)) allocate(ccf%dwt_livecrootc_to_cwdc(beg:end)) allocate(ccf%dwt_deadcrootc_to_cwdc(beg:end)) allocate(ccf%dwt_closs(beg:end)) allocate(ccf%landuseflux(beg:end)) allocate(ccf%landuptake(beg:end)) allocate(ccf%prod10c_loss(beg:end)) allocate(ccf%prod100c_loss(beg:end)) allocate(ccf%product_closs(beg:end)) #endif allocate(ccf%lithr(beg:end)) allocate(ccf%somhr(beg:end)) allocate(ccf%hr(beg:end)) allocate(ccf%sr(beg:end)) allocate(ccf%er(beg:end)) allocate(ccf%litfire(beg:end)) allocate(ccf%somfire(beg:end)) allocate(ccf%totfire(beg:end)) allocate(ccf%nep(beg:end)) allocate(ccf%nbp(beg:end)) allocate(ccf%nee(beg:end)) allocate(ccf%col_cinputs(beg:end)) allocate(ccf%col_coutputs(beg:end)) allocate(ccf%col_fire_closs(beg:end)) #if (defined CLAMP) && (defined CN) !CLAMP allocate(ccf%cwdc_hr(beg:end)) allocate(ccf%cwdc_loss(beg:end)) allocate(ccf%litterc_loss(beg:end)) #endif ccf%m_leafc_to_litr1c(beg:end) = nan ccf%m_leafc_to_litr2c(beg:end) = nan ccf%m_leafc_to_litr3c(beg:end) = nan ccf%m_frootc_to_litr1c(beg:end) = nan ccf%m_frootc_to_litr2c(beg:end) = nan ccf%m_frootc_to_litr3c(beg:end) = nan ccf%m_leafc_storage_to_litr1c(beg:end) = nan ccf%m_frootc_storage_to_litr1c(beg:end) = nan ccf%m_livestemc_storage_to_litr1c(beg:end) = nan ccf%m_deadstemc_storage_to_litr1c(beg:end) = nan ccf%m_livecrootc_storage_to_litr1c(beg:end) = nan ccf%m_deadcrootc_storage_to_litr1c(beg:end) = nan ccf%m_leafc_xfer_to_litr1c(beg:end) = nan ccf%m_frootc_xfer_to_litr1c(beg:end) = nan ccf%m_livestemc_xfer_to_litr1c(beg:end) = nan ccf%m_deadstemc_xfer_to_litr1c(beg:end) = nan ccf%m_livecrootc_xfer_to_litr1c(beg:end) = nan ccf%m_deadcrootc_xfer_to_litr1c(beg:end) = nan ccf%m_livestemc_to_cwdc(beg:end) = nan ccf%m_deadstemc_to_cwdc(beg:end) = nan ccf%m_livecrootc_to_cwdc(beg:end) = nan ccf%m_deadcrootc_to_cwdc(beg:end) = nan ccf%m_gresp_storage_to_litr1c(beg:end) = nan ccf%m_gresp_xfer_to_litr1c(beg:end) = nan ccf%m_deadstemc_to_cwdc_fire(beg:end) = nan ccf%m_deadcrootc_to_cwdc_fire(beg:end) = nan ccf%hrv_leafc_to_litr1c(beg:end) = nan ccf%hrv_leafc_to_litr2c(beg:end) = nan ccf%hrv_leafc_to_litr3c(beg:end) = nan ccf%hrv_frootc_to_litr1c(beg:end) = nan ccf%hrv_frootc_to_litr2c(beg:end) = nan ccf%hrv_frootc_to_litr3c(beg:end) = nan ccf%hrv_livestemc_to_cwdc(beg:end) = nan ccf%hrv_deadstemc_to_prod10c(beg:end) = nan ccf%hrv_deadstemc_to_prod100c(beg:end) = nan ccf%hrv_livecrootc_to_cwdc(beg:end) = nan ccf%hrv_deadcrootc_to_cwdc(beg:end) = nan ccf%hrv_leafc_storage_to_litr1c(beg:end) = nan ccf%hrv_frootc_storage_to_litr1c(beg:end) = nan ccf%hrv_livestemc_storage_to_litr1c(beg:end) = nan ccf%hrv_deadstemc_storage_to_litr1c(beg:end) = nan ccf%hrv_livecrootc_storage_to_litr1c(beg:end) = nan ccf%hrv_deadcrootc_storage_to_litr1c(beg:end) = nan ccf%hrv_gresp_storage_to_litr1c(beg:end) = nan ccf%hrv_leafc_xfer_to_litr1c(beg:end) = nan ccf%hrv_frootc_xfer_to_litr1c(beg:end) = nan ccf%hrv_livestemc_xfer_to_litr1c(beg:end) = nan ccf%hrv_deadstemc_xfer_to_litr1c(beg:end) = nan ccf%hrv_livecrootc_xfer_to_litr1c(beg:end) = nan ccf%hrv_deadcrootc_xfer_to_litr1c(beg:end) = nan ccf%hrv_gresp_xfer_to_litr1c(beg:end) = nan ccf%m_litr1c_to_fire(beg:end) = nan ccf%m_litr2c_to_fire(beg:end) = nan ccf%m_litr3c_to_fire(beg:end) = nan ccf%m_cwdc_to_fire(beg:end) = nan ccf%leafc_to_litr1c(beg:end) = nan ccf%leafc_to_litr2c(beg:end) = nan ccf%leafc_to_litr3c(beg:end) = nan ccf%frootc_to_litr1c(beg:end) = nan ccf%frootc_to_litr2c(beg:end) = nan ccf%frootc_to_litr3c(beg:end) = nan ccf%cwdc_to_litr2c(beg:end) = nan ccf%cwdc_to_litr3c(beg:end) = nan ccf%litr1_hr(beg:end) = nan ccf%litr1c_to_soil1c(beg:end) = nan ccf%litr2_hr(beg:end) = nan ccf%litr2c_to_soil2c(beg:end) = nan ccf%litr3_hr(beg:end) = nan ccf%litr3c_to_soil3c(beg:end) = nan ccf%soil1_hr(beg:end) = nan ccf%soil1c_to_soil2c(beg:end) = nan ccf%soil2_hr(beg:end) = nan ccf%soil2c_to_soil3c(beg:end) = nan ccf%soil3_hr(beg:end) = nan ccf%soil3c_to_soil4c(beg:end) = nan ccf%soil4_hr(beg:end) = nan #if (defined CN) ccf%dwt_seedc_to_leaf(beg:end) = nan ccf%dwt_seedc_to_deadstem(beg:end) = nan ccf%dwt_conv_cflux(beg:end) = nan ccf%dwt_prod10c_gain(beg:end) = nan ccf%dwt_prod100c_gain(beg:end) = nan ccf%dwt_frootc_to_litr1c(beg:end) = nan ccf%dwt_frootc_to_litr2c(beg:end) = nan ccf%dwt_frootc_to_litr3c(beg:end) = nan ccf%dwt_livecrootc_to_cwdc(beg:end) = nan ccf%dwt_deadcrootc_to_cwdc(beg:end) = nan ccf%dwt_closs(beg:end) = nan ccf%landuseflux(beg:end) = nan ccf%landuptake(beg:end) = nan ccf%prod10c_loss(beg:end) = nan ccf%prod100c_loss(beg:end) = nan ccf%product_closs(beg:end) = nan #endif ccf%lithr(beg:end) = nan ccf%somhr(beg:end) = nan ccf%hr(beg:end) = nan ccf%sr(beg:end) = nan ccf%er(beg:end) = nan ccf%litfire(beg:end) = nan ccf%somfire(beg:end) = nan ccf%totfire(beg:end) = nan ccf%nep(beg:end) = nan ccf%nbp(beg:end) = nan ccf%nee(beg:end) = nan ccf%col_cinputs(beg:end) = nan ccf%col_coutputs(beg:end) = nan ccf%col_fire_closs(beg:end) = nan #if (defined CLAMP) && (defined CN) !CLAMP ccf%cwdc_hr(beg:end) = nan ccf%cwdc_loss(beg:end) = nan ccf%litterc_loss(beg:end) = nan #endif end subroutine init_column_cflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_column_nflux_type ! ! !INTERFACE: subroutine init_column_nflux_type(beg, end, cnf) 1 ! ! !DESCRIPTION: ! Initialize column nitrogen flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (column_nflux_type), intent(inout):: cnf ! ! !REVISION HISTORY: ! Created by Peter Thornton ! !EOP !------------------------------------------------------------------------ allocate(cnf%ndep_to_sminn(beg:end)) allocate(cnf%nfix_to_sminn(beg:end)) allocate(cnf%m_leafn_to_litr1n(beg:end)) allocate(cnf%m_leafn_to_litr2n(beg:end)) allocate(cnf%m_leafn_to_litr3n(beg:end)) allocate(cnf%m_frootn_to_litr1n(beg:end)) allocate(cnf%m_frootn_to_litr2n(beg:end)) allocate(cnf%m_frootn_to_litr3n(beg:end)) allocate(cnf%m_leafn_storage_to_litr1n(beg:end)) allocate(cnf%m_frootn_storage_to_litr1n(beg:end)) allocate(cnf%m_livestemn_storage_to_litr1n(beg:end)) allocate(cnf%m_deadstemn_storage_to_litr1n(beg:end)) allocate(cnf%m_livecrootn_storage_to_litr1n(beg:end)) allocate(cnf%m_deadcrootn_storage_to_litr1n(beg:end)) allocate(cnf%m_leafn_xfer_to_litr1n(beg:end)) allocate(cnf%m_frootn_xfer_to_litr1n(beg:end)) allocate(cnf%m_livestemn_xfer_to_litr1n(beg:end)) allocate(cnf%m_deadstemn_xfer_to_litr1n(beg:end)) allocate(cnf%m_livecrootn_xfer_to_litr1n(beg:end)) allocate(cnf%m_deadcrootn_xfer_to_litr1n(beg:end)) allocate(cnf%m_livestemn_to_cwdn(beg:end)) allocate(cnf%m_deadstemn_to_cwdn(beg:end)) allocate(cnf%m_livecrootn_to_cwdn(beg:end)) allocate(cnf%m_deadcrootn_to_cwdn(beg:end)) allocate(cnf%m_retransn_to_litr1n(beg:end)) allocate(cnf%hrv_leafn_to_litr1n(beg:end)) allocate(cnf%hrv_leafn_to_litr2n(beg:end)) allocate(cnf%hrv_leafn_to_litr3n(beg:end)) allocate(cnf%hrv_frootn_to_litr1n(beg:end)) allocate(cnf%hrv_frootn_to_litr2n(beg:end)) allocate(cnf%hrv_frootn_to_litr3n(beg:end)) allocate(cnf%hrv_livestemn_to_cwdn(beg:end)) allocate(cnf%hrv_deadstemn_to_prod10n(beg:end)) allocate(cnf%hrv_deadstemn_to_prod100n(beg:end)) allocate(cnf%hrv_livecrootn_to_cwdn(beg:end)) allocate(cnf%hrv_deadcrootn_to_cwdn(beg:end)) allocate(cnf%hrv_retransn_to_litr1n(beg:end)) allocate(cnf%hrv_leafn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_frootn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_livestemn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_deadstemn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_livecrootn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_deadcrootn_storage_to_litr1n(beg:end)) allocate(cnf%hrv_leafn_xfer_to_litr1n(beg:end)) allocate(cnf%hrv_frootn_xfer_to_litr1n(beg:end)) allocate(cnf%hrv_livestemn_xfer_to_litr1n(beg:end)) allocate(cnf%hrv_deadstemn_xfer_to_litr1n(beg:end)) allocate(cnf%hrv_livecrootn_xfer_to_litr1n(beg:end)) allocate(cnf%hrv_deadcrootn_xfer_to_litr1n(beg:end)) allocate(cnf%m_deadstemn_to_cwdn_fire(beg:end)) allocate(cnf%m_deadcrootn_to_cwdn_fire(beg:end)) allocate(cnf%m_litr1n_to_fire(beg:end)) allocate(cnf%m_litr2n_to_fire(beg:end)) allocate(cnf%m_litr3n_to_fire(beg:end)) allocate(cnf%m_cwdn_to_fire(beg:end)) allocate(cnf%leafn_to_litr1n(beg:end)) allocate(cnf%leafn_to_litr2n(beg:end)) allocate(cnf%leafn_to_litr3n(beg:end)) allocate(cnf%frootn_to_litr1n(beg:end)) allocate(cnf%frootn_to_litr2n(beg:end)) allocate(cnf%frootn_to_litr3n(beg:end)) allocate(cnf%cwdn_to_litr2n(beg:end)) allocate(cnf%cwdn_to_litr3n(beg:end)) allocate(cnf%litr1n_to_soil1n(beg:end)) allocate(cnf%sminn_to_soil1n_l1(beg:end)) allocate(cnf%litr2n_to_soil2n(beg:end)) allocate(cnf%sminn_to_soil2n_l2(beg:end)) allocate(cnf%litr3n_to_soil3n(beg:end)) allocate(cnf%sminn_to_soil3n_l3(beg:end)) allocate(cnf%soil1n_to_soil2n(beg:end)) allocate(cnf%sminn_to_soil2n_s1(beg:end)) allocate(cnf%soil2n_to_soil3n(beg:end)) allocate(cnf%sminn_to_soil3n_s2(beg:end)) allocate(cnf%soil3n_to_soil4n(beg:end)) allocate(cnf%sminn_to_soil4n_s3(beg:end)) allocate(cnf%soil4n_to_sminn(beg:end)) allocate(cnf%sminn_to_denit_l1s1(beg:end)) allocate(cnf%sminn_to_denit_l2s2(beg:end)) allocate(cnf%sminn_to_denit_l3s3(beg:end)) allocate(cnf%sminn_to_denit_s1s2(beg:end)) allocate(cnf%sminn_to_denit_s2s3(beg:end)) allocate(cnf%sminn_to_denit_s3s4(beg:end)) allocate(cnf%sminn_to_denit_s4(beg:end)) allocate(cnf%sminn_to_denit_excess(beg:end)) allocate(cnf%sminn_leached(beg:end)) allocate(cnf%dwt_seedn_to_leaf(beg:end)) allocate(cnf%dwt_seedn_to_deadstem(beg:end)) allocate(cnf%dwt_conv_nflux(beg:end)) allocate(cnf%dwt_prod10n_gain(beg:end)) allocate(cnf%dwt_prod100n_gain(beg:end)) allocate(cnf%dwt_frootn_to_litr1n(beg:end)) allocate(cnf%dwt_frootn_to_litr2n(beg:end)) allocate(cnf%dwt_frootn_to_litr3n(beg:end)) allocate(cnf%dwt_livecrootn_to_cwdn(beg:end)) allocate(cnf%dwt_deadcrootn_to_cwdn(beg:end)) allocate(cnf%dwt_nloss(beg:end)) allocate(cnf%prod10n_loss(beg:end)) allocate(cnf%prod100n_loss(beg:end)) allocate(cnf%product_nloss(beg:end)) allocate(cnf%potential_immob(beg:end)) allocate(cnf%actual_immob(beg:end)) allocate(cnf%sminn_to_plant(beg:end)) allocate(cnf%supplement_to_sminn(beg:end)) allocate(cnf%gross_nmin(beg:end)) allocate(cnf%net_nmin(beg:end)) allocate(cnf%denit(beg:end)) allocate(cnf%col_ninputs(beg:end)) allocate(cnf%col_noutputs(beg:end)) allocate(cnf%col_fire_nloss(beg:end)) cnf%ndep_to_sminn(beg:end) = nan cnf%nfix_to_sminn(beg:end) = nan cnf%m_leafn_to_litr1n(beg:end) = nan cnf%m_leafn_to_litr2n(beg:end) = nan cnf%m_leafn_to_litr3n(beg:end) = nan cnf%m_frootn_to_litr1n(beg:end) = nan cnf%m_frootn_to_litr2n(beg:end) = nan cnf%m_frootn_to_litr3n(beg:end) = nan cnf%m_leafn_storage_to_litr1n(beg:end) = nan cnf%m_frootn_storage_to_litr1n(beg:end) = nan cnf%m_livestemn_storage_to_litr1n(beg:end) = nan cnf%m_deadstemn_storage_to_litr1n(beg:end) = nan cnf%m_livecrootn_storage_to_litr1n(beg:end) = nan cnf%m_deadcrootn_storage_to_litr1n(beg:end) = nan cnf%m_leafn_xfer_to_litr1n(beg:end) = nan cnf%m_frootn_xfer_to_litr1n(beg:end) = nan cnf%m_livestemn_xfer_to_litr1n(beg:end) = nan cnf%m_deadstemn_xfer_to_litr1n(beg:end) = nan cnf%m_livecrootn_xfer_to_litr1n(beg:end) = nan cnf%m_deadcrootn_xfer_to_litr1n(beg:end) = nan cnf%m_livestemn_to_cwdn(beg:end) = nan cnf%m_deadstemn_to_cwdn(beg:end) = nan cnf%m_livecrootn_to_cwdn(beg:end) = nan cnf%m_deadcrootn_to_cwdn(beg:end) = nan cnf%m_retransn_to_litr1n(beg:end) = nan cnf%hrv_leafn_to_litr1n(beg:end) = nan cnf%hrv_leafn_to_litr2n(beg:end) = nan cnf%hrv_leafn_to_litr3n(beg:end) = nan cnf%hrv_frootn_to_litr1n(beg:end) = nan cnf%hrv_frootn_to_litr2n(beg:end) = nan cnf%hrv_frootn_to_litr3n(beg:end) = nan cnf%hrv_livestemn_to_cwdn(beg:end) = nan cnf%hrv_deadstemn_to_prod10n(beg:end) = nan cnf%hrv_deadstemn_to_prod100n(beg:end) = nan cnf%hrv_livecrootn_to_cwdn(beg:end) = nan cnf%hrv_deadcrootn_to_cwdn(beg:end) = nan cnf%hrv_retransn_to_litr1n(beg:end) = nan cnf%hrv_leafn_storage_to_litr1n(beg:end) = nan cnf%hrv_frootn_storage_to_litr1n(beg:end) = nan cnf%hrv_livestemn_storage_to_litr1n(beg:end) = nan cnf%hrv_deadstemn_storage_to_litr1n(beg:end) = nan cnf%hrv_livecrootn_storage_to_litr1n(beg:end) = nan cnf%hrv_deadcrootn_storage_to_litr1n(beg:end) = nan cnf%hrv_leafn_xfer_to_litr1n(beg:end) = nan cnf%hrv_frootn_xfer_to_litr1n(beg:end) = nan cnf%hrv_livestemn_xfer_to_litr1n(beg:end) = nan cnf%hrv_deadstemn_xfer_to_litr1n(beg:end) = nan cnf%hrv_livecrootn_xfer_to_litr1n(beg:end) = nan cnf%hrv_deadcrootn_xfer_to_litr1n(beg:end) = nan cnf%m_deadstemn_to_cwdn_fire(beg:end) = nan cnf%m_deadcrootn_to_cwdn_fire(beg:end) = nan cnf%m_litr1n_to_fire(beg:end) = nan cnf%m_litr2n_to_fire(beg:end) = nan cnf%m_litr3n_to_fire(beg:end) = nan cnf%m_cwdn_to_fire(beg:end) = nan cnf%leafn_to_litr1n(beg:end) = nan cnf%leafn_to_litr2n(beg:end) = nan cnf%leafn_to_litr3n(beg:end) = nan cnf%frootn_to_litr1n(beg:end) = nan cnf%frootn_to_litr2n(beg:end) = nan cnf%frootn_to_litr3n(beg:end) = nan cnf%cwdn_to_litr2n(beg:end) = nan cnf%cwdn_to_litr3n(beg:end) = nan cnf%litr1n_to_soil1n(beg:end) = nan cnf%sminn_to_soil1n_l1(beg:end) = nan cnf%litr2n_to_soil2n(beg:end) = nan cnf%sminn_to_soil2n_l2(beg:end) = nan cnf%litr3n_to_soil3n(beg:end) = nan cnf%sminn_to_soil3n_l3(beg:end) = nan cnf%soil1n_to_soil2n(beg:end) = nan cnf%sminn_to_soil2n_s1(beg:end) = nan cnf%soil2n_to_soil3n(beg:end) = nan cnf%sminn_to_soil3n_s2(beg:end) = nan cnf%soil3n_to_soil4n(beg:end) = nan cnf%sminn_to_soil4n_s3(beg:end) = nan cnf%soil4n_to_sminn(beg:end) = nan cnf%sminn_to_denit_l1s1(beg:end) = nan cnf%sminn_to_denit_l2s2(beg:end) = nan cnf%sminn_to_denit_l3s3(beg:end) = nan cnf%sminn_to_denit_s1s2(beg:end) = nan cnf%sminn_to_denit_s2s3(beg:end) = nan cnf%sminn_to_denit_s3s4(beg:end) = nan cnf%sminn_to_denit_s4(beg:end) = nan cnf%sminn_to_denit_excess(beg:end) = nan cnf%sminn_leached(beg:end) = nan cnf%dwt_seedn_to_leaf(beg:end) = nan cnf%dwt_seedn_to_deadstem(beg:end) = nan cnf%dwt_conv_nflux(beg:end) = nan cnf%dwt_prod10n_gain(beg:end) = nan cnf%dwt_prod100n_gain(beg:end) = nan cnf%dwt_frootn_to_litr1n(beg:end) = nan cnf%dwt_frootn_to_litr2n(beg:end) = nan cnf%dwt_frootn_to_litr3n(beg:end) = nan cnf%dwt_livecrootn_to_cwdn(beg:end) = nan cnf%dwt_deadcrootn_to_cwdn(beg:end) = nan cnf%dwt_nloss(beg:end) = nan cnf%prod10n_loss(beg:end) = nan cnf%prod100n_loss(beg:end) = nan cnf%product_nloss(beg:end) = nan cnf%potential_immob(beg:end) = nan cnf%actual_immob(beg:end) = nan cnf%sminn_to_plant(beg:end) = nan cnf%supplement_to_sminn(beg:end) = nan cnf%gross_nmin(beg:end) = nan cnf%net_nmin(beg:end) = nan cnf%denit(beg:end) = nan cnf%col_ninputs(beg:end) = nan cnf%col_noutputs(beg:end) = nan cnf%col_fire_nloss(beg:end) = nan end subroutine init_column_nflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_landunit_pstate_type ! ! !INTERFACE: subroutine init_landunit_pstate_type(beg, end, lps) 1 ! ! !DESCRIPTION: ! Initialize landunit physical state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (landunit_pstate_type), intent(inout):: lps ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(lps%t_building(beg:end)) allocate(lps%t_building_max(beg:end)) allocate(lps%t_building_min(beg:end)) allocate(lps%tk_wall(beg:end,nlevurb)) allocate(lps%tk_roof(beg:end,nlevurb)) allocate(lps%tk_improad(beg:end,nlevgrnd)) allocate(lps%cv_wall(beg:end,nlevurb)) allocate(lps%cv_roof(beg:end,nlevurb)) allocate(lps%cv_improad(beg:end,nlevgrnd)) allocate(lps%thick_wall(beg:end)) allocate(lps%thick_roof(beg:end)) allocate(lps%nlev_improad(beg:end)) allocate(lps%vf_sr(beg:end)) allocate(lps%vf_wr(beg:end)) allocate(lps%vf_sw(beg:end)) allocate(lps%vf_rw(beg:end)) allocate(lps%vf_ww(beg:end)) allocate(lps%taf(beg:end)) allocate(lps%qaf(beg:end)) allocate(lps%sabs_roof_dir(beg:end,1:numrad)) allocate(lps%sabs_roof_dif(beg:end,1:numrad)) allocate(lps%sabs_sunwall_dir(beg:end,1:numrad)) allocate(lps%sabs_sunwall_dif(beg:end,1:numrad)) allocate(lps%sabs_shadewall_dir(beg:end,1:numrad)) allocate(lps%sabs_shadewall_dif(beg:end,1:numrad)) allocate(lps%sabs_improad_dir(beg:end,1:numrad)) allocate(lps%sabs_improad_dif(beg:end,1:numrad)) allocate(lps%sabs_perroad_dir(beg:end,1:numrad)) allocate(lps%sabs_perroad_dif(beg:end,1:numrad)) lps%t_building(beg:end) = nan lps%t_building_max(beg:end) = nan lps%t_building_min(beg:end) = nan lps%tk_wall(beg:end,1:nlevurb) = nan lps%tk_roof(beg:end,1:nlevurb) = nan lps%tk_improad(beg:end,1:nlevgrnd) = nan lps%cv_wall(beg:end,1:nlevurb) = nan lps%cv_roof(beg:end,1:nlevurb) = nan lps%cv_improad(beg:end,1:nlevgrnd) = nan lps%cv_improad(beg:end,1:5) = nan lps%thick_wall(beg:end) = nan lps%thick_roof(beg:end) = nan lps%nlev_improad(beg:end) = bigint lps%vf_sr(beg:end) = nan lps%vf_wr(beg:end) = nan lps%vf_sw(beg:end) = nan lps%vf_rw(beg:end) = nan lps%vf_ww(beg:end) = nan lps%taf(beg:end) = nan lps%qaf(beg:end) = nan lps%sabs_roof_dir(beg:end,1:numrad) = nan lps%sabs_roof_dif(beg:end,1:numrad) = nan lps%sabs_sunwall_dir(beg:end,1:numrad) = nan lps%sabs_sunwall_dif(beg:end,1:numrad) = nan lps%sabs_shadewall_dir(beg:end,1:numrad) = nan lps%sabs_shadewall_dif(beg:end,1:numrad) = nan lps%sabs_improad_dir(beg:end,1:numrad) = nan lps%sabs_improad_dif(beg:end,1:numrad) = nan lps%sabs_perroad_dir(beg:end,1:numrad) = nan lps%sabs_perroad_dif(beg:end,1:numrad) = nan end subroutine init_landunit_pstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_landunit_eflux_type ! ! !INTERFACE: subroutine init_landunit_eflux_type(beg, end, lef) 1 ! ! !DESCRIPTION: ! Initialize landunit energy flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (landunit_eflux_type), intent(inout):: lef ! ! !REVISION HISTORY: ! Created by Keith Oleson ! !EOP !------------------------------------------------------------------------ allocate(lef%eflx_traffic(beg:end)) allocate(lef%eflx_traffic_factor(beg:end)) allocate(lef%eflx_wasteheat(beg:end)) allocate(lef%eflx_heat_from_ac(beg:end)) lef%eflx_traffic(beg:end) = nan lef%eflx_traffic_factor(beg:end) = nan lef%eflx_wasteheat(beg:end) = nan lef%eflx_heat_from_ac(beg:end) = nan end subroutine init_landunit_eflux_type #if (defined CNDV) !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_dgvstate_type ! ! !INTERFACE: subroutine init_gridcell_dgvstate_type(beg, end, gps) 1 ! ! !DESCRIPTION: ! Initialize gridcell DGVM variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_dgvstate_type), intent(inout):: gps ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(gps%agdd20(beg:end)) allocate(gps%tmomin20(beg:end)) allocate(gps%t10min(beg:end)) gps%agdd20(beg:end) = nan gps%tmomin20(beg:end) = nan gps%t10min(beg:end) = nan end subroutine init_gridcell_dgvstate_type #endif !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_pstate_type ! ! !INTERFACE: subroutine init_gridcell_pstate_type(beg, end, gps) 1 ! ! !DESCRIPTION: ! Initialize gridcell physical state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_pstate_type), intent(inout):: gps ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ !allocate(gps%bcphiwet2t(beg:end,1:2)) !allocate(gps%bcphidry2t(beg:end,1:2)) !allocate(gps%bcphodry2t(beg:end,1:2)) !allocate(gps%ocphiwet2t(beg:end,1:2)) !allocate(gps%ocphidry2t(beg:end,1:2)) !allocate(gps%ocphodry2t(beg:end,1:2)) !allocate(gps%dstx01wd2t(beg:end,1:2)) !allocate(gps%dstx01dd2t(beg:end,1:2)) !allocate(gps%dstx02wd2t(beg:end,1:2)) !allocate(gps%dstx02dd2t(beg:end,1:2)) !allocate(gps%dstx03wd2t(beg:end,1:2)) !allocate(gps%dstx03dd2t(beg:end,1:2)) !allocate(gps%dstx04wd2t(beg:end,1:2)) !allocate(gps%dstx04dd2t(beg:end,1:2)) !gps%bcphiwet2t(beg:end,1:2) = nan !gps%bcphidry2t(beg:end,1:2) = nan !gps%bcphodry2t(beg:end,1:2) = nan !gps%ocphiwet2t(beg:end,1:2) = nan !gps%ocphidry2t(beg:end,1:2) = nan !gps%ocphodry2t(beg:end,1:2) = nan !gps%dstx01wd2t(beg:end,1:2) = nan !gps%dstx01dd2t(beg:end,1:2) = nan !gps%dstx02wd2t(beg:end,1:2) = nan !gps%dstx02dd2t(beg:end,1:2) = nan !gps%dstx03wd2t(beg:end,1:2) = nan !gps%dstx03dd2t(beg:end,1:2) = nan !gps%dstx04wd2t(beg:end,1:2) = nan !gps%dstx04dd2t(beg:end,1:2) = nan end subroutine init_gridcell_pstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_efstate_type ! ! !INTERFACE: subroutine init_gridcell_efstate_type(beg, end, gve) 1 ! ! !DESCRIPTION: ! Initialize gridcell isoprene emission factor variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_efstate_type), intent(inout) :: gve ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein (heald) ! !EOP !------------------------------------------------------------------------ allocate(gve%efisop(6,beg:end)) gve%efisop(:,beg:end) = nan end subroutine init_gridcell_efstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_wflux_type ! ! !INTERFACE: subroutine init_gridcell_wflux_type(beg, end, gwf) 1 ! ! !DESCRIPTION: ! Initialize gridcell water flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_wflux_type), intent(inout):: gwf ! ! !REVISION HISTORY: ! Created by Mariana Vertenstein ! !EOP !------------------------------------------------------------------------ allocate(gwf%qflx_runoffg(beg:end)) allocate(gwf%qflx_snwcp_iceg(beg:end)) allocate(gwf%qflx_liq_dynbal(beg:end)) allocate(gwf%qflx_ice_dynbal(beg:end)) gwf%qflx_runoffg(beg:end) = nan gwf%qflx_snwcp_iceg(beg:end) = nan gwf%qflx_liq_dynbal(beg:end) = nan gwf%qflx_ice_dynbal(beg:end) = nan end subroutine init_gridcell_wflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_eflux_type ! ! !INTERFACE: subroutine init_gridcell_eflux_type(beg, end, gef) 1 ! ! !DESCRIPTION: ! Initialize gridcell energy flux variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_eflux_type), intent(inout):: gef ! ! !REVISION HISTORY: ! Created by David Lawrence ! !EOP !------------------------------------------------------------------------ allocate(gef%eflx_sh_totg(beg:end)) allocate(gef%eflx_dynbal(beg:end)) gef%eflx_sh_totg(beg:end) = nan gef%eflx_dynbal(beg:end) = nan end subroutine init_gridcell_eflux_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_wstate_type ! ! !INTERFACE: subroutine init_gridcell_wstate_type(beg, end, gws) 1 ! ! !DESCRIPTION: ! Initialize gridcell water state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_wstate_type), intent(inout):: gws ! ! !REVISION HISTORY: ! Created by David Lawrence ! !EOP !------------------------------------------------------------------------ allocate(gws%gc_liq1(beg:end)) allocate(gws%gc_liq2(beg:end)) allocate(gws%gc_ice1(beg:end)) allocate(gws%gc_ice2(beg:end)) gws%gc_liq1(beg:end) = nan gws%gc_liq2(beg:end) = nan gws%gc_ice1(beg:end) = nan gws%gc_ice2(beg:end) = nan end subroutine init_gridcell_wstate_type !------------------------------------------------------------------------ !BOP ! ! !IROUTINE: init_gridcell_estate_type ! ! !INTERFACE: subroutine init_gridcell_estate_type(beg, end, ges) 1 ! ! !DESCRIPTION: ! Initialize gridcell energy state variables ! ! !ARGUMENTS: implicit none integer, intent(in) :: beg, end type (gridcell_estate_type), intent(inout):: ges ! ! !REVISION HISTORY: ! Created by David Lawrence ! !EOP !------------------------------------------------------------------------ allocate(ges%gc_heat1(beg:end)) allocate(ges%gc_heat2(beg:end)) ges%gc_heat1(beg:end) = nan ges%gc_heat2(beg:end) = nan end subroutine init_gridcell_estate_type end module clmtypeInitMod