79 integer (kind=int_kind),
intent(in) :: &
82 character (len=3),
intent(in) ::&
85 real (kind=dbl_kind),
dimension (ilo:ihi,jlo:jhi),
intent(in) :: &
88 real (kind=dbl_kind),
dimension (ilo:ihi,jlo:jhi),
intent(out) ::&
98 integer (kind=int_kind) ::&
102 real (kind=dbl_kind) :: &
117 real (kind=dbl_kind),
dimension (1:(ihi-ilo+1)*(jhi-jlo+1)) ::&
135 integer (kind=int_kind),
dimension (1:(ihi-ilo+1)*(jhi-jlo+1)) ::&
139 integer (kind=int_kind) ::&
143 real (kind=dbl_kind),
parameter :: &
149 real (kind=dbl_kind) :: &
162 psixhu(xd) =
c2i * log((
c1i + xd*xd)/
c2i)
188 if ( sfctype(1:3)==
'ice' )
then 213 vmag(ij) = max(umin, wind(i,j))
217 elseif ( sfctype(1:3)==
'ocn' )
then 225 if (
tmask(i,j) )
then 242 vmag(ij) = max(umin, wind(i,j))
243 rdn(ij) = sqrt(0.0027_dbl_kind/vmag(ij) &
244 + .000142_dbl_kind + .0000764_dbl_kind*vmag(ij))
258 qsat = qqq * exp(-ttt/tsfk)
259 ssq = qsat / rhoa(i,j)
261 thva(ij) = pott(i,j) * (
c1i +
zvir * qa(i,j))
262 delt(i,j) = pott(i,j) - tsfk
263 delq(i,j) = qa(i,j) - ssq
264 alz(ij) = log(zlvl(i,j)/
zref)
276 ustar(ij) = rdn(ij) * vmag(ij)
277 tstar(ij) = rhn(ij) * delt(i,j)
278 qstar(ij) = ren(ij) * delq(i,j)
294 * (tstar(ij)/thva(ij) &
295 + qstar(ij)/(
c1i/
zvir+qa(i,j))) &
297 hol(ij) = sign( min(
abs(hol(ij)),
c10i), hol(ij) )
298 stable(ij) =
p5 + sign(
p5 , hol(ij))
303 psimhs = -(0.7_dbl_kind*hol(ij) &
304 + 0.75_dbl_kind*(hol(ij)-14.3_dbl_kind) &
305 * exp(-0.35_dbl_kind*hol(ij)) + 10.7_dbl_kind)
306 psimh = psimhs*stable(ij) &
307 + (
c1i - stable(ij))*psimhu(xqq)
308 psixh(ij) = psimhs*stable(ij) &
309 + (
c1i - stable(ij))*psixhu(xqq)
312 rd(ij) = rdn(ij) / (
c1i+rdn(ij)/
vonkar*(alz(ij)-psimh))
313 rh(ij) = rhn(ij) / (
c1i+rhn(ij)/
vonkar*(alz(ij)-psixh(ij)))
314 re(ij) = ren(ij) / (
c1i+ren(ij)/
vonkar*(alz(ij)-psixh(ij)))
317 ustar(ij) = rd(ij) * vmag(ij)
318 tstar(ij) = rh(ij) * delt(i,j)
319 qstar(ij) = re(ij) * delq(i,j)
336 shcoef(i,j) = rhoa(i,j) * ustar(ij) * cp(ij) * rh(ij) +
c1i 337 lhcoef(i,j) = rhoa(i,j) * ustar(ij) * lheat * re(ij)
346 tau = rhoa(i,j) * ustar(ij) * rd(ij)
347 strx(i,j) = tau * uatm(i,j)
348 stry(i,j) = tau * vatm(i,j)
353 hol(ij) = hol(ij)*ztrf/zlvl(i,j)
356 psix2 = -
c5i*hol(ij)*stable(ij) + (
c1i-stable(ij))*psixhu(xqq)
357 fac = (rh(ij)/
vonkar) * (alz(ij) + al2 - psixh(ij) + psix2)
358 trf(i,j)= pott(i,j) - delt(i,j)*fac
359 trf(i,j)= trf(i,j) -
p01*ztrf
360 fac = (re(ij)/
vonkar) * (alz(ij) + al2 - psixh(ij) + psix2)
361 qrf(i,j)= qa(i,j) - delq(i,j)*fac
real(kind=dbl_kind), parameter zvir
real(kind=dbl_kind), parameter tttice
real(kind=dbl_kind), parameter tttocn
real(kind=dbl_kind), parameter c8i
real(kind=dbl_kind), parameter c0i
real(kind=dbl_kind), parameter lvap
real(kind=dbl_kind), parameter qqqice
real(kind=dbl_kind), parameter c10i
real(kind=dbl_kind), parameter vonkar
real(kind=dbl_kind), parameter cp_wv
real(kind=dbl_kind), parameter iceruf
real(kind=dbl_kind), parameter p5
real(kind=dbl_kind), parameter puny
real(kind=dbl_kind), parameter tffresh
real(kind=dbl_kind), parameter lsub
real(kind=dbl_kind), parameter zref
real(kind=dbl_kind), parameter c2i
real(kind=dbl_kind), dimension(:,:,:), allocatable, target, save aicen
real(kind=dbl_kind), parameter qqqocn
real(kind=dbl_kind), parameter c5i
real(kind=dbl_kind), parameter gravit
real(kind=dbl_kind), parameter c1i
real(kind=dbl_kind), parameter p01
real(kind=dbl_kind), parameter c16
logical(kind=log_kind), dimension(:,:), allocatable tmask
real(kind=dbl_kind), parameter cp_air