*IF DEF,CONTROL,AND,DEF,ATMOS ABX1F405.975
C *****************************COPYRIGHT****************************** VEG_CTL1.3
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. VEG_CTL1.4
C VEG_CTL1.5
C Use, duplication or disclosure of this code is subject to the VEG_CTL1.6
C restrictions as set forth in the contract. VEG_CTL1.7
C VEG_CTL1.8
C Meteorological Office VEG_CTL1.9
C London Road VEG_CTL1.10
C BRACKNELL VEG_CTL1.11
C Berkshire UK VEG_CTL1.12
C RG12 2SZ VEG_CTL1.13
C VEG_CTL1.14
C If no contract has been raised with this copy of the code, the use, VEG_CTL1.15
C duplication or disclosure of it is strictly prohibited. Permission VEG_CTL1.16
C to do so must first be obtained in writing from the Head of Numerical VEG_CTL1.17
C Modelling at the above address. VEG_CTL1.18
C ******************************COPYRIGHT****************************** VEG_CTL1.19
!+ Top-level control routine for vegetation section VEG_CTL1.20
! VEG_CTL1.21
! Subroutine Interface: VEG_CTL1.22
SUBROUTINE VEG_CTL(P_FIELDDA,LAND_FIELDDA,A_STEP,INT3, 1,29ABX1F405.976
*CALL ARGSIZE
VEG_CTL1.24
*CALL ARGD1
VEG_CTL1.25
*CALL ARGDUMA
VEG_CTL1.26
*CALL ARGDUMO
VEG_CTL1.27
*CALL ARGDUMW
VEG_CTL1.28
*CALL ARGSTS
VEG_CTL1.29
*CALL ARGPTRA
VEG_CTL1.30
*CALL ARGPTRO
VEG_CTL1.31
*CALL ARGCONA
VEG_CTL1.32
*CALL ARGPPX
VEG_CTL1.33
*CALL ARGFLDPT
VEG_CTL1.34
& ICODE,CMESSAGE) VEG_CTL1.35
VEG_CTL1.36
IMPLICIT NONE VEG_CTL1.37
! VEG_CTL1.38
! Description: Calls interim control routine VEG_INTCTL VEG_CTL1.39
! VEG_CTL1.40
! Current Code Owner: Richard Betts VEG_CTL1.41
! VEG_CTL1.42
! History: VEG_CTL1.43
! Version Date Comment VEG_CTL1.44
! ------- ---- ------- VEG_CTL1.45
! 4.4 6/10/97 Original code. Richard Betts VEG_CTL1.46
! 4.5 5/8/98 Pass info on grid and halo dimensions into VEG_IC. ABX3F405.6
! Richard Betts ABX3F405.7
! 4.5 23/11/98 Write diagnostics 19001-19016 to STASH. ABX1F405.977
! Richard Betts ABX1F405.978
! VEG_CTL1.47
! Code Description: VEG_CTL1.48
! Language: FORTRAN 77 + common extensions. VEG_CTL1.49
! This code is written to UMDP3 v6 programming standards. VEG_CTL1.50
! VEG_CTL1.51
*CALL CMAXSIZE
VEG_CTL1.52
*CALL CSUBMODL
VEG_CTL1.53
*CALL TYPSIZE
VEG_CTL1.54
*CALL TYPD1
VEG_CTL1.55
*CALL TYPDUMA
VEG_CTL1.56
*CALL TYPDUMO
VEG_CTL1.57
*CALL TYPDUMW
VEG_CTL1.58
*CALL TYPSTS
VEG_CTL1.59
*CALL TYPPTRA
VEG_CTL1.60
*CALL TYPPTRO
VEG_CTL1.61
*CALL TYPCONA
VEG_CTL1.62
*CALL PPXLOOK
VEG_CTL1.63
! All TYPFLDPT arguments are intent IN VEG_CTL1.64
*CALL TYPFLDPT
VEG_CTL1.65
VEG_CTL1.66
INTEGER VEG_CTL1.67
& ICODE ! Return code : 0 Normal Exit VEG_CTL1.68
! ! : >0 Error VEG_CTL1.69
&,INT3 ABX1F405.979
&,P_FIELDDA ! Extra copy of P_FIELD for dynamic allocation VEG_CTL1.70
&,LAND_FIELDDA! Extra copy of LAND_FIELD for dynamic allocation VEG_CTL1.71
&,A_STEP ! timestep in atmosphere model VEG_CTL1.72
&,FIRST_POINT ! IN First P-point to be processed. VEG_CTL1.73
&,LAST_POINT ! IN Last P-point to be processed. VEG_CTL1.74
&,PSLEVEL ! loop counter for pseudolevels ABX1F405.980
&,PSLEVEL_OUT ! index for pseudolevels sent to STASH ABX1F405.981
&,im_ident ! Internal model identifier ABX1F405.982
&,im_index ! Internal model index for stash arrays ABX1F405.983
VEG_CTL1.75
*CALL NSTYPES
VEG_CTL1.76
VEG_CTL1.77
REAL VEG_CTL1.78
& C_VEG(LAND_FIELDDA,NPFT) ! Total carbon content of vegetation VEG_CTL1.79
! ! (kg C/m2). VEG_CTL1.80
&,CV(LAND_FIELDDA) ! Gridbox mean veg carbon (kg C/m2). VEG_CTL1.81
&,LIT_C(LAND_FIELDDA,NPFT) ! Carbon Litter (kg C/m2/360days). ABX1F405.984
&,LIT_C_MN(LAND_FIELDDA) ! Gridbox mean carbon litter ABX1F405.985
! ! (kg C/m2/360days) ABX1F405.986
&,G_LEAF_DAY(LAND_FIELD,NPFT) ! Mean leaf turnover rate for ABX1F405.987
! ! input to PHENOL (/360days). ABX1F405.988
&,G_LEAF_PHEN(LAND_FIELD,NPFT) ! Mean leaf turnover rate over ABX1F405.989
! ! phenology period (/360days). ABX1F405.990
&,G_LEAF_DR_OUT(LAND_FIELD,NPFT) ! Mean leaf turnover rate for ABX1F405.991
! ! driving TRIFFID (/360days). ABX1F405.992
&,LAI_PHEN(LAND_FIELD,NPFT) ! LAI of PFTs after phenology. ABX1F405.993
&,NPP_DR_OUT(LAND_FIELD,NPFT) ! Mean NPP for driving TRIFFID ABX1F405.994
! ! (kg C/m2/360days). ABX1F405.995
&,RESP_W_DR_OUT(LAND_FIELD,NPFT) ! Mean wood respiration for ABX1F405.996
! ! driving TRIFFID ABX1F405.997
! ! (kg C/m2/360days). ABX1F405.998
&,RESP_S_DR_OUT(LAND_FIELD) ! Mean soil respiration for ABX1F405.999
! ! driving TRIFFID ABX1F405.1000
! ! (kg C/m2/360days). ABX1F405.1001
&,STASHWORK(INT3) ! STASH workspace ABX1F405.1002
VEG_CTL1.84
CHARACTER*80 VEG_CTL1.85
& CMESSAGE ! Error message if return code >0 VEG_CTL1.86
VEG_CTL1.87
INTEGER VEG_CTL1.88
& LAND1 ! LOCAL First land point to be processed. VEG_CTL1.89
&,LAND_PTS ! LOCAL Number of land point to be processed. VEG_CTL1.90
VEG_CTL1.91
INTEGER VEG_CTL1.92
& L ! Loop counter for land points VEG_CTL1.93
VEG_CTL1.94
LOGICAL ABX1F405.1003
& PLLTYPE(NTYPE) ! pseudolevel list for surface types ABX1F405.1004
&,PLLPFT(NPFT) ! pseudolevel list for PFTs ABX1F405.1005
&,PLLNIT(NTYPE-1) ! pseudolevel list for non-ice types ABX1F405.1006
ABX1F405.1007
*IF DEF,MPP VEG_CTL1.95
! Parameters and Common blocks VEG_CTL1.96
*CALL PARVARS
VEG_CTL1.97
*ENDIF VEG_CTL1.98
*CALL C_MDI
VEG_CTL1.99
*CALL CHSUNITS
VEG_CTL1.100
*CALL CCONTROL
VEG_CTL1.101
*CALL C_R_CP
VEG_CTL1.102
*CALL C_LHEAT
VEG_CTL1.103
*CALL CHISTORY
VEG_CTL1.104
*CALL CTRACERA
VEG_CTL1.105
*CALL CRUNTIMC
VEG_CTL1.106
*CALL CTIME
VEG_CTL1.107
*CALL C_PI
VEG_CTL1.108
VEG_CTL1.109
EXTERNAL VEG_CTL1.110
& VEG_IC VEG_CTL1.111
VEG_CTL1.112
im_ident = atmos_im ABX1F405.1008
im_index = internal_model_index(im_ident) ABX1F405.1009
ABX1F405.1010
FIRST_POINT=START_POINT_NO_HALO VEG_CTL1.113
LAST_POINT=END_P_POINT_INC_HALO VEG_CTL1.114
LAND1 = 1 VEG_CTL1.115
LAND_PTS = 0 VEG_CTL1.116
DO L=1,LAND_FIELD VEG_CTL1.117
IF ( LAND_LIST(L) .LT. FIRST_POINT ) THEN VEG_CTL1.118
LAND1 = LAND1 + 1 VEG_CTL1.119
ELSEIF ( LAND_LIST(L) .LE. LAST_POINT ) THEN VEG_CTL1.120
LAND_PTS = LAND_PTS + 1 VEG_CTL1.121
ENDIF VEG_CTL1.122
ENDDO VEG_CTL1.123
VEG_CTL1.124
! Call intermediate control routine VEG_CTL1.125
CALL VEG_IC
(P_FIELD,FIRST_POINT,LAST_POINT,LAND_FIELD,LAND1, VEG_CTL1.126
& LAND_PTS,LAND_LIST,P_ROWS,ROW_LENGTH, ABX3F405.8
*IF DEF,MPP ABX3F405.9
& EW_Halo,NS_Halo, ABX3F405.10
*ENDIF ABX3F405.11
& A_STEP,A_INTHD(23),PHENOL_PERIOD,A_INTHD(22), ABX3F405.12
& L_PHENOL,L_TRIFFID,L_TRIF_EQ, VEG_CTL1.129
& D1(JSOIL_ALB),SECS_PER_STEPim(atmos_im),D1(JDISTURB), VEG_CTL1.130
& D1(JG_LF_PFT_ACC),D1(JG_PHLF_PFT_ACC), VEG_CTL1.131
& D1(JNPP_PFT_ACC),D1(JRSP_S_ACC),D1(JRSP_W_PFT_ACC), VEG_CTL1.132
& D1(JSOIL_CARB),D1(JFRAC_TYP),D1(JLAI_PFT), VEG_CTL1.133
& D1(JCANHT_PFT),D1(JMDSA),D1(JSFA),D1(JCATCH_NIT), VEG_CTL1.134
& D1(JZ0),D1(JZ0_TYP), VEG_CTL1.135
& C_VEG,CV,LIT_C,LIT_C_MN,G_LEAF_DAY,G_LEAF_PHEN, ABX1F405.1011
& LAI_PHEN,G_LEAF_DR_OUT,NPP_DR_OUT,RESP_W_DR_OUT, ABX1F405.1012
& RESP_S_DR_OUT ABX1F405.1013
& ) VEG_CTL1.137
VEG_CTL1.138
!----------------------------------------------------------------------- ABX1F405.1014
! Write diagnostics to STASH ABX1F405.1015
!----------------------------------------------------------------------- ABX1F405.1016
ABX1F405.1017
CL ITEM 1: VEGETATION CARBON ON PLANT FUNCTIONAL TYPES ABX1F405.1018
ABX1F405.1019
IF (SF(1,19)) THEN ABX1F405.1020
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1021
& STLIST(1,STINDEX(1,1,19,im_index)), ABX1F405.1022
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1023
& ICODE,CMESSAGE) ABX1F405.1024
IF (ICODE.GT.0) THEN ABX1F405.1025
RETURN ABX1F405.1026
END IF ABX1F405.1027
PSLEVEL_OUT=0 ABX1F405.1028
DO PSLEVEL=1,NPFT ABX1F405.1029
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1030
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1031
CALL FROM_LAND_POINTS
( ABX1F405.1032
& STASHWORK(SI(1,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1033
& *P_FIELD),C_VEG(1,PSLEVEL), ABX1F405.1034
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1035
END IF ABX1F405.1036
END DO ABX1F405.1037
END IF ABX1F405.1038
ABX1F405.1039
CL ITEM 2: GRIDBOX MEAN VEGETATION CARBON ABX1F405.1040
ABX1F405.1041
IF (SF(2,19)) THEN ABX1F405.1042
CALL FROM_LAND_POINTS
( ABX1F405.1043
& STASHWORK(SI(2,19,im_index)),CV, ABX1F405.1044
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1045
END IF ABX1F405.1046
ABX1F405.1047
CL ITEM 3: PHENOLOGICAL LEAF TURNOVER RATE PFTS ABX1F405.1048
ABX1F405.1049
IF (SF(3,19)) THEN ABX1F405.1050
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1051
& STLIST(1,STINDEX(1,3,19,im_index)), ABX1F405.1052
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1053
& ICODE,CMESSAGE) ABX1F405.1054
IF (ICODE.GT.0) THEN ABX1F405.1055
RETURN ABX1F405.1056
END IF ABX1F405.1057
PSLEVEL_OUT=0 ABX1F405.1058
DO PSLEVEL=1,NPFT ABX1F405.1059
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1060
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1061
CALL FROM_LAND_POINTS
( ABX1F405.1062
& STASHWORK(SI(3,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1063
& *P_FIELD),G_LEAF_PHEN(1,PSLEVEL), ABX1F405.1064
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1065
END IF ABX1F405.1066
END DO ABX1F405.1067
END IF ABX1F405.1068
ABX1F405.1069
CL ITEM 4: LITTER CARBON ON PLANT FUNCTIONAL TYPES ABX1F405.1070
ABX1F405.1071
IF (SF(4,19)) THEN ABX1F405.1072
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1073
& STLIST(1,STINDEX(1,4,19,im_index)), ABX1F405.1074
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1075
& ICODE,CMESSAGE) ABX1F405.1076
IF (ICODE.GT.0) THEN ABX1F405.1077
RETURN ABX1F405.1078
END IF ABX1F405.1079
PSLEVEL_OUT=0 ABX1F405.1080
DO PSLEVEL=1,NPFT ABX1F405.1081
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1082
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1083
CALL FROM_LAND_POINTS
( ABX1F405.1084
& STASHWORK(SI(4,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1085
& *P_FIELD),LIT_C(1,PSLEVEL), ABX1F405.1086
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1087
END IF ABX1F405.1088
END DO ABX1F405.1089
END IF ABX1F405.1090
ABX1F405.1091
CL ITEM 5: GRIDBOX MEAN LITTER CARBON ABX1F405.1092
ABX1F405.1093
IF (SF(5,19)) THEN ABX1F405.1094
CALL FROM_LAND_POINTS
( ABX1F405.1095
& STASHWORK(SI(5,19,im_index)),LIT_C_MN, ABX1F405.1096
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1097
END IF ABX1F405.1098
ABX1F405.1099
CL ITEM 6: MEAN LEAF TURNOVER RATE ON PFTS FOR PHENOLOGY ABX1F405.1100
ABX1F405.1101
IF (SF(6,19)) THEN ABX1F405.1102
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1103
& STLIST(1,STINDEX(1,6,19,im_index)), ABX1F405.1104
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1105
& ICODE,CMESSAGE) ABX1F405.1106
IF (ICODE.GT.0) THEN ABX1F405.1107
RETURN ABX1F405.1108
END IF ABX1F405.1109
PSLEVEL_OUT=0 ABX1F405.1110
DO PSLEVEL=1,NPFT ABX1F405.1111
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1112
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1113
CALL FROM_LAND_POINTS
( ABX1F405.1114
& STASHWORK(SI(6,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1115
& *P_FIELD),G_LEAF_DAY(1,PSLEVEL), ABX1F405.1116
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1117
END IF ABX1F405.1118
END DO ABX1F405.1119
END IF ABX1F405.1120
ABX1F405.1121
CL ITEM 7: LEAF AREA INDEX ON PLANT FUNCTIONAL TYPES AFTER PHENOLOGY ABX1F405.1122
ABX1F405.1123
IF (SF(7,19)) THEN ABX1F405.1124
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1125
& STLIST(1,STINDEX(1,7,19,im_index)), ABX1F405.1126
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1127
& ICODE,CMESSAGE) ABX1F405.1128
IF (ICODE.GT.0) THEN ABX1F405.1129
RETURN ABX1F405.1130
END IF ABX1F405.1131
PSLEVEL_OUT=0 ABX1F405.1132
DO PSLEVEL=1,NPFT ABX1F405.1133
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1134
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1135
CALL FROM_LAND_POINTS
( ABX1F405.1136
& STASHWORK(SI(7,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1137
& *P_FIELD),LAI_PHEN(1,PSLEVEL), ABX1F405.1138
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1139
END IF ABX1F405.1140
END DO ABX1F405.1141
END IF ABX1F405.1142
ABX1F405.1143
CL ITEM 8: MEAN LEAF TURNOVER RATE ON PFTS FOR TRIFFID ABX1F405.1144
ABX1F405.1145
IF (SF(8,19)) THEN ABX1F405.1146
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1147
& STLIST(1,STINDEX(1,8,19,im_index)), ABX1F405.1148
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1149
& ICODE,CMESSAGE) ABX1F405.1150
IF (ICODE.GT.0) THEN ABX1F405.1151
RETURN ABX1F405.1152
END IF ABX1F405.1153
PSLEVEL_OUT=0 ABX1F405.1154
DO PSLEVEL=1,NPFT ABX1F405.1155
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1156
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1157
CALL FROM_LAND_POINTS
( ABX1F405.1158
& STASHWORK(SI(8,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1159
& *P_FIELD),G_LEAF_DR_OUT(1,PSLEVEL), ABX1F405.1160
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1161
END IF ABX1F405.1162
END DO ABX1F405.1163
END IF ABX1F405.1164
ABX1F405.1165
CL ITEM 9: MEAN NPP ON PFTS FOR TRIFFID ABX1F405.1166
ABX1F405.1167
IF (SF(9,19)) THEN ABX1F405.1168
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1169
& STLIST(1,STINDEX(1,9,19,im_index)), ABX1F405.1170
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1171
& ICODE,CMESSAGE) ABX1F405.1172
IF (ICODE.GT.0) THEN ABX1F405.1173
RETURN ABX1F405.1174
END IF ABX1F405.1175
PSLEVEL_OUT=0 ABX1F405.1176
DO PSLEVEL=1,NPFT ABX1F405.1177
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1178
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1179
CALL FROM_LAND_POINTS
( ABX1F405.1180
& STASHWORK(SI(9,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1181
& *P_FIELD),NPP_DR_OUT(1,PSLEVEL), ABX1F405.1182
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1183
END IF ABX1F405.1184
END DO ABX1F405.1185
END IF ABX1F405.1186
ABX1F405.1187
CL ITEM 10: MEAN WOOD RESPIRATION ON PFTS FOR TRIFFID ABX1F405.1188
ABX1F405.1189
IF (SF(10,19)) THEN ABX1F405.1190
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1191
& STLIST(1,STINDEX(1,10,19,im_index)), ABX1F405.1192
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1193
& ICODE,CMESSAGE) ABX1F405.1194
IF (ICODE.GT.0) THEN ABX1F405.1195
RETURN ABX1F405.1196
END IF ABX1F405.1197
PSLEVEL_OUT=0 ABX1F405.1198
DO PSLEVEL=1,NPFT ABX1F405.1199
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1200
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1201
CALL FROM_LAND_POINTS
( ABX1F405.1202
& STASHWORK(SI(10,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1203
& *P_FIELD),RESP_W_DR_OUT(1,PSLEVEL), ABX1F405.1204
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1205
END IF ABX1F405.1206
END DO ABX1F405.1207
END IF ABX1F405.1208
ABX1F405.1209
CL ITEM 11: MEAN SOIL RESPIRATION FOR TRIFFID ABX1F405.1210
ABX1F405.1211
IF (SF(11,19)) THEN ABX1F405.1212
CALL FROM_LAND_POINTS
( ABX1F405.1213
& STASHWORK(SI(11,19,im_index)),RESP_S_DR_OUT, ABX1F405.1214
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1215
END IF ABX1F405.1216
ABX1F405.1217
CL ITEM 12: DISTURBED FRACTION OF VEGETATION ABX1F405.1218
ABX1F405.1219
IF (SF(12,19)) THEN ABX1F405.1220
CALL FROM_LAND_POINTS
( ABX1F405.1221
& STASHWORK(SI(12,19,im_index)), ABX1F405.1222
& D1(JDISTURB+((PSLEVEL-1)*LAND_FIELD)), ABX1F405.1223
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1224
END IF ABX1F405.1225
ABX1F405.1226
CL ITEM 13: SURFACE TYPE FRACTIONS AFTER TRIFFID ABX1F405.1227
ABX1F405.1228
IF (SF(13,19)) THEN ABX1F405.1229
CALL SET_PSEUDO_LIST
(NTYPE,LEN_STLIST, ABX1F405.1230
& STLIST(1,STINDEX(1,13,19,im_index)), ABX1F405.1231
& PLLTYPE,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1232
& ICODE,CMESSAGE) ABX1F405.1233
IF (ICODE.GT.0) THEN ABX1F405.1234
RETURN ABX1F405.1235
END IF ABX1F405.1236
PSLEVEL_OUT=0 ABX1F405.1237
DO PSLEVEL=1,NTYPE ABX1F405.1238
IF (PLLTYPE(PSLEVEL)) THEN ABX1F405.1239
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1240
CALL FROM_LAND_POINTS
( ABX1F405.1241
& STASHWORK(SI(13,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1242
& *P_FIELD),D1(JFRAC_TYP+((PSLEVEL-1)*LAND_FIELD)), ABX1F405.1243
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1244
END IF ABX1F405.1245
END DO ABX1F405.1246
END IF ABX1F405.1247
ABX1F405.1248
CL ITEM 14: LEAF AREA INDEX ON PLANT FUNCTIONAL TYPES AFTER TRIFFID ABX1F405.1249
ABX1F405.1250
IF (SF(14,19)) THEN ABX1F405.1251
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1252
& STLIST(1,STINDEX(1,14,19,im_index)), ABX1F405.1253
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1254
& ICODE,CMESSAGE) ABX1F405.1255
IF (ICODE.GT.0) THEN ABX1F405.1256
RETURN ABX1F405.1257
END IF ABX1F405.1258
PSLEVEL_OUT=0 ABX1F405.1259
DO PSLEVEL=1,NPFT ABX1F405.1260
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1261
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1262
CALL FROM_LAND_POINTS
( ABX1F405.1263
& STASHWORK(SI(14,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1264
& *P_FIELD),D1(JLAI_PFT+((PSLEVEL-1)*LAND_FIELD)), ABX1F405.1265
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1266
END IF ABX1F405.1267
END DO ABX1F405.1268
END IF ABX1F405.1269
ABX1F405.1270
CL ITEM 15: CANOPY HEIGHT ON PLANT FUNCTIONAL TYPES AFTER TRIFFID ABX1F405.1271
ABX1F405.1272
IF (SF(15,19)) THEN ABX1F405.1273
CALL SET_PSEUDO_LIST
(NPFT,LEN_STLIST, ABX1F405.1274
& STLIST(1,STINDEX(1,15,19,im_index)), ABX1F405.1275
& PLLPFT,STASH_PSEUDO_LEVELS,NUM_STASH_PSEUDO, ABX1F405.1276
& ICODE,CMESSAGE) ABX1F405.1277
IF (ICODE.GT.0) THEN ABX1F405.1278
RETURN ABX1F405.1279
END IF ABX1F405.1280
PSLEVEL_OUT=0 ABX1F405.1281
DO PSLEVEL=1,NPFT ABX1F405.1282
IF (PLLPFT(PSLEVEL)) THEN ABX1F405.1283
PSLEVEL_OUT=PSLEVEL_OUT+1 ABX1F405.1284
CALL FROM_LAND_POINTS
( ABX1F405.1285
& STASHWORK(SI(15,19,im_index)+(PSLEVEL_OUT-1) ABX1F405.1286
& *P_FIELD),D1(JCANHT_PFT+((PSLEVEL-1)*LAND_FIELD)), ABX1F405.1287
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1288
END IF ABX1F405.1289
END DO ABX1F405.1290
END IF ABX1F405.1291
ABX1F405.1292
CL ITEM 16: SOIL CARBON CONTENT AFTER TRIFFID ABX1F405.1293
ABX1F405.1294
IF (SF(16,19)) THEN ABX1F405.1295
CALL FROM_LAND_POINTS
( ABX1F405.1296
& STASHWORK(SI(16,19,im_index)),D1(JSOIL_CARB), ABX1F405.1297
& D1(JLAND),P_FIELD,LAND_FIELD) ABX1F405.1298
END IF ABX1F405.1299
ABX1F405.1300
ABX1F405.1301
CALL STASH
(a_sm,a_im,3,STASHWORK, ABX1F405.1302
*CALL ARGSIZE
ABX1F405.1303
*CALL ARGD1
ABX1F405.1304
*CALL ARGDUMA
ABX1F405.1305
*CALL ARGDUMO
ABX1F405.1306
*CALL ARGDUMW
ABX1F405.1307
*CALL ARGSTS
ABX1F405.1308
*CALL ARGPPX
ABX1F405.1309
& ICODE,CMESSAGE) ABX1F405.1310
RETURN VEG_CTL1.139
END VEG_CTL1.140
*ENDIF VEG_CTL1.141