7 ptsurf_tile, pz0_tile, &
8 pz0h_tile, pqsurf_tile, &
10 ptsurf, pz0, pz0h, pqsurf )
53 USE yomhook
,ONLY : lhook, dr_hook
54 USE parkind1
,ONLY : jprb
63 REAL,
DIMENSION(:,:),
INTENT(IN) :: pfrac_tile
65 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptsurf_tile
66 REAL,
DIMENSION(:,:),
INTENT(IN) :: pz0_tile
67 REAL,
DIMENSION(:,:),
INTENT(IN) :: pz0h_tile
68 REAL,
DIMENSION(:,:),
INTENT(IN) :: pqsurf_tile
70 REAL,
DIMENSION(:),
INTENT(IN) :: puref
71 REAL,
DIMENSION(:),
INTENT(IN) :: pzref
72 REAL,
DIMENSION(:),
INTENT(OUT):: ptsurf
73 REAL,
DIMENSION(:),
INTENT(OUT):: pz0
74 REAL,
DIMENSION(:),
INTENT(OUT):: pz0h
75 REAL,
DIMENSION(:),
INTENT(OUT):: pqsurf
79 REAL,
DIMENSION(SIZE(PUREF)) :: zwork_z0
80 REAL,
DIMENSION(SIZE(PUREF)) :: zwork_z0h
84 REAL(KIND=JPRB) :: zhook_handle
90 IF (lhook) CALL dr_hook(
'AVERAGE_PHY',0,zhook_handle)
92 ini =
SIZE(pfrac_tile,1)
93 inp =
SIZE(pfrac_tile,2)
111 ptsurf(ji) = ptsurf(ji) + pfrac_tile(ji,jp) * ptsurf_tile(ji,jp)
115 pqsurf(ji) = pqsurf(ji) + pfrac_tile(ji,jp) * pqsurf_tile(ji,jp)
119 zwork_z0(ji) = zwork_z0(ji) + pfrac_tile(ji,jp) * 1.0/(log(puref(ji)/pz0_tile(ji,jp)))**2
120 zwork_z0h(ji) = zwork_z0h(ji) + pfrac_tile(ji,jp) * 1.0/(log(pzref(ji)/pz0h_tile(ji,jp)))**2
128 IF(zwork_z0(ji) /= 0 )
then
129 pz0(ji) = puref(ji) * exp( - sqrt(1./zwork_z0(ji)) )
130 pz0h(ji) = pzref(ji) * exp( - sqrt(1./zwork_z0h(ji)) )
137 IF (lhook) CALL dr_hook(
'AVERAGE_PHY',1,zhook_handle)
subroutine average_phy(PFRAC_TILE, PTSURF_TILE, PZ0_TILE, PZ0H_TILE, PQSURF_TILE, PUREF, PZREF, PTSURF, PZ0, PZ0H, PQSURF)