26 |
O , diffus |
O , diffus |
27 |
U , ghat |
U , ghat |
28 |
O , hbl |
O , hbl |
29 |
I , mytime, mythid ) |
I , myTime, myIter, myThid ) |
30 |
|
|
31 |
c----------------------------------------------------------------------- |
c----------------------------------------------------------------------- |
32 |
c |
c |
50 |
#include "KPP_PARAMS.h" |
#include "KPP_PARAMS.h" |
51 |
|
|
52 |
c input |
c input |
53 |
c myTime - current time in simulation |
c myTime :: Current time in simulation |
54 |
c myThid - thread number for this instance of the routine |
c myIter :: Current iteration number in simulation |
55 |
|
c myThid :: My Thread Id. number |
56 |
c kmtj (imt) - number of vertical layers on this row |
c kmtj (imt) - number of vertical layers on this row |
57 |
c msk (imt) - surface mask (=1 if water, =0 otherwise) |
c msk (imt) - surface mask (=1 if water, =0 otherwise) |
58 |
c shsq (imt,Nr) - (local velocity shear)^2 ((m/s)^2) |
c shsq (imt,Nr) - (local velocity shear)^2 ((m/s)^2) |
72 |
c e.g., hbl(sNx,sNy) -> hbl(imt), |
c e.g., hbl(sNx,sNy) -> hbl(imt), |
73 |
c where hbl(i,j) -> hbl((j-1)*sNx+i) |
c where hbl(i,j) -> hbl((j-1)*sNx+i) |
74 |
|
|
75 |
_RL mytime |
_RL myTime |
76 |
integer mythid |
integer myIter |
77 |
|
integer myThid |
78 |
integer kmtj (imt ) |
integer kmtj (imt ) |
79 |
_RL shsq (imt,Nr) |
_RL shsq (imt,Nr) |
80 |
_RL dvsq (imt,Nr) |
_RL dvsq (imt,Nr) |
175 |
I , dvsq, dbloc, Ritop, ustar, bo, bosol, coriol |
I , dvsq, dbloc, Ritop, ustar, bo, bosol, coriol |
176 |
I , ikppkey |
I , ikppkey |
177 |
O , hbl, bfsfc, stable, casea, kbl, Rib, sigma |
O , hbl, bfsfc, stable, casea, kbl, Rib, sigma |
178 |
I , mytime, mythid ) |
I , myTime, myIter, myThid ) |
179 |
|
|
180 |
CADJ STORE hbl,bfsfc,stable,casea,kbl = comlev1_kpp, key = ikppkey |
CADJ STORE hbl,bfsfc,stable,casea,kbl = comlev1_kpp, key = ikppkey |
181 |
|
|
186 |
call blmix ( |
call blmix ( |
187 |
I ustar, bfsfc, hbl, stable, casea, diffus, kbl |
I ustar, bfsfc, hbl, stable, casea, diffus, kbl |
188 |
O , dkm1, blmc, ghat, sigma, ikppkey |
O , dkm1, blmc, ghat, sigma, ikppkey |
189 |
I , mythid ) |
I , myThid ) |
190 |
cph( |
cph( |
191 |
CADJ STORE dkm1,blmc,ghat = comlev1_kpp, key = ikppkey |
CADJ STORE dkm1,blmc,ghat = comlev1_kpp, key = ikppkey |
192 |
CADJ STORE hbl, kbl, diffus, casea = comlev1_kpp, key = ikppkey |
CADJ STORE hbl, kbl, diffus, casea = comlev1_kpp, key = ikppkey |
200 |
I dkm1, hbl, kbl, diffus, casea |
I dkm1, hbl, kbl, diffus, casea |
201 |
U , ghat |
U , ghat |
202 |
O , blmc |
O , blmc |
203 |
I , mythid ) |
I , myThid ) |
204 |
|
|
205 |
cph( |
cph( |
206 |
cph avoids recomp. of enhance |
cph avoids recomp. of enhance |
247 |
I , dvsq, dbloc, Ritop, ustar, bo, bosol, coriol |
I , dvsq, dbloc, Ritop, ustar, bo, bosol, coriol |
248 |
I , ikppkey |
I , ikppkey |
249 |
O , hbl, bfsfc, stable, casea, kbl, Rib, sigma |
O , hbl, bfsfc, stable, casea, kbl, Rib, sigma |
250 |
I , mytime, mythid ) |
I , myTime, myIter, myThid ) |
251 |
|
|
252 |
c the oceanic planetary boundary layer depth, hbl, is determined as |
c the oceanic planetary boundary layer depth, hbl, is determined as |
253 |
c the shallowest depth where the bulk Richardson number is |
c the shallowest depth where the bulk Richardson number is |
277 |
|
|
278 |
c input |
c input |
279 |
c------ |
c------ |
280 |
c myTime : current time in simulation |
c myTime :: Current time in simulation |
281 |
c myThid : thread number for this instance of the routine |
c myIter :: Current iteration number in simulation |
282 |
|
c myThid :: My Thread Id. number |
283 |
c kmtj : number of vertical layers |
c kmtj : number of vertical layers |
284 |
c dvsq : (velocity shear re sfc)^2 ((m/s)^2) |
c dvsq : (velocity shear re sfc)^2 ((m/s)^2) |
285 |
c dbloc : local delta buoyancy across interfaces (m/s^2) |
c dbloc : local delta buoyancy across interfaces (m/s^2) |
290 |
c bo : surface turbulent buoyancy forcing (m^2/s^3) |
c bo : surface turbulent buoyancy forcing (m^2/s^3) |
291 |
c bosol : radiative buoyancy forcing (m^2/s^3) |
c bosol : radiative buoyancy forcing (m^2/s^3) |
292 |
c coriol : Coriolis parameter (1/s) |
c coriol : Coriolis parameter (1/s) |
293 |
_RL mytime |
_RL myTime |
294 |
integer mythid |
integer myIter |
295 |
|
integer myThid |
296 |
integer kmtj(imt) |
integer kmtj(imt) |
297 |
_RL dvsq (imt,Nr) |
_RL dvsq (imt,Nr) |
298 |
_RL dbloc (imt,Nr) |
_RL dbloc (imt,Nr) |
366 |
end do |
end do |
367 |
CADJ store worka = comlev1_kpp_k, key = kkppkey |
CADJ store worka = comlev1_kpp_k, key = kkppkey |
368 |
call SWFRAC( |
call SWFRAC( |
369 |
I imt, hbf, |
I imt, hbf, |
370 |
I mytime, mythid, |
U worka, |
371 |
U worka ) |
I myTime, myIter, myThid ) |
372 |
CADJ store worka = comlev1_kpp_k, key = kkppkey |
CADJ store worka = comlev1_kpp_k, key = kkppkey |
373 |
|
|
374 |
|
|
469 |
CADJ store worka = comlev1_kpp |
CADJ store worka = comlev1_kpp |
470 |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
471 |
call SWFRAC( |
call SWFRAC( |
472 |
I imt, minusone, |
I imt, minusone, |
473 |
I mytime, mythid, |
U worka, |
474 |
U worka ) |
I myTime, myIter, myThid ) |
475 |
CADJ store worka = comlev1_kpp |
CADJ store worka = comlev1_kpp |
476 |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
477 |
|
|
542 |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
543 |
call SWFRAC( |
call SWFRAC( |
544 |
I imt, minusone, |
I imt, minusone, |
545 |
I mytime, mythid, |
U worka, |
546 |
U worka ) |
I myTime, myIter, myThid ) |
547 |
CADJ store worka = comlev1_kpp |
CADJ store worka = comlev1_kpp |
548 |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
CADJ & , key = ikppkey, shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) |
549 |
|
|
675 |
c************************************************************************* |
c************************************************************************* |
676 |
|
|
677 |
subroutine Ri_iwmix ( |
subroutine Ri_iwmix ( |
678 |
I kmtj, shsq, dbloc, dblocSm |
I kmtj, shsq, dbloc, dblocSm, |
679 |
I , diffusKzS, diffusKzT |
I diffusKzS, diffusKzT, |
680 |
I , ikppkey |
I ikppkey, |
681 |
O , diffus ) |
O diffus, |
682 |
|
I myThid ) |
683 |
|
|
684 |
c compute interior viscosity diffusivity coefficients due |
c compute interior viscosity diffusivity coefficients due |
685 |
c to shear instability (dependent on a local Richardson number), |
c to shear instability (dependent on a local Richardson number), |
700 |
c dblocSm(imt,Nr) horizontally smoothed dbloc (m/s^2) |
c dblocSm(imt,Nr) horizontally smoothed dbloc (m/s^2) |
701 |
c diffusKzS(imt,Nr)- background vertical diffusivity for scalars (m^2/s) |
c diffusKzS(imt,Nr)- background vertical diffusivity for scalars (m^2/s) |
702 |
c diffusKzT(imt,Nr)- background vertical diffusivity for theta (m^2/s) |
c diffusKzT(imt,Nr)- background vertical diffusivity for theta (m^2/s) |
703 |
|
c myThid :: My Thread Id. number |
704 |
integer kmtj (imt) |
integer kmtj (imt) |
705 |
_RL shsq (imt,Nr) |
_RL shsq (imt,Nr) |
706 |
_RL dbloc (imt,Nr) |
_RL dbloc (imt,Nr) |
708 |
_RL diffusKzS(imt,Nr) |
_RL diffusKzS(imt,Nr) |
709 |
_RL diffusKzT(imt,Nr) |
_RL diffusKzT(imt,Nr) |
710 |
integer ikppkey |
integer ikppkey |
711 |
|
integer myThid |
712 |
|
|
713 |
c output |
c output |
714 |
c diffus(imt,0:Nrp1,1) vertical viscosivity coefficient (m^2/s) |
c diffus(imt,0:Nrp1,1) vertical viscosivity coefficient (m^2/s) |
1017 |
subroutine blmix ( |
subroutine blmix ( |
1018 |
I ustar, bfsfc, hbl, stable, casea, diffus, kbl |
I ustar, bfsfc, hbl, stable, casea, diffus, kbl |
1019 |
O , dkm1, blmc, ghat, sigma, ikppkey |
O , dkm1, blmc, ghat, sigma, ikppkey |
1020 |
I , mythid ) |
I , myThid ) |
1021 |
|
|
1022 |
c mixing coefficients within boundary layer depend on surface |
c mixing coefficients within boundary layer depend on surface |
1023 |
c forcing and the magnitude and gradient of interior mixing below |
c forcing and the magnitude and gradient of interior mixing below |