243 |
diffus(i,k,2) = max ( blmc(i,k,2), diffusKzS(i,Nr) ) |
diffus(i,k,2) = max ( blmc(i,k,2), diffusKzS(i,Nr) ) |
244 |
diffus(i,k,3) = max ( blmc(i,k,3), diffusKzT(i,Nr) ) |
diffus(i,k,3) = max ( blmc(i,k,3), diffusKzT(i,Nr) ) |
245 |
else |
else |
246 |
ghat(i,k) = 0. |
ghat(i,k) = 0. _d 0 |
247 |
endif |
endif |
248 |
end do |
end do |
249 |
end do |
end do |
362 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
363 |
c KPPBFSFC - Bo+radiation absorbed to d=hbf*hbl + plume (m^2/s^3) |
c KPPBFSFC - Bo+radiation absorbed to d=hbf*hbl + plume (m^2/s^3) |
364 |
_RL KPPBFSFC(imt,Nr) |
_RL KPPBFSFC(imt,Nr) |
365 |
|
_RL KPPRi(imt,Nr) |
366 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
367 |
|
|
368 |
c find bulk Richardson number at every grid level until > Ricr |
c find bulk Richardson number at every grid level until > Ricr |
377 |
c initialize hbl and kbl to bottomed out values |
c initialize hbl and kbl to bottomed out values |
378 |
|
|
379 |
do i = 1, imt |
do i = 1, imt |
380 |
Rib(i,1) = 0.0 |
Rib(i,1) = 0. _d 0 |
381 |
kbl(i) = max(kmtj(i),1) |
kbl(i) = max(kmtj(i),1) |
382 |
hbl(i) = -zgrid(kbl(i)) |
hbl(i) = -zgrid(kbl(i)) |
383 |
end do |
end do |
385 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
386 |
do kl = 1, Nr |
do kl = 1, Nr |
387 |
do i = 1, imt |
do i = 1, imt |
388 |
KPPBFSFC(i,kl) = 0.0 |
KPPBFSFC(i,kl) = 0. _d 0 |
389 |
|
KPPRi(i,kl) = 0. _d 0 |
390 |
enddo |
enddo |
391 |
enddo |
enddo |
392 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
466 |
1 ( dbloc(i,kl-1) / (zgrid(kl-1)-zgrid(kl ))+ |
1 ( dbloc(i,kl-1) / (zgrid(kl-1)-zgrid(kl ))+ |
467 |
2 dbloc(i,kl ) / (zgrid(kl )-zgrid(kl+1))) |
2 dbloc(i,kl ) / (zgrid(kl )-zgrid(kl+1))) |
468 |
|
|
469 |
if (bvsq .eq. 0.) then |
if (bvsq .eq. 0. _d 0) then |
470 |
vtsq = 0.0 |
vtsq = 0. _d 0 |
471 |
else |
else |
472 |
vtsq = -zgrid(kl) * ws(i) * sqrt(abs(bvsq)) * Vtc |
vtsq = -zgrid(kl) * ws(i) * sqrt(abs(bvsq)) * Vtc |
473 |
endif |
endif |
487 |
tempVar1 = dvsq(i,kl) + vtsq |
tempVar1 = dvsq(i,kl) + vtsq |
488 |
tempVar2 = max(tempVar1, phepsi) |
tempVar2 = max(tempVar1, phepsi) |
489 |
Rib(i,kl) = Ritop(i,kl) / tempVar2 |
Rib(i,kl) = Ritop(i,kl) / tempVar2 |
490 |
|
#ifdef ALLOW_DIAGNOSTICS |
491 |
|
KPPRi(i,kl) = Rib(i,kl) |
492 |
|
#endif |
493 |
|
|
494 |
end do |
end do |
495 |
end do |
end do |
496 |
|
|
497 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
498 |
CALL DIAGNOSTICS_FILL(KPPBFSFC,'KPPbfsfc',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(KPPBFSFC,'KPPbfsfc',0,Nr,0,1,1,myThid) |
499 |
|
CALL DIAGNOSTICS_FILL(KPPRi ,'KPPRi ',0,Nr,0,1,1,myThid) |
500 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
501 |
|
|
502 |
cph( |
cph( |
832 |
#endif |
#endif |
833 |
|
|
834 |
c constants |
c constants |
835 |
c1 = 1.0 |
c1 = 1. _d 0 |
836 |
c0 = 0.0 |
c0 = 0. _d 0 |
837 |
|
|
838 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
839 |
c compute interior gradient Ri at all interfaces ki=1,Nr, (not surface) |
c compute interior gradient Ri at all interfaces ki=1,Nr, (not surface) |