6 SUBROUTINE urban_exch_coef(HZ0H, PZ0_O_Z0H, PTG, PQS, PEXNS, PEXNA, PTA, PQA, &
7 pzref, puref, pvmod, pz0, &
8 pri, pcd, pcdn, pac, pra, pch )
54 USE modi_surface_aero_cond
55 USE modi_wind_threshold
60 USE yomhook
,ONLY : lhook, dr_hook
61 USE parkind1
,ONLY : jprb
65 USE modi_init_surfconsphy
69 CHARACTER(LEN=6) :: hz0h
70 REAL,
INTENT(IN) :: pz0_o_z0h
71 REAL,
DIMENSION(:),
INTENT(IN) :: ptg
72 REAL,
DIMENSION(:),
INTENT(IN) :: pqs
73 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
74 REAL,
DIMENSION(:),
INTENT(IN) :: pta
75 REAL,
DIMENSION(:),
INTENT(IN) :: pqa
77 REAL,
DIMENSION(:),
INTENT(IN) :: pexna
79 REAL,
DIMENSION(:),
INTENT(IN) :: pvmod
81 REAL,
DIMENSION(:),
INTENT(IN) :: pz0
82 REAL,
DIMENSION(:),
INTENT(IN) :: pzref
84 REAL,
DIMENSION(:),
INTENT(IN) :: puref
88 REAL,
DIMENSION(:),
INTENT(OUT) :: pri
90 REAL,
DIMENSION(:),
INTENT(OUT) :: pcd
91 REAL,
DIMENSION(:),
INTENT(OUT) :: pcdn
92 REAL,
DIMENSION(:),
INTENT(OUT) :: pac
93 REAL,
DIMENSION(:),
INTENT(OUT) :: pra
94 REAL,
DIMENSION(:),
INTENT(OUT) :: pch
98 REAL,
DIMENSION(SIZE(PZ0)) :: zz0h
100 REAL,
DIMENSION(SIZE(PTA)) :: cmu, ctu, rib,ftemp,fvap,ilmo
101 REAL,
DIMENSION(SIZE(PTA)) :: ue,fcor, hbl,lzz0,lzz0t,fm, fh
102 REAL,
DIMENSION(SIZE(PTA)) :: z0h_roof,z0h_town,z0h_road
103 REAL,
DIMENSION(SIZE(PTA)) :: zustar, zta, ztg
104 REAL,
DIMENSION(SIZE(PTA)) :: zvmod
108 REAL,
DIMENSION(SIZE(PTA)) :: zdircoszw
109 REAL(KIND=JPRB) :: zhook_handle
115 IF (lhook) CALL dr_hook(
'URBAN_EXCH_COEF',0,zhook_handle)
116 IF (hz0h==
'MASC95')
THEN
118 zz0h = pz0 / pz0_o_z0h
121 CALL
surface_ri(ptg, pqs, pexns, pexna, pta, pqa, &
122 pzref, puref, zdircoszw, pvmod, pri )
124 CALL
surface_cd(pri, pzref, puref, pz0, zz0h, pcd, pcdn)
132 ELSEIF(hz0h==
'BRUT82' .OR. hz0h==
'KAND07')
THEN
134 fcor(:)=1.0372462e-04
143 zustar(:) = 0.4 * zvmod(:) / log( puref/pz0(:) )
145 IF (hz0h==
'KAND07')
THEN
146 zz0h(:)= pz0(:) * 7.4 * exp( - 1.29 *( pz0(:)*zustar(:)/1.461e-5)**0.25)
147 ELSEIF (hz0h==
'BRUT82')
THEN
148 zz0h(:)= pz0(:) * 7.4 * exp( - 2.46 *( pz0(:)*zustar(:)/1.461e-5)**0.25)
153 CALL
flxsurf3bx( cmu, ctu, pri,ftemp,fvap,ilmo, &
154 ue, fcor, zta, pqa, &
155 puref, pzref, zvmod, ztg, pqs,&
157 lzz0, lzz0t, fm, fh,n )
159 pcd(:) = (cmu(:)/ue(:))**2
160 pcdn(:) = (xkarman/log(puref(:)/pz0(:)))**2
161 pac(:) = (cmu(:)*ctu(:)/ue(:)**2) * zvmod(:)
163 pch(:) = 1. / (pra(:) * zvmod(:))
166 IF (lhook) CALL dr_hook(
'URBAN_EXCH_COEF',1,zhook_handle)
real function, dimension(size(pwind)) wind_threshold(PWIND, PUREF)
subroutine surface_ri(PTG, PQS, PEXNS, PEXNA, PTA, PQA, PZREF, PUREF, PDIRCOSZW, PVMOD, PRI)
subroutine init_surfconsphy
subroutine surface_aero_cond(PRI, PZREF, PUREF, PVMOD, PZ0, PZ0H, PAC, PRA, PCH)
subroutine surface_cd(PRI, PZREF, PUREF, PZ0EFF, PZ0H, PCD, PCDN)
subroutine flxsurf3bx(CMU, CTU, RIB, FTEMP, FVAP, ILMO, UE, FCOR, TA, QA, ZU, ZT, VA, TG, QG, H, Z0, Z0T, LZZ0, LZZ0T, FM, FH, N)
subroutine urban_exch_coef(HZ0H, PZ0_O_Z0H, PTG, PQS, PEXNS, PEXNA, PTA, PQA, PZREF, PUREF, PVMOD, PZ0, PRI, PCD, PCDN, PAC, PRA, PCH)