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

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

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

revision 1.1 by mlosch, Thu May 3 14:51:05 2007 UTC revision 1.2 by dimitri, Sat Sep 22 17:55:32 2007 UTC
# Line 10  C !INTERFACE: ========================== Line 10  C !INTERFACE: ==========================
10        SUBROUTINE KPP_FORCING_SURF(        SUBROUTINE KPP_FORCING_SURF(
11       I     rhoSurf, surfForcU, surfForcV,       I     rhoSurf, surfForcU, surfForcV,
12       I     surfForcT, surfForcS, surfForcTice,       I     surfForcT, surfForcS, surfForcTice,
13       I     Qsw, ttalpha, ssbeta,         I     Qsw,
14       O     ustar, bo, bosol, dVsq,  #ifdef ALLOW_SALT_PLUME
15         I     saltPlumeFlux,
16    #endif /* ALLOW_SALT_PLUME */
17         I     ttalpha, ssbeta,  
18         O     ustar, bo, bosol,
19    #ifdef ALLOW_SALT_PLUME
20         O     boplume,
21    #endif /* ALLOW_SALT_PLUME */
22         O     dVsq,
23       I     ikppkey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid )       I     ikppkey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid )
24    
25  C !DESCRIPTION: \bv  C !DESCRIPTION: \bv
# Line 20  C     | SUBROUTINE KPP_FORCING_SURF Line 28  C     | SUBROUTINE KPP_FORCING_SURF
28  C     | o Compute all surface related KPP fields:                |  C     | o Compute all surface related KPP fields:                |
29  C     |   - friction velocity ustar                              |  C     |   - friction velocity ustar                              |
30  C     |   - turbulent and radiative surface buoyancy forcing,    |  C     |   - turbulent and radiative surface buoyancy forcing,    |
31  C     |     bo and bosol                                         |  C     |     bo and bosol, and surface haline buoyancy forcing    |
32    C     |     boplume                                              |
33  C     |   - velocity shear relative to surface squared (this is  |  C     |   - velocity shear relative to surface squared (this is  |
34  C     |     not really a surface affected quantity unless it is  |  C     |     not really a surface affected quantity unless it is  |
35  C     |     computed with respect to some resolution independent |  C     |     computed with respect to some resolution independent |
# Line 31  C     \================================= Line 40  C     \=================================
40    
41  c     taux / rho = surfForcU                               (N/m^2)  c     taux / rho = surfForcU                               (N/m^2)
42  c     tauy / rho = surfForcV                               (N/m^2)  c     tauy / rho = surfForcV                               (N/m^2)
43  c     ustar = sqrt( sqrt( taux^2 + tauy^2 ) / rho )                (m/s)  c     ustar = sqrt( sqrt( taux^2 + tauy^2 ) / rho )        (m/s)
44  c     bo    = - g * ( alpha*surfForcT +  c     bo    = - g * ( alpha*surfForcT +
45  c                     beta *surfForcS ) / rho            (m^2/s^3)  c                     beta *surfForcS ) / rho              (m^2/s^3)
46  c     bosol = - g * alpha * Qsw * drF(1) / rho                 (m^2/s^3)  c     bosol = - g * alpha * Qsw * drF(1) / rho             (m^2/s^3)
47    c     boplume = g * ( beta *saltPlumeFlux/rhoConst )/rho   (m^2/s^3)
48  c------------------------------------------------------------------------  c------------------------------------------------------------------------
49    
50  c \ev  c \ev
# Line 76  C              the KPP package (kpp_calc Line 86  C              the KPP package (kpp_calc
86  C              Units are r_unit.K/s (=Kelvin.m/s if r=z) (>0 for ocean warming).  C              Units are r_unit.K/s (=Kelvin.m/s if r=z) (>0 for ocean warming).
87  C  C
88  C     Qsw     - surface shortwave radiation (upwards positive)  C     Qsw     - surface shortwave radiation (upwards positive)
89    C     saltPlumeFlux - salt rejected during freezing (downward = positive)
90  C     ttalpha - thermal expansion coefficient without 1/rho factor  C     ttalpha - thermal expansion coefficient without 1/rho factor
91  C               d(rho{k,k})/d(T(k))                           (kg/m^3/C)  C               d(rho{k,k})/d(T(k))                           (kg/m^3/C)
92  C     ssbeta  - salt expansion coefficient without 1/rho factor  C     ssbeta  - salt expansion coefficient without 1/rho factor
93  C               d(rho{k,k})/d(S(k))                         (kg/m^3/PSU)  C               d(rho{k,k})/d(S(k))                         (kg/m^3/PSU)
94    C !OUTPUT PARAMETERS:
95  C     ustar  (nx,ny)       - surface friction velocity                  (m/s)  C     ustar  (nx,ny)       - surface friction velocity                  (m/s)
96  C     bo     (nx,ny)       - surface turbulent buoyancy forcing     (m^2/s^3)  C     bo     (nx,ny)       - surface turbulent buoyancy forcing     (m^2/s^3)
97  C     bosol  (nx,ny)       - surface radiative buoyancy forcing     (m^2/s^3)  C     bosol  (nx,ny)       - surface radiative buoyancy forcing     (m^2/s^3)
98    C     boplume(nx,ny)       - surface haline buoyancy forcing        (m^2/s^3)
99  C     dVsq   (nx,ny,Nr)    - velocity shear re surface squared  C     dVsq   (nx,ny,Nr)    - velocity shear re surface squared
100  C                            at grid levels for bldepth             (m^2/s^2)  C                            at grid levels for bldepth             (m^2/s^2)
101    
# Line 106  C                            at grid lev Line 118  C                            at grid lev
118        _RL ustar ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )        _RL ustar ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )
119        _RL bo    ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )        _RL bo    ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )
120        _RL bosol ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )        _RL bosol ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )
121    #ifdef ALLOW_SALT_PLUME
122          _RL saltPlumeFlux   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
123          _RL boplume(1-OLx:sNx+OLx, 1-OLy:sNy+OLy                )
124    #endif /* ALLOW_SALT_PLUME */
125        _RL dVsq  ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr            )        _RL dVsq  ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr            )
126    
127  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
# Line 132  c     friction velocity, turbulent and r Line 148  c     friction velocity, turbulent and r
148  c     -------------------------------------------------------------------  c     -------------------------------------------------------------------
149  c     taux / rho = surfForcU                               (N/m^2)  c     taux / rho = surfForcU                               (N/m^2)
150  c     tauy / rho = surfForcV                               (N/m^2)  c     tauy / rho = surfForcV                               (N/m^2)
151  c     ustar = sqrt( sqrt( taux^2 + tauy^2 ) / rho )                (m/s)  c     ustar = sqrt( sqrt( taux^2 + tauy^2 ) / rho )        (m/s)
152  c     bo    = - g * ( alpha*surfForcT +  c     bo    = - g * ( alpha*surfForcT +
153  c                     beta *surfForcS ) / rho            (m^2/s^3)  c                     beta *surfForcS ) / rho            (m^2/s^3)
154  c     bosol = - g * alpha * Qsw * drF(1) / rho                 (m^2/s^3)  c     bosol = - g * alpha * Qsw * drF(1) / rho           (m^2/s^3)
155    c     boplume = g * ( beta *saltPlumeFlux/rhoConst )/rho (m^2/s^3)
156  c------------------------------------------------------------------------  c------------------------------------------------------------------------
157    
158  c initialize arrays to zero  c initialize arrays to zero
# Line 144  c initialize arrays to zero Line 161  c initialize arrays to zero
161              ustar(i,j) = p0              ustar(i,j) = p0
162              bo   (I,J) = p0              bo   (I,J) = p0
163              bosol(I,J) = p0              bosol(I,J) = p0
164    #ifdef ALLOW_SALT_PLUME
165                boplume(I,J) = p0
166    #endif /* ALLOW_SALT_PLUME */
167           END DO           END DO
168        END DO        END DO
169    
# Line 190  cph) Line 210  cph)
210          bosol(I,J) = gravity * TTALPHA(I,J,1) * Qsw(i,j,bi,bj) *          bosol(I,J) = gravity * TTALPHA(I,J,1) * Qsw(i,j,bi,bj) *
211       &       recip_Cp*recip_rhoConst       &       recip_Cp*recip_rhoConst
212       &       / rhoSurf(I,J)       &       / rhoSurf(I,J)
213    #ifdef ALLOW_SALT_PLUME
214            boplume(I,J) = - gravity * SSBETA(I,J,1)
215         &       * saltPlumeFlux(i,j,bi,bj)
216         &       * recip_rhoConst / rhoSurf(I,J)
217    #endif /* ALLOW_SALT_PLUME */
218         END DO         END DO
219        END DO        END DO
220  cph(  cph(

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22