7 pta, pexna, prhoa, ptice, pexns, pqa, prr, prs, &
10 psfth, psftq, pustar, &
11 pcd, pcdn, pch, pri, presa, pz0hice )
61 USE modd_surf_atm, ONLY : ldrag_coef_arp, lrrgust_arp, xrrscale, &
67 USE modi_surface_aero_cond
69 USE modi_surface_cdch_1darp
70 USE modi_wind_threshold
76 USE yomhook
,ONLY : lhook, dr_hook
77 USE parkind1
,ONLY : jprb
84 REAL,
DIMENSION(:),
INTENT(IN) :: pta
85 REAL,
DIMENSION(:),
INTENT(IN) :: pqa
86 REAL,
DIMENSION(:),
INTENT(IN) :: pexna
87 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
88 REAL,
DIMENSION(:),
INTENT(IN) :: pvmod
89 REAL,
DIMENSION(:),
INTENT(IN) :: pzref
90 REAL,
DIMENSION(:),
INTENT(IN) :: puref
91 REAL,
DIMENSION(:),
INTENT(IN) :: ptice
92 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
93 REAL,
DIMENSION(:),
INTENT(IN) :: pps
94 REAL,
DIMENSION(:),
INTENT(IN) :: prr
95 REAL,
DIMENSION(:),
INTENT(IN) :: prs
97 REAL,
DIMENSION(:),
INTENT(INOUT) :: pz0ice
101 REAL,
DIMENSION(:),
INTENT(OUT) :: psfth
102 REAL,
DIMENSION(:),
INTENT(OUT) :: psftq
103 REAL,
DIMENSION(:),
INTENT(OUT) :: pustar
106 REAL,
DIMENSION(:),
INTENT(OUT) :: pqsat
107 REAL,
DIMENSION(:),
INTENT(OUT) :: pcd
108 REAL,
DIMENSION(:),
INTENT(OUT) :: pcdn
109 REAL,
DIMENSION(:),
INTENT(OUT) :: pch
110 REAL,
DIMENSION(:),
INTENT(OUT) :: pri
111 REAL,
DIMENSION(:),
INTENT(OUT) :: presa
112 REAL,
DIMENSION(:),
INTENT(OUT) :: pz0hice
118 REAL,
DIMENSION(SIZE(PTA)) :: zvmod
119 REAL,
DIMENSION(SIZE(PTA)) :: zustar2
120 REAL,
DIMENSION(SIZE(PTA)) :: zac
121 REAL,
DIMENSION(SIZE(PTA)) :: zra
122 REAL,
DIMENSION(SIZE(PTA)) :: zdircoszw
123 REAL,
DIMENSION(SIZE(PTA)) :: zfp
124 REAL,
DIMENSION(SIZE(PTA)) :: zrrcor
125 REAL(KIND=JPRB) :: zhook_handle
133 IF (lhook) CALL dr_hook(
'ICE_SEA_FLUX',0,zhook_handle)
150 pqsat(:) =
qsat(ptice(:),pps(:))
161 CALL
surface_ri(ptice,pqsat,pexns,pexna,pta,pqa, &
162 pzref, puref, zdircoszw,pvmod,pri)
179 IF ( xcd_ice_cst == 0.0 )
THEN
181 IF (ldrag_coef_arp)
THEN
184 pqa, pqsat, pcd, pcdn, pch )
186 zra(:) = 1. / ( pch(:) * zvmod(:) )
190 CALL
surface_cd(pri, pzref, puref, pz0ice, pz0hice, pcd, pcdn)
206 zra(:)=1./(pch(:)*zvmod(:))
210 zustar2(:) = pcd(:)*zvmod(:)*zvmod(:)
214 IF (lrrgust_arp)
THEN
215 zfp(:)=max(0.0,prr(:)+prs(:))
216 zrrcor(:)=sqrt(1.0+((((zfp(:)/(zfp(:)+xrrscale))**xrrgamma)*xutilgust)**2) &
217 /(pcd(:)*zvmod(:)**2))
229 psfth(:) = xcpd * prhoa(:) * pch(:) * zvmod(:) * ( ptice(:) -pta(:) * pexns(:) / pexna(:) ) / pexns(:)
231 psftq(:) = prhoa(:) * pch(:) * zvmod(:) * ( pqsat(:)-pqa(:) )
232 pustar(:) = sqrt(zustar2(:))
234 IF (lhook) CALL dr_hook(
'ICE_SEA_FLUX',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 ice_sea_flux(PZ0ICE, PTA, PEXNA, PRHOA, PTICE, PEXNS, PQA, PRR, PRS, PVMOD, PZREF, PUREF, PPS, PQSAT, PSFTH, PSFTQ, PUSTAR, PCD, PCDN, PCH, PRI, PRESA, PZ0HICE)
subroutine surface_aero_cond(PRI, PZREF, PUREF, PVMOD, PZ0, PZ0H, PAC, PRA, PCH)
subroutine surface_cd(PRI, PZREF, PUREF, PZ0EFF, PZ0H, PCD, PCDN)
subroutine surface_cdch_1darp(PZREF, PZ0EFF, PZ0H, PVMOD, PTA, PTG, PQA, PQS, PCD, PCDN, PCH)