56 USE modi_get_type_dim_n
58 USE yomhook
,ONLY : lhook, dr_hook
59 USE parkind1
,ONLY : jprb
68 TYPE(isba_canopy_t
),
INTENT(INOUT) :: icp
69 TYPE(isba_t
),
INTENT(INOUT) :: i
72 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
79 CHARACTER(LEN=12) :: yrecfm
80 CHARACTER(LEN=3) :: yread
84 INTEGER :: iversion, ibugfix
85 REAL(KIND=JPRB) :: zhook_handle
90 IF (lhook) CALL dr_hook(
'READ_ISBA_CANOPY_N',0,zhook_handle)
100 hprogram,yrecfm,iversion,iresp)
104 hprogram,yrecfm,ibugfix,iresp)
111 hprogram,yrecfm,i%LCANOPY,iresp)
114 IF (.NOT.i%LCANOPY)
THEN
115 ALLOCATE(icp%XZ (0,0))
116 ALLOCATE(icp%XU (0,0))
117 ALLOCATE(icp%XT (0,0))
118 ALLOCATE(icp%XQ (0,0))
119 ALLOCATE(icp%XTKE(0,0))
120 ALLOCATE(icp%XLMO(0) )
121 ALLOCATE(icp%XP (0,0))
122 ALLOCATE(icp%XDZ (0,0))
123 ALLOCATE(icp%XZF (0,0))
124 ALLOCATE(icp%XDZF(0,0))
125 IF (lhook) CALL dr_hook(
'READ_ISBA_CANOPY_N',1,zhook_handle)
131 yrecfm=
'ISBA_CAN_LVL'
133 hprogram,yrecfm,icp%NLVL,iresp)
140 ALLOCATE(icp%XZ(ilu,icp%NLVL))
143 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_Z',jlayer
145 hprogram,yrecfm,icp%XZ(:,jlayer),iresp)
148 ALLOCATE(icp%XU (ilu,icp%NLVL))
149 ALLOCATE(icp%XT (ilu,icp%NLVL))
150 ALLOCATE(icp%XQ (ilu,icp%NLVL))
151 ALLOCATE(icp%XTKE(ilu,icp%NLVL))
152 ALLOCATE(icp%XLMO(ilu) )
153 ALLOCATE(icp%XP (ilu,icp%NLVL))
155 IF (iversion>7 .OR. iversion==7 .AND.ibugfix>=2)
THEN
158 hprogram,yrecfm,yread,iresp)
163 IF(yread==
'ALL')
THEN
167 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_U',jlayer
169 hprogram,yrecfm,icp%XU(:,jlayer),iresp)
174 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_T',jlayer
176 hprogram,yrecfm,icp%XT(:,jlayer),iresp)
181 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_Q',jlayer
183 hprogram,yrecfm,icp%XQ(:,jlayer),iresp)
188 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_E',jlayer
190 hprogram,yrecfm,icp%XTKE(:,jlayer),iresp)
194 yrecfm=
'ISBA_CAN_LMO '
196 hprogram,yrecfm,icp%XLMO(:),iresp)
200 WRITE(yrecfm,
'(A10,I2.2)')
'ISBA_CAN_P',jlayer
202 hprogram,yrecfm,icp%XP(:,jlayer),iresp)
206 icp%XU (:,:) = xundef
207 icp%XT (:,:) = xundef
208 icp%XQ (:,:) = xundef
209 icp%XTKE(:,:) = xundef
211 icp%XP (:,:) = xundef
231 ALLOCATE(icp%XDZ (ilu,icp%NLVL))
232 ALLOCATE(icp%XZF (ilu,icp%NLVL))
233 ALLOCATE(icp%XDZF(ilu,icp%NLVL))
234 CALL
canopy_grid(ilu,icp%NLVL,icp%XZ,icp%XZF,icp%XDZ,icp%XDZF)
236 IF (lhook) CALL dr_hook(
'READ_ISBA_CANOPY_N',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine canopy_grid(KI, KLVL, PZ, PZF, PDZ, PDZF)
subroutine read_isba_canopy_n(DTCO, ICP, I, U, HPROGRAM)