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

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

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

revision 1.17 by adcroft, Mon Mar 4 17:26:41 2002 UTC revision 1.22 by heimbach, Thu May 30 02:31:01 2002 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    #ifdef ALLOW_AUTODIFF_TAMC
6    # ifdef ALLOW_GMREDI
7    #  include "GMREDI_OPTIONS.h"
8    # endif
9    # ifdef ALLOW_KPP
10    #  include "KPP_OPTIONS.h"
11    # endif
12    #endif /* ALLOW_AUTODIFF_TAMC */
13    
14  CBOP  CBOP
15  C     !ROUTINE: THERMODYNAMICS  C     !ROUTINE: THERMODYNAMICS
# Line 169  C     uninitialised but inert locations. Line 177  C     uninitialised but inert locations.
177          yA(i,j)      = 0. _d 0          yA(i,j)      = 0. _d 0
178          uTrans(i,j)  = 0. _d 0          uTrans(i,j)  = 0. _d 0
179          vTrans(i,j)  = 0. _d 0          vTrans(i,j)  = 0. _d 0
         DO k=1,Nr  
          phiHyd(i,j,k)  = 0. _d 0  
          sigmaX(i,j,k) = 0. _d 0  
          sigmaY(i,j,k) = 0. _d 0  
          sigmaR(i,j,k) = 0. _d 0  
         ENDDO  
         rhoKM1 (i,j) = 0. _d 0  
