/[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.40 by dfer, Thu Oct 23 18:11:00 2008 UTC revision 1.41 by dfer, Thu Oct 30 18:51:36 2008 UTC
# Line 1453  c Line 1453  c
1453  c     written  by: jan morzel,   feb. 10, 1995 (converted from "sigma" version)  c     written  by: jan morzel,   feb. 10, 1995 (converted from "sigma" version)
1454  c     modified by: d. menemenlis,    june 1998 : for use with MIT GCM UV  c     modified by: d. menemenlis,    june 1998 : for use with MIT GCM UV
1455  c  c
 c     28 april 05: added computation of mixed layer depth KPPmld  
 c     for a deltaRho equivalent to a deltaTheta of 0.8 deg C  
1456    
1457  c-----------------------------------------------------------------------  c-----------------------------------------------------------------------
1458    
# Line 1492  c     work1,2,3    - work arrays for hol Line 1490  c     work1,2,3    - work arrays for hol
1490        _RL WORK1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL WORK1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
1491        _RL WORK2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL WORK2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
1492        _RL WORK3 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL WORK3 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
 #ifdef ALLOW_DIAGNOSTICS  
 c     KPPMLD - mixed layer depth based on density criterion  
       _RL KPPMLD(1    :sNx    ,1    :sNy    )  
 #endif /* ALLOW_DIAGNOSTICS */  
1493    
1494        INTEGER I, J, K        INTEGER I, J, K
1495        INTEGER ikppkey, kkppkey        INTEGER ikppkey, kkppkey
# Line 1535  CADJ STORE salt (:,:,1,bi,bj) = comlev1_ Line 1529  CADJ STORE salt (:,:,1,bi,bj) = comlev1_
1529           END DO           END DO
1530        END DO        END DO
1531    
 #ifdef ALLOW_DIAGNOSTICS  
 c     work3 - density of t(1)-.8 & s(1  ) at depth 1  
       IF ( useDiagnostics ) THEN  
          DO J = 1, sNy  
             DO I = 1, sNx  
                KPPMLD(I,J) = ABS(R_low(I,J,bi,bj))  
                WORK3 (I,J) = WORK1(I,J) - 0.8 _d 0 * WORK2(I,J)  
             END DO  
          END DO  
       ENDIF  
 #endif /* ALLOW_DIAGNOSTICS */  
   
1532  c calculate alpha, beta, and gradients in interior layers  c calculate alpha, beta, and gradients in interior layers
1533    
1534  CHPF$  INDEPENDENT, NEW (RHOK,RHOKM1,RHO1K,WORK1,WORK2)  CHPF$  INDEPENDENT, NEW (RHOK,RHOKM1,RHO1K,WORK1,WORK2)
# Line 1609  CADJ STORE rho1k (:,:)          = comlev Line 1591  CADJ STORE rho1k (:,:)          = comlev
1591              END DO              END DO
1592           END DO           END DO
1593    
 #ifdef ALLOW_DIAGNOSTICS  
          IF ( useDiagnostics ) THEN  
 c     work1 - density of t(k-1)  & s(k-1) at depth 1  
 c     work2 - density of t(k  )  & s(k  ) at depth 1  
 c     work3 - density of t(1)-.8 & s(1  ) at depth 1  
             CALL FIND_RHO_2D(  
      I           1, sNx, 1, sNy, 1,  
      I           theta(1-OLx,1-OLy,k-1,bi,bj),  
      I           salt (1-OLx,1-OLy,k-1,bi,bj),  
      O           WORK1,  
      I           k-1, bi, bj, myThid )  
             CALL FIND_RHO_2D(  
      I           1, sNx, 1, sNy, 1,  
      I           theta(1-OLx,1-OLy,k,bi,bj),  
      I           salt (1-OLx,1-OLy,k,bi,bj),  
      O           WORK2,  
      I           k, bi, bj, myThid )  
             DO J = 1, sNy  
                DO I = 1, sNx  
                   IF ( k .LE. klowC(I,J,bi,bj) .AND.  
      &                 WORK1(I,J) .LT. WORK3(I,J) .AND.  
      &                 WORK2(I,J) .GE. WORK3(I,J) ) THEN  
                      KPPMLD(I,J) = MIN ( KPPMLD(I,J),  
      &                    ABS(((WORK3(I,J)-WORK1(I,J))*rC(k)+  
      &                    (WORK2(I,J)-WORK3(I,J))*rC(k-1))/  
      &                    (WORK2(I,J)-WORK1(I,J))))  
                   ENDIF  
                END DO  
             END DO  
          ENDIF  
 #endif /* ALLOW_DIAGNOSTICS */  
   
1594        END DO        END DO
1595    
1596  c     compute arrays for K = Nrp1  c     compute arrays for K = Nrp1
# Line 1654  c     compute arrays for K = Nrp1 Line 1604  c     compute arrays for K = Nrp1
1604    
1605  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
1606        IF ( useDiagnostics ) THEN        IF ( useDiagnostics ) THEN
          CALL DIAGNOSTICS_FILL(KPPmld,'KPPmld  ',0,1,3,bi,bj,myThid)  
1607           CALL DIAGNOSTICS_FILL(DBSFC ,'KPPdbsfc',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(DBSFC ,'KPPdbsfc',0,Nr,0,1,1,myThid)
1608           CALL DIAGNOSTICS_FILL(DBLOC ,'KPPdbloc',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(DBLOC ,'KPPdbloc',0,Nr,0,1,1,myThid)
1609        ENDIF        ENDIF

Legend:
Removed from v.1.40  
changed lines
  Added in v.1.41

  ViewVC Help
Powered by ViewVC 1.1.22