/[MITgcm]/MITgcm/model/src/convective_adjustment.F
ViewVC logotype

Diff of /MITgcm/model/src/convective_adjustment.F

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

revision 1.16 by mlosch, Sat Nov 2 20:07:39 2002 UTC revision 1.17 by heimbach, Fri Nov 15 03:01:21 2002 UTC
# Line 54  C     !LOCAL VARIABLES: Line 54  C     !LOCAL VARIABLES:
54  C     == Local variables ==  C     == Local variables ==
55  C     rhoKm1, rhoK :: Density at adjacent levels (common ref. level)  C     rhoKm1, rhoK :: Density at adjacent levels (common ref. level)
56  C     ConvectCount :: Convection mixing freq. counter.  C     ConvectCount :: Convection mixing freq. counter.
57        INTEGER i, j, K, kTop, kBottom, kDir, kRef        INTEGER i, j, K, kTop, kBottom, kDir, deltaK
58        _RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
59        _RL rhoK  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rhoK  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
60        _RL ConvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL ConvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
# Line 65  CEOP Line 65  CEOP
65  C--   Check to see if should convect now  C--   Check to see if should convect now
66        IF ( DIFFERENT_MULTIPLE(cAdjFreq,myTime,myTime-deltaTClock) ) THEN        IF ( DIFFERENT_MULTIPLE(cAdjFreq,myTime,myTime-deltaTClock) ) THEN
67    
68    C--   Initialise counters
69            kTop    = 0
70            kBottom = 0
71            kDir    = 0
72            deltaK  = 0
73    
74  C-      Initialisation of Convection Counter  C-      Initialisation of Convection Counter
75          DO K=1,Nr          DO K=1,Nr
76           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
# Line 95  C--       CONVECT not needed with KPP mi Line 101  C--       CONVECT not needed with KPP mi
101  #endif  /* ALLOW_KPP */  #endif  /* ALLOW_KPP */
102    
103           IF ( buoyancyRelation .eq. 'OCEANIC' ) THEN           IF ( buoyancyRelation .eq. 'OCEANIC' ) THEN
104            kTop    = 2            kTop    =  2
105            kBottom = Nr            kBottom = Nr
106            kDir    = 1            kDir    =  1
107              deltaK  = -1
108           ELSEIF ( buoyancyRelation .eq. 'OCEANICP' ) THEN           ELSEIF ( buoyancyRelation .eq. 'OCEANICP' ) THEN
109            kTop    = Nr            kTop    = Nr
110            kBottom =  2            kBottom =  2
111            kDir    = -1            kDir    = -1
112              deltaK  =  0
113           ELSEIF ( buoyancyRelation .eq. 'ATMOSPHERIC' ) THEN           ELSEIF ( buoyancyRelation .eq. 'ATMOSPHERIC' ) THEN
114            kTop    = Nr            kTop    = Nr
115            kBottom =  2            kBottom =  2
116            kDir    = -1            kDir    = -1
117              deltaK  =  0
118           ELSE           ELSE
119            STOP 'CONVECTIVE_ADJUSTMENT: We should never reach this point'            STOP 'CONVECTIVE_ADJUSTMENT: We should never reach this point'
120           ENDIF             ENDIF  
# Line 113  C--       CONVECT not needed with KPP mi Line 122  C--       CONVECT not needed with KPP mi
122  C--       Loop over all *interior* layers  C--       Loop over all *interior* layers
123            DO K=kTop,kBottom,kDir            DO K=kTop,kBottom,kDir
124    
            IF ( buoyancyRelation .eq. 'OCEANIC' ) THEN  
             kRef = k-1  
            ELSEIF ( buoyancyRelation .eq. 'OCEANICP' ) THEN  
             kRef = k  
            ELSEIF ( buoyancyRelation .eq. 'ATMOSPHERIC' ) THEN  
             kRef = k  
            ENDIF          
   
125  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
126              kkey = (ikey-1)*Nr + k              kkey = (ikey-1)*Nr + k
127  CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
# Line 128  CADJ STORE salt (:,:,k-1,bi,bj) = comlev Line 129  CADJ STORE salt (:,:,k-1,bi,bj) = comlev
129  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
130  C-          Density of K-1 layer (above W(K)) reference to K-1 T-level  C-          Density of K-1 layer (above W(K)) reference to K-1 T-level
131              CALL FIND_RHO(              CALL FIND_RHO(
132       I           bi,bj,iMin,iMax,jMin,jMax,K-1,KRef,       I           bi,bj,iMin,iMax,jMin,jMax,K-1,K+deltaK,
133       I           theta,salt,       I           theta,salt,
134       O           rhoKm1,       O           rhoKm1,
135       I           myThid )       I           myThid )
# Line 139  CADJ STORE theta(:,:,k,bi,bj) = comlev1_ Line 140  CADJ STORE theta(:,:,k,bi,bj) = comlev1_
140  CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
141  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
142              CALL FIND_RHO(              CALL FIND_RHO(
143       I           bi,bj,iMin,iMax,jMin,jMax,K,KRef,       I           bi,bj,iMin,iMax,jMin,jMax,K,K+deltaK,
144       I           theta,salt,       I           theta,salt,
145       O           rhoK,       O           rhoK,
146       I           myThid )       I           myThid )

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22