/[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.100 by heimbach, Wed Mar 8 06:36:39 2006 UTC revision 1.101 by jmc, Fri Mar 17 04:24:34 2006 UTC
# Line 19  C     !INTERFACE: Line 19  C     !INTERFACE:
19        SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid)        SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid)
20  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
21  C     *==========================================================*  C     *==========================================================*
22  C     | SUBROUTINE THERMODYNAMICS                                  C     | SUBROUTINE THERMODYNAMICS
23  C     | o Controlling routine for the prognostic part of the        C     | o Controlling routine for the prognostic part of the
24  C     |   thermo-dynamics.                                          C     |   thermo-dynamics.
25  C     *===========================================================  C     *===========================================================
26  C     | The algorithm...  C     | The algorithm...
27  C     |  C     |
# Line 80  C     == Global variables === Line 80  C     == Global variables ===
80  #ifdef ALLOW_GENERIC_ADVDIFF  #ifdef ALLOW_GENERIC_ADVDIFF
81  #include "GAD.h"  #include "GAD.h"
82  #endif  #endif
 #ifdef ALLOW_OFFLINE  
 #include "OFFLINE.h"  
 #endif  
83  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
84  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
85  #include "PTRACERS.h"  #include "PTRACERS.h"
# Line 180  CEOP Line 177  CEOP
177           IF ( debugLevel .GE. debLevB )           IF ( debugLevel .GE. debLevB )
178       &    CALL DEBUG_ENTER('THERMODYNAMICS',myThid)       &    CALL DEBUG_ENTER('THERMODYNAMICS',myThid)
179  #endif  #endif
180    
181  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
182  C--   dummy statement to end declaration part  C--   dummy statement to end declaration part
183        ikey = 1        ikey = 1
# Line 334  C to be able to exclude this scheme to a Line 331  C to be able to exclude this scheme to a
331  C recomputation. It *is* differentiable, if you need it.  C recomputation. It *is* differentiable, if you need it.
332  C Edit GAD_OPTIONS.h and #define DISABLE_MULTIDIM_ADVECTION to  C Edit GAD_OPTIONS.h and #define DISABLE_MULTIDIM_ADVECTION to
333  C disable this section of code.  C disable this section of code.
 #ifndef ALLOW_OFFLINE  
334          IF (tempMultiDimAdvec) THEN          IF (tempMultiDimAdvec) THEN
335  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
336            IF ( debugLevel .GE. debLevB )            IF ( debugLevel .GE. debLevB )
# Line 347  C disable this section of code. Line 343  C disable this section of code.
343       O             gT,       O             gT,
344       I             bi,bj,myTime,myIter,myThid)       I             bi,bj,myTime,myIter,myThid)
345          ENDIF          ENDIF
 #endif  
 #ifndef ALLOW_OFFLINE  
346          IF (saltMultiDimAdvec) THEN          IF (saltMultiDimAdvec) THEN
347  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
348            IF ( debugLevel .GE. debLevB )            IF ( debugLevel .GE. debLevB )
# Line 361  C disable this section of code. Line 355  C disable this section of code.
355       O             gS,       O             gS,
356       I             bi,bj,myTime,myIter,myThid)       I             bi,bj,myTime,myIter,myThid)
357          ENDIF          ENDIF
358  #endif  
359  C Since passive tracers are configurable separately from T,S we  C Since passive tracers are configurable separately from T,S we
360  C call the multi-dimensional method for PTRACERS regardless  C call the multi-dimensional method for PTRACERS regardless
361  C of whether multiDimAdvection is set or not.  C of whether multiDimAdvection is set or not.
# Line 484  CADJ STORE kappaRS(:,:)    = comlev1_bib Line 478  CADJ STORE kappaRS(:,:)    = comlev1_bib
478    
479  C--      Calculate active tracer tendencies (gT,gS,...)  C--      Calculate active tracer tendencies (gT,gS,...)
480  C        and step forward storing result in gT, gS, etc.  C        and step forward storing result in gT, gS, etc.
 #ifndef ALLOW_OFFLINE  
481  C--  C--
482  # ifdef ALLOW_AUTODIFF_TAMC  # ifdef ALLOW_AUTODIFF_TAMC
483  #  if (defined (NONLIN_FRSURF) && defined (ALLOW_GMREDI))  #  if (defined (NONLIN_FRSURF) && defined (ALLOW_GMREDI))
# Line 525  CADJ STORE gT(:,:,k,bi,bj)    = comlev1_ Line 518  CADJ STORE gT(:,:,k,bi,bj)    = comlev1_
518            ENDIF            ENDIF
519  #endif  #endif
520           ENDIF           ENDIF
 #endif  
