25 use vrbls3d,
only: uh, vh
26 use vrbls2d,
only: uz0, vz0, ustar, u10, v10
28 use params_mod,
only: d00, d50, d25
29 use ctlblk_mod,
only: jsta, jend, jsta_m, jend_m, modelname, spval, im, jm, &
30 jsta_2l, jend_2u, ista, iend, ista_m, iend_m, ista_2l, iend_2u
31 use gridspec_mod,
only: gridtype
38 REAL,
intent(inout) :: DRAGCO(ista_2l:iend_2u,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