180          rhok   (i,j) = 0. _d 0          rhok   (i,j) = 0. _d 0
181          phiSurfX(i,j) = 0. _d 0          phiSurfX(i,j) = 0. _d 0
182          phiSurfY(i,j) = 0. _d 0          phiSurfY(i,j) = 0. _d 0
# Line 223  C--     Set up work arrays that need val Line 224  C--     Set up work arrays that need val
224            fVerS  (i,j,2) = 0. _d 0            fVerS  (i,j,2) = 0. _d 0
225            fVerTr1(i,j,1) = 0. _d 0            fVerTr1(i,j,1) = 0. _d 0
226            fVerTr1(i,j,2) = 0. _d 0            fVerTr1(i,j,2) = 0. _d 0
227              rhoKM1 (i,j)   = 0. _d 0
228           ENDDO           ENDDO
229          ENDDO          ENDDO
230    
# Line 230  C--     Set up work arrays that need val Line 232  C--     Set up work arrays that need val
232           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
233            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
234  C This is currently also used by IVDC and Diagnostics  C This is currently also used by IVDC and Diagnostics
235               phiHyd(i,j,k)  = 0. _d 0
236               sigmaX(i,j,k) = 0. _d 0
237               sigmaY(i,j,k) = 0. _d 0
238               sigmaR(i,j,k) = 0. _d 0
239             ConvectCount(i,j,k) = 0.             ConvectCount(i,j,k) = 0.
240             KappaRT(i,j,k) = 0. _d 0             KappaRT(i,j,k) = 0. _d 0
241             KappaRS(i,j,k) = 0. _d 0             KappaRS(i,j,k) = 0. _d 0
# Line 239  C This is currently also used by IVDC an Line 245  C This is currently also used by IVDC an
245  #ifdef ALLOW_PASSIVE_TRACER  #ifdef ALLOW_PASSIVE_TRACER
246             gTr1(i,j,k,bi,bj) = 0. _d 0             gTr1(i,j,k,bi,bj) = 0. _d 0
247  #endif  #endif
248    #ifdef ALLOW_GMREDI
249               Kwx(i,j,k,bi,bj)    = 0. _d 0
250               Kwy(i,j,k,bi,bj)    = 0. _d 0
251               Kwz(i,j,k,bi,bj)    = 0. _d 0
252    #ifdef GM_NON_UNITY_DIAGONAL
253               Kux(i,j,k,bi,bj)    = 0. _d 0
254               Kvy(i,j,k,bi,bj)    = 0. _d 0
255    #endif
256    #endif /* ALLOW_GMREDI */
257  #endif  #endif
258            ENDDO            ENDDO
259           ENDDO           ENDDO
260          ENDDO          ENDDO
261    
262          iMin = 1-OLx+1          iMin = 1-OLx
263          iMax = sNx+OLx          iMax = sNx+OLx
264          jMin = 1-OLy+1          jMin = 1-OLy
265          jMax = sNy+OLy          jMax = sNy+OLy
266    
267    
# Line 287  C--       Apply OBC to W if in N-H mode Line 302  C--       Apply OBC to W if in N-H mode
302  #endif    /* ALLOW_NONHYDROSTATIC */  #endif    /* ALLOW_NONHYDROSTATIC */
303  #endif    /* ALLOW_OBCS */  #endif    /* ALLOW_OBCS */
304    
305    C--       Attention: by defining "SINGLE_LAYER_MODE" in CPP_OPTIONS.h
306    C--       MOST of THERMODYNAMICS will be disabled
307    #ifndef SINGLE_LAYER_MODE
308    
309  C--       Calculate gradients of potential density for isoneutral  C--       Calculate gradients of potential density for isoneutral
310  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)
311  c         IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN  c         IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN
# Line 328  c ==> should use sigmaR !!! Line 347  c ==> should use sigmaR !!!
347       I        myTime, myIter, myThid)       I        myTime, myIter, myThid)
348            ENDIF            ENDIF
349    
350    #endif /* SINGLE_LAYER_MODE */
351    
352  C--     end of diagnostic k loop (Nr:1)  C--     end of diagnostic k loop (Nr:1)
353          ENDDO          ENDDO
354    
# Line 362  CADJ STORE surfacetendencyT(:,:,bi,bj) Line 383  CADJ STORE surfacetendencyT(:,:,bi,bj)
383  CADJ &     = comlev1_bibj, key=ikey, byte=isbyte  CADJ &     = comlev1_bibj, key=ikey, byte=isbyte
384  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
385    
386    C--     Attention: by defining "SINGLE_LAYER_MODE" in CPP_OPTIONS.h
387    C--     MOST of THERMODYNAMICS will be disabled
388    #ifndef SINGLE_LAYER_MODE
389    
390  #ifdef  ALLOW_GMREDI  #ifdef  ALLOW_GMREDI
391    
392  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
393  CADJ STORE sigmaX(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaX(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
394  CADJ STORE sigmaY(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaY(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
395  CADJ STORE sigmaR(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaR(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
396  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
397  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation
398          IF (useGMRedi) THEN          IF (useGMRedi) THEN
# Line 510  C--       Get temporary terms used by te Line 535  C--       Get temporary terms used by te
535       O         xA,yA,uTrans,vTrans,rTrans,maskUp,       O         xA,yA,uTrans,vTrans,rTrans,maskUp,
536       I         myThid)       I         myThid)
537    
538    #ifdef ALLOW_GMREDI
539    C--   Residual transp = Bolus transp + Eulerian transp
540              IF (useGMRedi) THEN
541                CALL GMREDI_CALC_UVFLOW(
542         &            uTrans, vTrans, bi, bj, k, myThid)
543                IF (K.GE.2) CALL GMREDI_CALC_WFLOW(
544         &                    rTrans, bi, bj, k, myThid)
545              ENDIF
546    #endif /* ALLOW_GMREDI */
547    
548  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
549  CADJ STORE KappaRT(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE KappaRT(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte
550  CADJ STORE KappaRS(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE KappaRS(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte
# Line 668  C--      Apply open boundary conditions Line 703  C--      Apply open boundary conditions
703  C--     End If implicitDiffusion  C--     End If implicitDiffusion
704          ENDIF          ENDIF
705    
706    #endif /* SINGLE_LAYER_MODE */
707    
708  Ccs-  Ccs-
709         ENDDO         ENDDO
710        ENDDO        ENDDO
# Line 696  Ccs- Line 733  Ccs-
733         CALL DEBUG_STATS_RL(Nr,Gs,'Gs (THERMODYNAMICS)',myThid)         CALL DEBUG_STATS_RL(Nr,Gs,'Gs (THERMODYNAMICS)',myThid)
734         CALL DEBUG_STATS_RL(Nr,GtNm1,'GtNm1 (THERMODYNAMICS)',myThid)         CALL DEBUG_STATS_RL(Nr,GtNm1,'GtNm1 (THERMODYNAMICS)',myThid)
735         CALL DEBUG_STATS_RL(Nr,GsNm1,'GsNm1 (THERMODYNAMICS)',myThid)         CALL DEBUG_STATS_RL(Nr,GsNm1,'GsNm1 (THERMODYNAMICS)',myThid)
736         CALL PTRACERS_DEBUG(myThid)  #ifdef ALLOW_PTRACERS
737           IF ( usePTRACERS ) THEN
738             CALL PTRACERS_DEBUG(myThid)
739           ENDIF
740    #endif /* ALLOW_PTRACERS */
741        ENDIF        ENDIF
742  #endif  #endif
743    

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

  ViewVC Help
Powered by ViewVC 1.1.22