43 USE modd_agri
, ONLY : lagrip
58 INTEGER,
INTENT(IN) :: KVEGTYPE
61 INTEGER :: ISIZE_LMEB_PATCH
64 REAL(KIND=JPRB) :: ZHOOK_HANDLE
70 IF (
lhook)
CALL dr_hook(
'ALLOCATE_PHYSIO',0,zhook_handle)
74 isize_lmeb_patch=
count(io%LMEB_PATCH(:))
76 ALLOCATE(pk%XDG (isize,io%NGROUND_LAYER))
77 ALLOCATE(pk%XD_ICE (isize ))
79 ALLOCATE(pek%XLAI (isize ))
80 ALLOCATE(pek%XVEG (isize ))
81 ALLOCATE(pek%XZ0 (isize ))
82 ALLOCATE(pek%XEMIS (isize ))
84 ALLOCATE(pek%XRSMIN (isize ))
85 ALLOCATE(pek%XGAMMA (isize ))
86 ALLOCATE(pek%XWRMAX_CF (isize ))
87 ALLOCATE(pek%XRGL (isize ))
88 ALLOCATE(pek%XCV (isize ))
89 ALLOCATE(pek%XALBNIR_VEG (isize ))
90 ALLOCATE(pek%XALBVIS_VEG (isize ))
91 ALLOCATE(pek%XALBUV_VEG (isize ))
93 ALLOCATE(pk%XZ0_O_Z0H (isize ))
95 IF (isize_lmeb_patch>0 .OR. io%CPHOTO/=
'NON')
THEN 96 ALLOCATE(pek%XBSLAI (isize ))
98 ALLOCATE(pek%XBSLAI (0))
103 ALLOCATE(pk%XH_TREE (isize ))
105 ALLOCATE(pk%XH_TREE (0 ))
108 IF (io%CPHOTO/=
'NON')
THEN 109 ALLOCATE(pk%XRE25 (isize ))
110 ALLOCATE(pk%XDMAX (isize ))
111 ALLOCATE(pek%XLAIMIN (isize ))
112 ALLOCATE(pek%XSEFOLD (isize ))
113 ALLOCATE(pek%XGMES (isize ))
114 ALLOCATE(pek%XGC (isize ))
115 ALLOCATE(pek%XF2I (isize ))
116 ALLOCATE(pek%LSTRESS (isize ))
117 IF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 118 ALLOCATE(pek%XCE_NITRO (isize ))
119 ALLOCATE(pek%XCF_NITRO (isize ))
120 ALLOCATE(pek%XCNA_NITRO (isize ))
122 ALLOCATE(pek%XCE_NITRO (0))
123 ALLOCATE(pek%XCF_NITRO (0))
124 ALLOCATE(pek%XCNA_NITRO (0))
127 ALLOCATE(pk%XRE25 (0))
128 ALLOCATE(pk%XDMAX (0))
129 ALLOCATE(pek%XLAIMIN (0))
130 ALLOCATE(pek%XSEFOLD (0))
131 ALLOCATE(pek%XGMES (0))
132 ALLOCATE(pek%XGC (0))
133 ALLOCATE(pek%XF2I (0))
134 ALLOCATE(pek%LSTRESS (0))
135 ALLOCATE(pek%XCE_NITRO (0))
136 ALLOCATE(pek%XCF_NITRO (0))
137 ALLOCATE(pek%XCNA_NITRO(0))
142 IF (lagrip .AND. (io%CPHOTO ==
'NIT' .OR. io%CPHOTO ==
'NCB'))
THEN 143 ALLOCATE(pek%TSEED (isize ))
144 ALLOCATE(pek%TREAP (isize ))
145 ALLOCATE(pek%XWATSUP (isize ))
146 ALLOCATE(pek%XIRRIG (isize ))
148 ALLOCATE(pek%TSEED (0))
149 ALLOCATE(pek%TREAP (0))
150 ALLOCATE(pek%XWATSUP (0))
151 ALLOCATE(pek%XIRRIG (0))
156 IF(io%CISBA==
'DIF')
THEN 157 ALLOCATE(pk%XROOTFRAC (isize,io%NGROUND_LAYER))
158 ALLOCATE(pk%NWG_LAYER (isize))
159 ALLOCATE(pk%XDROOT (isize))
160 ALLOCATE(pk%XDG2 (isize))
162 ALLOCATE(pk%XROOTFRAC (0,0))
163 ALLOCATE(pk%NWG_LAYER (0) )
164 ALLOCATE(pk%XDROOT (0) )
165 ALLOCATE(pk%XDG2 (0) )
168 ALLOCATE(pek%XGNDLITTER (isize))
169 ALLOCATE(pek%XZ0LITTER (isize))
170 ALLOCATE(pek%XH_VEG (isize))
172 IF (
lhook)
CALL dr_hook(
'ALLOCATE_PHYSIO',1,zhook_handle)
subroutine allocate_physio(IO, KK, PK, PEK, KVEGTYPE)