21 SUBROUTINE caldrg(DRAGCO)
26 use vrbls2d, only: uz0, vz0, ustar, u10, v10
29 use ctlblk_mod
, only: jsta, jend, jsta_m, jend_m, modelname, spval, im, jm, &
31 use gridspec_mod
, only: gridtype
38 REAL,
intent(inout) :: dragco(im,jsta_2l:jend_2u)
39 INTEGER ihe(jm),ihw(jm)
40 integer i,j,lhmk,ie,iw,lmhk
41 real ubar,vbar,wspdsq,ustrsq,sumu,sumv,ulmh,vlmh,uz0h,vz0h
63 IF (ustar(i,j) /= spval)
THEN
76 wspdsq=u10(i,j)*u10(i,j)+v10(i,j)*v10(i,j)
80 ustrsq=ustar(i,j)*ustar(i,j)
81 IF(wspdsq > 1.0) dragco(i,j)=ustrsq/wspdsq
86 ELSE IF(gridtype==
'E')
THEN
102 sumu=uh(ie,j,lmhk)+uh(iw,j,lmhk)+uh(i,j-1,lmhk) &
104 sumv=vh(ie,j,lmhk)+vh(iw,j,lmhk)+vh(i,j-1,lmhk) &
111 uz0h=d25*(uz0(ie,j)+uz0(iw,j)+uz0(i,j-1)+uz0(i,j+1))
112 vz0h=d25*(vz0(ie,j)+vz0(iw,j)+vz0(i,j-1)+vz0(i,j+1))
119 wspdsq=ubar*ubar+vbar*vbar
124 ustrsq=ustar(i,j)*ustar(i,j)
125 IF(wspdsq > 1.0e-6)dragco(i,j)=ustrsq/wspdsq
129 ELSE IF(gridtype==
'B')
THEN
139 sumu=uh(ie,j,lmhk)+uh(iw,j,lmhk)+uh(i,j-1,lmhk) &
141 sumv=vh(ie,j,lmhk)+vh(iw,j,lmhk)+vh(i,j-1,lmhk) &
150 IF(modelname ==
'NMM')
THEN
154 uz0h=d25*(uz0(ie,j)+uz0(iw,j)+uz0(i,j-1)+uz0(iw,j-1))
155 vz0h=d25*(vz0(ie,j)+vz0(iw,j)+vz0(i,j-1)+vz0(iw,j-1))
163 wspdsq=ubar*ubar+vbar*vbar
168 ustrsq=ustar(i,j)*ustar(i,j)
169 IF(wspdsq > 1.0e-6)dragco(i,j)=ustrsq/wspdsq