/[MITgcm]/MITgcm/pkg/kpp/kpp_routines.F
ViewVC logotype

Diff of /MITgcm/pkg/kpp/kpp_routines.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.25 by dimitri, Thu Apr 19 15:40:42 2007 UTC revision 1.26 by dimitri, Mon Apr 23 20:46:49 2007 UTC
# Line 23  c*************************************** Line 23  c***************************************
23       I       mytime, mythid       I       mytime, mythid
24       I     , kmtj, shsq, dvsq, ustar       I     , kmtj, shsq, dvsq, ustar
25       I     , bo, bosol, dbloc, Ritop, coriol       I     , bo, bosol, dbloc, Ritop, coriol
26         I     , diffusKzS, diffusKzT
27       I     , ikppkey       I     , ikppkey
28       O     , diffus       O     , diffus
29       U     , ghat       U     , ghat
# Line 50  c--------------------------------------- Line 51  c---------------------------------------
51  #include "KPP_PARAMS.h"  #include "KPP_PARAMS.h"
52    
53  c input  c input
54  c     myTime          - current time in simulation  c     myTime           - current time in simulation
55  c     myThid          - thread number for this instance of the routine  c     myThid           - thread number for this instance of the routine
56  c     kmtj   (imt)    - number of vertical layers on this row  c     kmtj   (imt)     - number of vertical layers on this row
57  c     shsq   (imt,Nr) - (local velocity shear)^2                      ((m/s)^2)  c     shsq   (imt,Nr)  - (local velocity shear)^2                     ((m/s)^2)
58  c     dvsq   (imt,Nr) - (velocity shear re sfc)^2                     ((m/s)^2)  c     dvsq   (imt,Nr)  - (velocity shear re sfc)^2                    ((m/s)^2)
59  c     ustar  (imt)    - surface friction velocity                         (m/s)  c     ustar  (imt)     - surface friction velocity                        (m/s)
60  c     bo     (imt)    - surface turbulent buoy. forcing               (m^2/s^3)  c     bo     (imt)     - surface turbulent buoy. forcing              (m^2/s^3)
61  c     bosol  (imt)    - radiative buoyancy forcing                    (m^2/s^3)  c     bosol  (imt)     - radiative buoyancy forcing                   (m^2/s^3)
62  c     dbloc  (imt,Nr) - local delta buoyancy across interfaces          (m/s^2)  c     dbloc  (imt,Nr)  - local delta buoyancy across interfaces         (m/s^2)
63  c     dblocSm(imt,Nr) - horizontally smoothed dbloc                     (m/s^2)  c     dblocSm(imt,Nr)  - horizontally smoothed dbloc                    (m/s^2)
64  c                         stored in ghat to save space  c                          stored in ghat to save space
65  c     Ritop  (imt,Nr) - numerator of bulk Richardson Number  c     Ritop  (imt,Nr)  - numerator of bulk Richardson Number
66  c                         (zref-z) * delta buoyancy w.r.t. surface    ((m/s)^2)  c                          (zref-z) * delta buoyancy w.r.t. surface   ((m/s)^2)
67  c     coriol (imt)    - Coriolis parameter                                (1/s)  c     coriol (imt)     - Coriolis parameter                               (1/s)
68    c     diffusKzS(imt,Nr)- background vertical diffusivity for scalars    (m^2/s)
69    c     diffusKzT(imt,Nr)- background vertical diffusivity for theta      (m^2/s)
70  c     note: there is a conversion from 2-D to 1-D for input output variables,  c     note: there is a conversion from 2-D to 1-D for input output variables,
71  c           e.g., hbl(sNx,sNy) -> hbl(imt),  c           e.g., hbl(sNx,sNy) -> hbl(imt),
72  c           where hbl(i,j) -> hbl((j-1)*sNx+i)  c           where hbl(i,j) -> hbl((j-1)*sNx+i)
73    
74        _RL     mytime        _RL     mytime
75        integer mythid        integer mythid
76        integer kmtj  (imt   )        integer kmtj     (imt   )
77        _KPP_RL shsq  (imt,Nr)        _KPP_RL shsq     (imt,Nr)
78        _KPP_RL dvsq  (imt,Nr)        _KPP_RL dvsq     (imt,Nr)
79        _KPP_RL ustar (imt   )        _KPP_RL ustar    (imt   )
80        _KPP_RL bo    (imt   )        _KPP_RL bo       (imt   )
81        _KPP_RL bosol (imt   )        _KPP_RL bosol    (imt   )
82        _KPP_RL dbloc (imt,Nr)        _KPP_RL dbloc    (imt,Nr)
83        _KPP_RL Ritop (imt,Nr)        _KPP_RL Ritop    (imt,Nr)
84        _KPP_RL coriol(imt   )        _KPP_RL coriol   (imt   )
85          _RL     diffusKzS(imt,Nr)
86          _RL     diffusKzT(imt,Nr)
87    
88        integer ikppkey        integer ikppkey
89    
# Line 130  CADJ STORE dbloc = comlev1_kpp, key = ik Line 135  CADJ STORE dbloc = comlev1_kpp, key = ik
135  cph)  cph)
136        call Ri_iwmix (        call Ri_iwmix (
137       I       kmtj, shsq, dbloc, ghat       I       kmtj, shsq, dbloc, ghat
138         I     , diffusKzS, diffusKzT
139       I     , ikppkey       I     , ikppkey
140       O     , diffus )       O     , diffus )
141    
# Line 208  c--------------------------------------- Line 214  c---------------------------------------
214           do i = 1, imt           do i = 1, imt
215              if (k .lt. kbl(i)) then              if (k .lt. kbl(i)) then
216                 diffus(i,k,1) = max ( blmc(i,k,1), viscAr  )                 diffus(i,k,1) = max ( blmc(i,k,1), viscAr  )
217                 diffus(i,k,2) = max ( blmc(i,k,2), diffKrNrS(k) )                 diffus(i,k,2) = max ( blmc(i,k,2), diffusKzS(i,Nr) )
218                 diffus(i,k,3) = max ( blmc(i,k,3), diffKrNrT(k) )                 diffus(i,k,3) = max ( blmc(i,k,3), diffusKzT(i,Nr) )
219              else              else
220                 ghat(i,k) = 0.                 ghat(i,k) = 0.
221              endif              endif
# Line 653  c*************************************** Line 659  c***************************************
659    
660        subroutine Ri_iwmix (        subroutine Ri_iwmix (
661       I       kmtj, shsq, dbloc, dblocSm       I       kmtj, shsq, dbloc, dblocSm
662         I     , diffusKzS, diffusKzT
663       I     , ikppkey       I     , ikppkey
664       O     , diffus )       O     , diffus )
665    
# Line 673  c     kmtj   (imt)         number of ver Line 680  c     kmtj   (imt)         number of ver
680  c     shsq   (imt,Nr)      (local velocity shear)^2               ((m/s)^2)  c     shsq   (imt,Nr)      (local velocity shear)^2               ((m/s)^2)
681  c     dbloc  (imt,Nr)      local delta buoyancy                     (m/s^2)  c     dbloc  (imt,Nr)      local delta buoyancy                     (m/s^2)
682  c     dblocSm(imt,Nr)      horizontally smoothed dbloc              (m/s^2)  c     dblocSm(imt,Nr)      horizontally smoothed dbloc              (m/s^2)
683    c     diffusKzS(imt,Nr)- background vertical diffusivity for scalars    (m^2/s)
684    c     diffusKzT(imt,Nr)- background vertical diffusivity for theta      (m^2/s)
685        integer kmtj   (imt)        integer kmtj   (imt)
686        _KPP_RL shsq   (imt,Nr)        _KPP_RL shsq   (imt,Nr)
687        _KPP_RL dbloc  (imt,Nr)        _KPP_RL dbloc  (imt,Nr)
688        _KPP_RL dblocSm(imt,Nr)        _KPP_RL dblocSm(imt,Nr)
689          _RL diffusKzS(imt,Nr)
690          _RL diffusKzT(imt,Nr)
691        integer ikppkey        integer ikppkey
692    
693  c output  c output
# Line 781  c    mixing due to internal waves, and s Line 792  c    mixing due to internal waves, and s
792  #ifndef EXCLUDE_KPP_SHEAR_MIX  #ifndef EXCLUDE_KPP_SHEAR_MIX
793              if ( .NOT. inAdMode ) then              if ( .NOT. inAdMode ) then
794                 diffus(i,ki,1) = viscAr + fcon * difmcon + fRi * difm0                 diffus(i,ki,1) = viscAr + fcon * difmcon + fRi * difm0
795                 diffus(i,ki,2) = diffKrNrS(ki)+ fcon*difscon + fRi*difs0                 diffus(i,ki,2) = diffusKzS(i,ki)+fcon*difscon+fRi*difs0
796                 diffus(i,ki,3) = diffKrNrT(ki)+ fcon*difscon + fRi*difs0                 diffus(i,ki,3) = diffusKzT(i,ki)+fcon*diftcon+fRi*dift0
797              else              else
798                 diffus(i,ki,1) = viscAr                 diffus(i,ki,1) = viscAr
799                 diffus(i,ki,2) = diffKrNrS(ki)                 diffus(i,ki,2) = diffusKzS(i,ki)
800                 diffus(i,ki,3) = diffKrNrT(ki)                 diffus(i,ki,3) = diffusKzT(i,ki)
801              endif              endif
802  #else  #else
803              diffus(i,ki,1) = viscAr              diffus(i,ki,1) = viscAr
804              diffus(i,ki,2) = diffKrNrS(ki)              diffus(i,ki,2) = diffusKzS(i,ki)
805              diffus(i,ki,3) = diffKrNrT(ki)              diffus(i,ki,3) = diffusKzT(i,ki)
806  #endif  #endif
807    
808           end do           end do

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.22