521    
 #ifndef ALLOW_OFFLINE  
522           IF ( saltStepping ) THEN           IF ( saltStepping ) THEN
523  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
524  CADJ STORE gSnm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE gSnm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
# Line 559  CADJ STORE gS(:,:,k,bi,bj)    = comlev1_ Line 550  CADJ STORE gS(:,:,k,bi,bj)    = comlev1_
550            ENDIF            ENDIF
551  #endif  #endif
552           ENDIF           ENDIF
553  #endif  
554  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
555           IF ( usePTRACERS ) THEN           IF ( usePTRACERS ) THEN
556             IF ( .NOT.implicitDiffusion ) THEN             IF ( .NOT.implicitDiffusion ) THEN
# Line 591  C--      Apply open boundary conditions Line 582  C--      Apply open boundary conditions
582  C--      Freeze water  C--      Freeze water
583  C  this bit of code is left here for backward compatibility.  C  this bit of code is left here for backward compatibility.
584  C  freezing at surface level has been moved to FORWARD_STEP  C  freezing at surface level has been moved to FORWARD_STEP
 #ifndef ALLOW_OFFLINE  
585           IF ( useOldFreezing .AND. .NOT. useSEAICE           IF ( useOldFreezing .AND. .NOT. useSEAICE
586       &       .AND. .NOT.(useThSIce.AND.k.EQ.1) ) THEN       &       .AND. .NOT.(useThSIce.AND.k.EQ.1) ) THEN
587  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 600  CADJ &   , key = kkey, byte = isbyte Line 590  CADJ &   , key = kkey, byte = isbyte
590  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
591              CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid )              CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid )
592           ENDIF           ENDIF
 #endif  
593    
594  C--     end of thermodynamic k loop (Nr:1)  C--     end of thermodynamic k loop (Nr:1)
595          ENDDO          ENDDO
# Line 621  C       field for implicit matrix calcul Line 610  C       field for implicit matrix calcul
610          jMax = sNy          jMax = sNy
611    
612  C--     Implicit vertical advection & diffusion  C--     Implicit vertical advection & diffusion
 #ifndef ALLOW_OFFLINE  
613          IF ( tempStepping .AND. implicitDiffusion ) THEN          IF ( tempStepping .AND. implicitDiffusion ) THEN
614            CALL CALC_3D_DIFFUSIVITY(            CALL CALC_3D_DIFFUSIVITY(
615       I         bi,bj,iMin,iMax,jMin,jMax,       I         bi,bj,iMin,iMax,jMin,jMax,
# Line 650  CADJ STORE gT(:,:,:,bi,bj) = comlev1_bib Line 638  CADJ STORE gT(:,:,:,bi,bj) = comlev1_bib
638       U         gT,       U         gT,
639       I         myThid )       I         myThid )
640          ENDIF          ENDIF
 #endif /* ndef ALLOW_OFFLINE */  
641    
642  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
643          useVariableK = useKPP .OR. usePP81 .OR. useMY82 .OR. useGGL90          useVariableK = useKPP .OR. usePP81 .OR. useMY82 .OR. useGGL90
# Line 666  c    I                        Nr, 3, del Line 653  c    I                        Nr, 3, del
653          ENDIF          ENDIF
654  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
655    
 #ifndef ALLOW_OFFLINE  
656          IF ( saltStepping .AND. implicitDiffusion ) THEN          IF ( saltStepping .AND. implicitDiffusion ) THEN
657            CALL CALC_3D_DIFFUSIVITY(            CALL CALC_3D_DIFFUSIVITY(
658       I         bi,bj,iMin,iMax,jMin,jMax,       I         bi,bj,iMin,iMax,jMin,jMax,
# Line 696  CADJ STORE gS(:,:,:,bi,bj) = comlev1_bib Line 682  CADJ STORE gS(:,:,:,bi,bj) = comlev1_bib
682       U         gS,       U         gS,
683       I         myThid )       I         myThid )
684          ENDIF          ENDIF
 #endif  
685    
686  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
687          IF     ( usePTRACERS ) THEN          IF     ( usePTRACERS ) THEN

Legend:
Removed from v.1.100  
changed lines
  Added in v.1.101

  ViewVC Help
Powered by ViewVC 1.1.22