72 |
c ustar (imt) - surface friction velocity (m/s) |
c ustar (imt) - surface friction velocity (m/s) |
73 |
c bo (imt) - surface turbulent buoy. forcing (m^2/s^3) |
c bo (imt) - surface turbulent buoy. forcing (m^2/s^3) |
74 |
c bosol (imt) - radiative buoyancy forcing (m^2/s^3) |
c bosol (imt) - radiative buoyancy forcing (m^2/s^3) |
75 |
c boplume(imt) - haline buoyancy forcing (m^2/s^3) |
c boplume(imt,Nrp1)- haline buoyancy forcing (m^2/s^3) |
76 |
c dbloc (imt,Nr) - local delta buoyancy across interfaces (m/s^2) |
c dbloc (imt,Nr) - local delta buoyancy across interfaces (m/s^2) |
77 |
c dblocSm(imt,Nr) - horizontally smoothed dbloc (m/s^2) |
c dblocSm(imt,Nr) - horizontally smoothed dbloc (m/s^2) |
78 |
c stored in ghat to save space |
c stored in ghat to save space |
95 |
_RL bo (imt ) |
_RL bo (imt ) |
96 |
_RL bosol (imt ) |
_RL bosol (imt ) |
97 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
98 |
_RL boplume (imt ) |
_RL boplume (imt,0:Nr) |
99 |
_RL SPDepth (imt ) |
_RL SPDepth (imt ) |
100 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
101 |
_RL dbloc (imt,Nr) |
_RL dbloc (imt,Nr) |
339 |
_RL coriol (imt) |
_RL coriol (imt) |
340 |
integer ikppkey |
integer ikppkey |
341 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
342 |
_RL boplume (imt) |
_RL boplume (imt,0:Nr) |
343 |
_RL SPDepth (imt) |
_RL SPDepth (imt) |
344 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
345 |
|
|
368 |
_RL wm(imt), ws(imt) |
_RL wm(imt), ws(imt) |
369 |
_RL worka(imt) |
_RL worka(imt) |
370 |
_RL bvsq, vtsq, hekman, hmonob, hlimit, tempVar1, tempVar2 |
_RL bvsq, vtsq, hekman, hmonob, hlimit, tempVar1, tempVar2 |
371 |
integer i, kl |
integer i, k, kl |
372 |
|
|
373 |
_RL p5 , eins |
_RL p5 , eins |
374 |
parameter ( p5=0.5, eins=1.0 ) |
parameter ( p5=0.5, eins=1.0 ) |
446 |
worka(i) = zgrid(kl) |
worka(i) = zgrid(kl) |
447 |
enddo |
enddo |
448 |
#ifndef SALT_PLUME_VOLUME |
#ifndef SALT_PLUME_VOLUME |
449 |
catn: in original way: accumulate all fractions of boplume above hbl |
catn: in original way: accumulate all fractions of boplume above zgrid(kl) |
450 |
call SALT_PLUME_FRAC( |
call SALT_PLUME_FRAC( |
451 |
I imt, hbf,SPDepth, |
I imt, hbf,SPDepth, |
452 |
U worka, |
U worka, |
453 |
I myTime, myIter, myThid) |
I myTime, myIter, myThid) |
454 |
do i = 1, imt |
do i = 1, imt |
455 |
bfsfc(i) = bfsfc(i) + boplume(i)*(worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i,1)*(worka(i)) |
456 |
enddo |
enddo |
457 |
#else /* def SALT_PLUME_VOLUME */ |
#else /* def SALT_PLUME_VOLUME */ |
458 |
catn: in vol way: need to integrate down to hbl, so first locate |
catn: in vol way: need to integrate down to hbl, so first locate |
459 |
c k level associated with this hbl, then sum up all SPforc[T,S] |
c k level associated with this hbl, then sum up all SPforc[T,S] |
460 |
DO i = 1, imt |
DO i = 1, imt |
461 |
DO k = 1, Nr |
c DO k = 1, kl |
462 |
IF (hbl.GE.abs(rF(k)) THEN |
c IF (abs(worka(i)).GE.(abs(zgrid(k))-hwide(k)/2.0) THEN |
463 |
bfsfc(i) = bfsfc(i) + boplume(i,k) |
c bfsfc(i) = bfsfc(i) + boplume(i,k) |
464 |
ENDIF |
c ENDIF |
465 |
ENDDO |
c ENDDO |
466 |
|
bfsfc(i) = bfsfc(i) + boplume(i,kbl(i)) |
467 |
ENDDO |
ENDDO |
468 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
469 |
ENDIF |
ENDIF |
599 |
U worka, |
U worka, |
600 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
601 |
do i = 1, imt |
do i = 1, imt |
602 |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i,1) * (worka(i)) |
603 |
enddo |
enddo |
604 |
#else /* def SALT_PLUME_VOLUME */ |
#else /* def SALT_PLUME_VOLUME */ |
605 |
DO i = 1, imt |
DO i = 1, imt |
606 |
DO k = 1, Nr |
c DO k = 1, Nr |
607 |
IF (hbl.GE.abs(rF(k)) THEN |
c IF (hbl(i).GE.(abs(zgrid(k))-hwide(k)/2.0) THEN |
608 |
bfsfc(i) = bfsfc(i) + boplume(i,k) |
c bfsfc(i) = bfsfc(i) + boplume(i,k) |
609 |
ENDIF |
c ENDIF |
610 |
ENDDO |
c ENDDO |
611 |
|
bfsfc(i) = bfsfc(i) + boplume(i,kbl(i)) |
612 |
ENDDO |
ENDDO |
613 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
614 |
ENDIF |
ENDIF |
706 |
U worka, |
U worka, |
707 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
708 |
do i = 1, imt |
do i = 1, imt |
709 |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i,1) * (worka(i)) |
710 |
enddo |
enddo |
711 |
#else /* def SALT_PLUME_VOLUME */ |
#else /* def SALT_PLUME_VOLUME */ |
712 |
DO i = 1, imt |
DO i = 1, imt |
713 |
DO k = 1, Nr |
C DO k = 1, Nr |
714 |
IF (hbl.GE.abs(rF(k)) THEN |
C IF (hbl(i).GE.(abs(zgrid(k))-hwide(k)/2.0) THEN |
715 |
bfsfc(i) = bfsfc(i) + boplume(i,k) |
C bfsfc(i) = bfsfc(i) + boplume(i,k) |
716 |
ENDIF |
C ENDIF |
717 |
ENDDO |
C ENDDO |
718 |
|
bfsfc(i) = bfsfc(i) + boplume(i,kbl(i)) |
719 |
ENDDO |
ENDDO |
720 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
721 |
ENDIF |
ENDIF |