55 USE modi_get_type_dim_n
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
71 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
78 CHARACTER(LEN=12) :: yrecfm
79 CHARACTER(LEN=3) :: yread
83 INTEGER :: iversion, ibugfix
84 REAL(KIND=JPRB) :: zhook_handle
89 IF (lhook) CALL dr_hook(
'READ_TEB_CANOPY_N',0,zhook_handle)
98 hprogram,yrecfm,iversion,iresp)
102 hprogram,yrecfm,ibugfix,iresp)
105 top%LCANOPY = .false.
109 hprogram,yrecfm,top%LCANOPY,iresp)
112 IF (.NOT.top%LCANOPY)
THEN
113 ALLOCATE(tcp%XZ (0,0))
114 ALLOCATE(tcp%XU (0,0))
115 ALLOCATE(tcp%XT (0,0))
116 ALLOCATE(tcp%XQ (0,0))
117 ALLOCATE(tcp%XTKE(0,0))
118 ALLOCATE(tcp%XLMO(0,0))
119 ALLOCATE(tcp%XP (0,0))
120 ALLOCATE(tcp%XLM (0,0))
121 ALLOCATE(tcp%XLEPS(0,0))
122 ALLOCATE(tcp%XDZ (0,0))
123 ALLOCATE(tcp%XZF (0,0))
124 ALLOCATE(tcp%XDZF(0,0))
125 IF (lhook) CALL dr_hook(
'READ_TEB_CANOPY_N',1,zhook_handle)
133 hprogram,yrecfm,tcp%NLVL,iresp)
140 ALLOCATE(tcp%XZ(ilu,tcp%NLVL))
143 WRITE(yrecfm,
'(A9,I2.2,A1)')
'TEB_CAN_Z',jlayer,
' '
145 hprogram,yrecfm,tcp%XZ(:,jlayer),iresp)
148 ALLOCATE(tcp%XU (ilu,tcp%NLVL))
149 ALLOCATE(tcp%XT (ilu,tcp%NLVL))
150 ALLOCATE(tcp%XQ (ilu,tcp%NLVL))
151 ALLOCATE(tcp%XTKE(ilu,tcp%NLVL))
152 ALLOCATE(tcp%XLMO(ilu,tcp%NLVL))
153 ALLOCATE(tcp%XP (ilu,tcp%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,
'(A9,I2.2,A1)')
'TEB_CAN_U',jlayer,
' '
169 hprogram,yrecfm,tcp%XU(:,jlayer),iresp)
174 WRITE(yrecfm,
'(A9,I2.2,A1)')
'TEB_CAN_T',jlayer,
' '
176 hprogram,yrecfm,tcp%XT(:,jlayer),iresp)
181 WRITE(yrecfm,
'(A9,I2.2,A1)')
'TEB_CAN_Q',jlayer,
' '
183 hprogram,yrecfm,tcp%XQ(:,jlayer),iresp)
188 WRITE(yrecfm,
'(A9,I2.2,A1)')
'TEB_CAN_E',jlayer,
' '
190 hprogram,yrecfm,tcp%XTKE(:,jlayer),iresp)
195 yrecfm=
'TEB_CAN_LMO '
197 hprogram,yrecfm,tcp%XLMO(:,1),iresp)
198 DO jlayer = 2,tcp%NLVL
199 tcp%XLMO(:,jlayer) = tcp%XLMO(:,1)
203 WRITE(yrecfm,
'(A10,I2.2)')
'TEB_CAN_MO',jlayer
205 hprogram,yrecfm,tcp%XLMO(:,jlayer),iresp)
211 WRITE(yrecfm,
'(A9,I2.2,A1)')
'TEB_CAN_P',jlayer,
' '
213 hprogram,yrecfm,tcp%XP(:,jlayer),iresp)
217 tcp%XU (:,:) = xundef
218 tcp%XT (:,:) = xundef
219 tcp%XQ (:,:) = xundef
220 tcp%XTKE(:,:) = xundef
221 tcp%XLMO(:,:) = xundef
222 tcp%XP (:,:) = xundef
227 ALLOCATE(tcp%XLM(ilu,tcp%NLVL))
231 ALLOCATE(tcp%XLEPS(ilu,tcp%NLVL))
250 ALLOCATE(tcp%XDZ (ilu,tcp%NLVL))
251 ALLOCATE(tcp%XZF (ilu,tcp%NLVL))
252 ALLOCATE(tcp%XDZF(ilu,tcp%NLVL))
253 CALL
canopy_grid(ilu,tcp%NLVL,tcp%XZ,tcp%XZF,tcp%XDZ,tcp%XDZF)
255 IF (lhook) CALL dr_hook(
'READ_TEB_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_teb_canopy_n(DTCO, U, TCP, TOP, HPROGRAM)