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
67 CHARACTER(LEN=6) :: HZ0H
68 REAL,
INTENT(IN) :: PZ0_O_Z0H
69 REAL,
DIMENSION(:),
INTENT(IN) :: PTG
70 REAL,
DIMENSION(:),
INTENT(IN) :: PQS
71 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNS
72 REAL,
DIMENSION(:),
INTENT(IN) :: PTA
73 REAL,
DIMENSION(:),
INTENT(IN) :: PQA
75 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNA
77 REAL,
DIMENSION(:),
INTENT(IN) :: PVMOD
79 REAL,
DIMENSION(:),
INTENT(IN) :: PZ0
80 REAL,
DIMENSION(:),
INTENT(IN) :: PZREF
82 REAL,
DIMENSION(:),
INTENT(IN) :: PUREF
86 REAL,
DIMENSION(:),
INTENT(OUT) :: PRI
88 REAL,
DIMENSION(:),
INTENT(OUT) :: PCD
89 REAL,
DIMENSION(:),
INTENT(OUT) :: PCDN
90 REAL,
DIMENSION(:),
INTENT(OUT) :: PAC
91 REAL,
DIMENSION(:),
INTENT(OUT) :: PRA
92 REAL,
DIMENSION(:),
INTENT(OUT) :: PCH
96 REAL,
DIMENSION(SIZE(PZ0)) :: ZZ0H
98 REAL,
DIMENSION(SIZE(PTA)) :: cmu, ctu, rib,ftemp,fvap,ilmo
99 REAL,
DIMENSION(SIZE(PTA)) :: ue,fcor, hBL,lzz0,lzz0t,fm, fh
100 REAL,
DIMENSION(SIZE(PTA)) :: z0h_roof,z0h_town,z0h_road
101 REAL,
DIMENSION(SIZE(PTA)) :: zustar, zta, ztg
102 REAL,
DIMENSION(SIZE(PTA)) :: ZVMOD
106 REAL,
DIMENSION(SIZE(PTA)) :: ZDIRCOSZW
107 REAL(KIND=JPRB) :: ZHOOK_HANDLE
113 IF (
lhook)
CALL dr_hook(
'URBAN_EXCH_COEF',0,zhook_handle)
114 IF (hz0h==
'MASC95')
THEN 116 zz0h = pz0 / pz0_o_z0h
119 CALL surface_ri(ptg, pqs, pexns, pexna, pta, pqa, &
120 pzref, puref, zdircoszw, pvmod, pri )
122 CALL surface_cd(pri, pzref, puref, pz0, zz0h, pcd, pcdn)
130 ELSEIF(hz0h==
'BRUT82' .OR. hz0h==
'KAND07')
THEN 132 fcor(:)=1.0372462e-04
140 zustar(:) = 0.4 * zvmod(:) / log( puref/pz0(:) )
142 IF (hz0h==
'KAND07')
THEN 143 zz0h(:)= pz0(:) * 7.4 * exp( - 1.29 *( pz0(:)*zustar(:)/1.461e-5)**0.25)
144 ELSEIF (hz0h==
'BRUT82')
THEN 145 zz0h(:)= pz0(:) * 7.4 * exp( - 2.46 *( pz0(:)*zustar(:)/1.461e-5)**0.25)
150 CALL flxsurf3bx( cmu, ctu, pri,ftemp,fvap,ilmo, &
151 ue, fcor, zta, pqa, &
152 puref, pzref, zvmod, ztg, pqs,&
154 lzz0, lzz0t, fm, fh,n )
156 pcd(:) = (cmu(:)/ue(:))**2
157 pcdn(:) = (
xkarman/log(puref(:)/pz0(:)))**2
158 pac(:) = (cmu(:)*ctu(:)/ue(:)**2) * zvmod(:)
160 pch(:) = 1. / (pra(:) * zvmod(:))
163 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 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)