4 &(npoin,fu,fv,h,u,v,t1,t2,t3,grav,karman,chestr,dt,at)
40 & fice_max,vz,ifrot,ifice,icestr,
41 & thie,thifems,thifemf,hun,ro0
49 INTEGER,
INTENT(IN) :: NPOIN
50 TYPE(bief_obj),
INTENT(INOUT) :: T1,T2,T3
51 DOUBLE PRECISION,
INTENT(IN) :: DT,AT,GRAV,KARMAN
52 TYPE(bief_obj),
INTENT(INOUT) :: FU,FV
53 TYPE(bief_obj),
INTENT(IN) :: CHESTR, H,U,V
58 DOUBLE PRECISION :: SP_EAU
59 DOUBLE PRECISION :: VMAG,WMAG,CD,CSTAR,CWSTAR,VZ31
60 DOUBLE PRECISION :: VZ32,UNTIER,UNSIX
61 DOUBLE PRECISION,
PARAMETER :: EPS=1.d-3
97 vmag = sqrt( u%R(i)**2 + v%R(i)**2 )
100 vz31 = ( sqrt( cstar*grav ) * vmag*chestr%R(i)
101 & / max( h%R(i), 0.05d0 )**unsix)**3
102 vz32 = cwstar * (cd*
rho_air/ro0)**(1.5d0)*wmag**3
103 vz%R(i) = (vz31 + vz32)**untier
129 CALL os(
'X=Y+Z ', x=t2,y=thifems,z=thifemf )
130 CALL os(
'X=X+Y ', x=t2,y=hun)
147 IF (ifice .EQ. 1)
THEN 149 CALL os(
'X=CY ', x=icestr, y=t2, c=(
fice/thie ) )
150 CALL os(
'X=+(Y,C)', x=icestr, y=icestr, c=
fice )
151 CALL os(
'X=-(Y,C)', x=icestr, y=icestr, c=fice_max )
153 WRITE(
lu,*)
'IF LINEAR FRICTION IS SELECTED' 154 WRITE(
lu,*)
'PLEASE SELECT MANNING LAW' 163 CALL os(
'X=+(Y,C)', x=t3, y=h, c=eps )
171 IF(t2%R(i).GT.eps)
THEN 172 sp_eau = sqrt( u%R(i)**2 + v%R(i)**2 )
173 IF( h%R(i).LT.eps ) sp_eau =
174 & max( sp_eau, sqrt(grav*(eps-h%R(i))*h%R(i)/eps) )
177 fu%R(i) = fu%R(i) - 0.5d0 * t1%R(i)*sp_eau*u%R(i) / t3%R(i)
178 fv%R(i) = fv%R(i) - 0.5d0 * t1%R(i)*sp_eau*v%R(i) / t3%R(i)
type(bief_obj), target, public windy
subroutine friction_khione(NPOIN, KFROT, GRAV, KARMAN, CHESTR, CF, H, U, V)
type(bief_obj), target, public windx
subroutine, public sync_meteo(WHEN)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine source_icover(NPOIN, FU, FV, H, U, V, T1, T2, T3, GRAV, KARMAN, CHESTR, DT, AT)