2 SUBROUTINE trip_hs_vel (PTSTEP,OMASK_VEL,PLEN,PWIDTH,PSLOPEBED,PN,PSURF_STO,PHS,PVEL)
54 REAL,
INTENT(IN) :: PTSTEP
56 LOGICAL,
DIMENSION(:,:),
INTENT(IN) :: OMASK_VEL
57 REAL,
DIMENSION(:,:),
INTENT(IN) :: PLEN
58 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWIDTH
59 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSLOPEBED
60 REAL,
DIMENSION(:,:),
INTENT(IN) :: PN
61 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSURF_STO
62 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PHS
63 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PVEL
67 REAL,
PARAMETER :: ZLOG_MIN = 1.e-12
69 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZRADIUS
70 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZHS
71 REAL,
DIMENSION(SIZE(PLEN,1),SIZE(PLEN,2)) :: ZVEL
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
96 phs(:,:)=psurf_sto(:,:)/(
xrholw*plen(:,:)*pwidth(:,:))
97 zhs(:,:)=max(phs(:,:),zlog_min)
98 zradius(:,:)=log(pwidth(:,:)*zhs(:,:)/(pwidth(:,:)+2.0*zhs(:,:)))
99 zvel(:,:)=exp(
xm*zradius(:,:))*sqrt(pslopebed(:,:))/pn(:,:)
100 zvel(:,:)=max(
xvelmin,zvel(:,:))
101 zvel(:,:)=min(zvel(:,:),plen(:,:)/ptstep)
103 pvel(:,:)=zvel(:,:)*min(1.0,max(0.0,(phs(:,:)-
xhsmin))/
xhsmin)
subroutine trip_hs_vel(PTSTEP, OMASK_VEL, PLEN, PWIDTH, PSLOPEBED, PN, PSURF_STO, PHS, PVEL)