*IF DEF,A19_2A VEG_IC2A.2
C *****************************COPYRIGHT****************************** VEG_IC2A.3
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. VEG_IC2A.4
C VEG_IC2A.5
C Use, duplication or disclosure of this code is subject to the VEG_IC2A.6
C restrictions as set forth in the contract. VEG_IC2A.7
C VEG_IC2A.8
C Meteorological Office VEG_IC2A.9
C London Road VEG_IC2A.10
C BRACKNELL VEG_IC2A.11
C Berkshire UK VEG_IC2A.12
C RG12 2SZ VEG_IC2A.13
C VEG_IC2A.14
C If no contract has been raised with this copy of the code, the use, VEG_IC2A.15
C duplication or disclosure of it is strictly prohibited. Permission VEG_IC2A.16
C to do so must first be obtained in writing from the Head of Numerical VEG_IC2A.17
C Modelling at the above address. VEG_IC2A.18
C ******************************COPYRIGHT****************************** VEG_IC2A.19
! Version 2A of vegetation section: models leaf phenology and vegetation VEG_IC2A.20
! competition VEG_IC2A.21
! VEG_IC2A.22
! Subroutine Interface: VEG_IC2A.23
SUBROUTINE VEG_IC(P_FIELD,FIRST_POINT,LAST_POINT,LAND_FIELD 1,2VEG_IC2A.24
&, LAND1,LAND_PTS,LAND_INDEX,P_ROWS,ROW_LENGTH ABX3F405.58
*IF DEF,MPP ABX3F405.59
&, EW_Halo,NS_Halo ABX3F405.60
*ENDIF ABX3F405.61
&, A_STEP,ASTEPS_SINCE_TRIFFID VEG_IC2A.26
&, PHENOL_PERIOD,TRIFFID_PERIOD VEG_IC2A.27
&, L_PHENOL,L_TRIFFID,L_TRIF_EQ VEG_IC2A.28
&, ALB_SOIL,ATIMESTEP,FRAC_DISTURB VEG_IC2A.29
&, G_LEAF_AC,G_LEAF_PHEN_AC,NPP_AC VEG_IC2A.30
&, RESP_S_AC,RESP_W_AC VEG_IC2A.31
&, CS,FRAC,LAI,HT VEG_IC2A.32
&, ALBSNC,ALBSNF,CATCH_T,Z0_P,Z0_T VEG_IC2A.33
&, C_VEG,CV,LIT_C,LIT_C_MN,G_LEAF_DAY,G_LEAF_PHEN ABX1F405.1369
&, LAI_PHEN,G_LEAF_DR_OUT,NPP_DR_OUT,RESP_W_DR_OUT ABX1F405.1370
&, RESP_S_DR_OUT ABX1F405.1371
& ) ABX1F405.1372
VEG_IC2A.35
VEG_IC2A.36
IMPLICIT NONE VEG_IC2A.37
! VEG_IC2A.38
! Description: VEG_IC2A.39
! Updates Leaf Area Index for Plant Functional Types (PFTs) and uses VEG_IC2A.40
! this to derive new vegetation parameters for PFTs along with gridbox VEG_IC2A.41
! mean values where appropriate. VEG_IC2A.42
! VEG_IC2A.43
! Method: VEG_IC2A.44
! Calls PHENOL which models phenology and updates Leaf Area Index VEG_IC2A.45
! (LAI), then passes new LAI into SPARM along with canopy height VEG_IC2A.46
! and fractional cover of Plant Functional Types. SPARM uses this to VEG_IC2A.47
! derive the vegetation parameters for each PFT, and also derives VEG_IC2A.48
! gridbox means where this is required. VEG_IC2A.49
! VEG_IC2A.50
! Current Code Owner: Richard Betts VEG_IC2A.51
! VEG_IC2A.52
! History: VEG_IC2A.53
! Version Date Comment VEG_IC2A.54
! ------- ---- ------- VEG_IC2A.55
! 4.4 8/10/97 Original code. Richard Betts VEG_IC2A.56
! 4.5 5/8/98 Pass info on grid and halo dimensions into VEG. ABX3F405.62
! Richard Betts ABX3F405.63
! 4.5 23/11/98 Output G_LEAF_DAY, G_LEAF_PHEN, LAI_PHEN, ABX1F405.1373
! G_LEAF_DR_OUT, NPP_DR_OUT, RESP_W_DR_OUT and ABX1F405.1374
! RESP_S_DR_OUT as diagnostics. Richard Betts ABX1F405.1375
! VEG_IC2A.57
! Code Description: VEG_IC2A.58
! Language: FORTRAN 77 + common extensions. VEG_IC2A.59
! This code is written to UMDP3 v6 programming standards. VEG_IC2A.60
VEG_IC2A.61
INTEGER VEG_IC2A.62
& P_FIELD ! IN Number of P-points. VEG_IC2A.63
&,FIRST_POINT ! IN First P-point to be processed. VEG_IC2A.64
&,LAST_POINT ! IN Last P-point to be processed. VEG_IC2A.65
&,LAND_FIELD ! IN Number of land points. VEG_IC2A.66
&,LAND1 ! IN First land point to be processe VEG_IC2A.67
&,LAND_PTS ! IN Number of land points. VEG_IC2A.68
&,P_ROWS ! IN Number of rows on P grid. ABX3F405.64
&,ROW_LENGTH ! IN Number of P points in a row. ABX3F405.65
*IF DEF,MPP ABX3F405.66
&,EW_Halo ! IN Halo size in the EW direction. ABX3F405.67
&,NS_Halo ! IN Halo size in the NS direction. ABX3F405.68
*ENDIF ABX3F405.69
&,A_STEP ! IN Atmospheric timestep number. VEG_IC2A.69
&,ASTEPS_SINCE_TRIFFID ! INOUT Number of atmospheric VEG_IC2A.70
! ! timesteps since last call VEG_IC2A.71
! ! to TRIFFID. VEG_IC2A.72
&,PHENOL_PERIOD ! IN Phenology period (days). VEG_IC2A.73
&,TRIFFID_PERIOD ! IN TRIFFID period (days). VEG_IC2A.74
VEG_IC2A.75
*CALL NSTYPES
VEG_IC2A.76
VEG_IC2A.77
INTEGER VEG_IC2A.78
& LAND_INDEX(LAND_FIELD) ! IN I=LAND_INDEX(L) => the Ith VEG_IC2A.79
C ! point in P_FIELD is the Lth VEG_IC2A.80
C ! land point. VEG_IC2A.81
LOGICAL VEG_IC2A.82
& L_PHENOL ! IN .T. for interactive leaf VEG_IC2A.83
C ! phenology. VEG_IC2A.84
&,L_TRIFFID ! IN .T. for interactive vegetation. VEG_IC2A.85
&,L_TRIF_EQ ! IN .T. for vegetation equilibrium. VEG_IC2A.86
VEG_IC2A.87
REAL VEG_IC2A.88
& ALB_SOIL(LAND_FIELD) ! IN snow-free albedo of soil. VEG_IC2A.89
&,ATIMESTEP ! IN Atmospheric timestep (s). VEG_IC2A.90
&,FRAC_DISTURB(LAND_FIELD) ! IN Fraction of gridbox in which VEG_IC2A.91
! ! vegetation is disturbed. VEG_IC2A.92
&,G_LEAF_AC(LAND_FIELD,NPFT) ! INOUT Accumulated leaf turnover VEG_IC2A.93
! ! rate. VEG_IC2A.94
&,G_LEAF_PHEN_AC(LAND_FIELD,NPFT)! INOUT Accumulated leaf turnover VEG_IC2A.95
C ! rate including phenology. VEG_IC2A.96
&,NPP_AC(LAND_FIELD,NPFT) ! INOUT Accumulated NPP (kg C/m2). VEG_IC2A.97
&,RESP_W_AC(LAND_FIELD,NPFT) ! INOUT Accumulated wood respiration VEG_IC2A.98
C ! (kg C/m2). VEG_IC2A.99
&,RESP_S_AC(LAND_FIELD) ! INOUT Accumulated soil respiration VEG_IC2A.100
C ! (kg C/m2). VEG_IC2A.101
&,CS(LAND_FIELD) ! INOUT Soil carbon content VEG_IC2A.102
! ! (kg C/m2). VEG_IC2A.103
&,FRAC(LAND_FIELD,NTYPE) ! INOUT Fractions of surface types. VEG_IC2A.104
&,LAI(LAND_FIELD,NPFT) ! INOUT LAI of plant functional VEG_IC2A.105
! ! types. VEG_IC2A.106
&,HT(LAND_FIELD,NPFT) ! INOUT Height of plant functional VEG_IC2A.107
C ! types (m). VEG_IC2A.108
&,ALBSNC(LAND_FIELD) ! OUT Snow-covered albedo. VEG_IC2A.109
&,ALBSNF(LAND_FIELD) ! OUT Snow-free albedo. VEG_IC2A.110
&,CATCH_T(LAND_FIELD,NTYPE-1) ! OUT Canopy capacity for each type VEG_IC2A.111
C ! aside from ice (kg/m2). VEG_IC2A.112
&,G_LEAF_DAY(LAND_FIELD,NPFT) ! OUT Mean leaf turnover rate for ABX1F405.1376
! ! input to PHENOL (/360days). ABX1F405.1377
&,G_LEAF_PHEN(LAND_FIELD,NPFT) ! OUT Mean leaf turnover rate over ABX1F405.1378
! ! phenology period (/360days). ABX1F405.1379
&,G_LEAF_DR_OUT(LAND_FIELD,NPFT) ! OUT Mean leaf turnover rate for ABX1F405.1380
! ! driving TRIFFID (/360days). ABX1F405.1381
&,LAI_PHEN(LAND_FIELD,NPFT) ! OUT LAI of PFTs after phenology. ABX1F405.1382
&,NPP_DR_OUT(LAND_FIELD,NPFT) ! OUT Mean NPP for driving TRIFFID ABX1F405.1383
! ! (kg C/m2/360days). ABX1F405.1384
&,RESP_W_DR_OUT(LAND_FIELD,NPFT) ! OUT Mean wood respiration for ABX1F405.1385
! ! driving TRIFFID ABX1F405.1386
! ! (kg C/m2/360days). ABX1F405.1387
&,RESP_S_DR_OUT(LAND_FIELD) ! OUT Mean soil respiration for ABX1F405.1388
! ! driving TRIFFID ABX1F405.1389
! ! (kg C/m2/360days). ABX1F405.1390
&,Z0_P(P_FIELD) ! OUT Effective roughness length VEG_IC2A.113
C ! on full grid (m). VEG_IC2A.114
&,Z0_T(LAND_FIELD,NTYPE) ! OUT Roughness length for each type VEG_IC2A.115
C ! (m). VEG_IC2A.116
&,C_VEG(LAND_FIELD,NPFT) ! OUT Total carbon content of VEG_IC2A.117
C ! the vegetation (kg C/m2). VEG_IC2A.118
&,CV(LAND_FIELD) ! OUT Gridbox mean vegetation VEG_IC2A.119
C ! carbon (kg C/m2). VEG_IC2A.120
&,LIT_C(LAND_FIELD,NPFT) ! OUT Carbon Litter ABX1F405.1391
! ! (kg C/m2/360days). ABX1F405.1392
&,LIT_C_MN(LAND_FIELD) ! OUT Gridbox mean carbon litter VEG_IC2A.122
! ! (kg C/m2/360days). ABX1F405.1393
VEG_IC2A.124
VEG_IC2A.125
CALL VEG
(P_FIELD,FIRST_POINT,LAST_POINT,LAND_FIELD VEG_IC2A.126
&, LAND1,LAND_PTS,LAND_INDEX,P_ROWS,ROW_LENGTH ABX3F405.70
*IF DEF,MPP ABX3F405.71
&, EW_Halo,NS_Halo ABX3F405.72
*ENDIF ABX3F405.73
&, A_STEP,ASTEPS_SINCE_TRIFFID VEG_IC2A.128
&, PHENOL_PERIOD,TRIFFID_PERIOD VEG_IC2A.129
&, L_PHENOL,L_TRIFFID,L_TRIF_EQ VEG_IC2A.130
&, ALB_SOIL,ATIMESTEP,FRAC_DISTURB VEG_IC2A.131
&, G_LEAF_AC,G_LEAF_PHEN_AC,NPP_AC VEG_IC2A.132
&, RESP_S_AC,RESP_W_AC VEG_IC2A.133
&, CS,FRAC,LAI,HT VEG_IC2A.134
&, ALBSNC,ALBSNF,CATCH_T,Z0_P,Z0_T VEG_IC2A.135
&, C_VEG,CV,LIT_C,LIT_C_MN,G_LEAF_DAY,G_LEAF_PHEN ABX1F405.1394
&, LAI_PHEN,G_LEAF_DR_OUT,NPP_DR_OUT,RESP_W_DR_OUT ABX1F405.1395
&, RESP_S_DR_OUT ABX1F405.1396
& ) ABX1F405.1397
VEG_IC2A.137
RETURN VEG_IC2A.138
END VEG_IC2A.139
*ENDIF VEG_IC2A.140