/[MITgcm]/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/kpp_routines.F
ViewVC logotype

Diff of /MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/kpp_routines.F

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

revision 1.3 by atn, Thu May 1 08:09:30 2014 UTC revision 1.4 by atn, Thu May 1 21:30:48 2014 UTC
# Line 72  c     dvsq   (imt,Nr)  - (velocity shear Line 72  c     dvsq   (imt,Nr)  - (velocity shear
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,Nr)  - 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
# Line 95  c           where hbl(i,j) -> hbl((j-1)* Line 95  c           where hbl(i,j) -> hbl((j-1)*
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,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)
# Line 339  c coriol    : Coriolis parameter Line 339  c coriol    : Coriolis parameter
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,Nr)
343        _RL SPDepth (imt)        _RL SPDepth (imt)
344  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
345    
# Line 368  c wm, ws    : turbulent velocity scales Line 368  c wm, ws    : turbulent velocity scales
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 )
# Line 446  c     compute bfsfc = plume fraction at Line 446  c     compute bfsfc = plume fraction at
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              DO k = 1, kl
462               IF (hbl.GE.abs(rF(k)) THEN               IF (abs(worka(i)).GE.abs( zgrid(k)-hwide(k)/2.0 )) THEN
463                bfsfc(i) = bfsfc(i) + boplume(i,k)                bfsfc(i) = bfsfc(i) + boplume(i,k)
464               ENDIF               ENDIF
465              ENDDO              ENDDO
# Line 603  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 603  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
603  #else /* def SALT_PLUME_VOLUME */  #else /* def SALT_PLUME_VOLUME */
604          DO i = 1, imt          DO i = 1, imt
605           DO k = 1, Nr           DO k = 1, Nr
606            IF (hbl.GE.abs(rF(k)) THEN            IF (hbl(i).GE.abs( zgrid(k)-hwide(k)/2.0 )) THEN
607             bfsfc(i) = bfsfc(i) + boplume(i,k)             bfsfc(i) = bfsfc(i) + boplume(i,k)
608            ENDIF            ENDIF
609           ENDDO           ENDDO
# Line 709  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2 Line 709  CADJ &     shape = (/ (sNx+2*OLx)*(sNy+2
709  #else /* def SALT_PLUME_VOLUME */  #else /* def SALT_PLUME_VOLUME */
710          DO i = 1, imt          DO i = 1, imt
711           DO k = 1, Nr           DO k = 1, Nr
712            IF (hbl.GE.abs(rF(k)) THEN            IF (hbl(i).GE.abs( zgrid(k)-hwide(k)/2.0 )) THEN
713             bfsfc(i) = bfsfc(i) + boplume(i,k)             bfsfc(i) = bfsfc(i) + boplume(i,k)
714            ENDIF            ENDIF
715           ENDDO           ENDDO

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22