56 USE yomhook
,ONLY : lhook, dr_hook
57 USE parkind1
,ONLY : jprb
71 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
72 LOGICAL,
INTENT(IN) :: owrite
78 CHARACTER(LEN=12) :: yrecfm
79 CHARACTER(LEN=100):: ycomment
82 REAL(KIND=JPRB) :: zhook_handle
91 IF (lhook) CALL dr_hook(
'WRITESURF_SSO_CANOPY_N',0,zhook_handle)
93 ycomment=
'flag to use canopy levels'
95 hprogram,yrecfm,owrite,iresp,hcomment=ycomment)
97 IF (.NOT. owrite .AND. lhook) CALL dr_hook(
'WRITESURF_SSO_CANOPY_N',1,zhook_handle)
98 IF (.NOT. owrite)
RETURN
103 ycomment=
'number of canopy levels'
105 hprogram,yrecfm,sscp%NLVL,iresp,hcomment=ycomment)
109 DO jlayer=1,sscp%NLVL
110 WRITE(yrecfm,
'(A9,I2.2,A1)')
'SSO_CAN_Z',jlayer,
' '
111 ycomment=
'altitudes of canopy levels (m)'
113 hprogram,yrecfm,sscp%XZ(:,jlayer),iresp,hcomment=ycomment)
118 DO jlayer=1,sscp%NLVL
119 WRITE(yrecfm,
'(A9,I2.2,A1)')
'SSO_CAN_U',jlayer,
' '
120 ycomment=
'wind at canopy levels (m/s)'
122 hprogram,yrecfm,sscp%XU(:,jlayer),iresp,hcomment=ycomment)
127 DO jlayer=1,sscp%NLVL
128 WRITE(yrecfm,
'(A9,I2.2,A1)')
'SSO_CAN_E',jlayer,
' '
129 ycomment=
'Tke at canopy levels (m2/s2)'
131 hprogram,yrecfm,sscp%XTKE(:,jlayer),iresp,hcomment=ycomment)
134 IF (lhook) CALL dr_hook(
'WRITESURF_SSO_CANOPY_N',1,zhook_handle)
subroutine writesurf_sso_canopy_n(DGU, U, SSCP, HPROGRAM, OWRITE)