/[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.62 by jmc, Tue Dec 30 02:33:42 2003 UTC revision 1.63 by jmc, Sat Jan 3 01:01:34 2004 UTC
# Line 175  CEOP Line 175  CEOP
175    
176  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
177           IF ( debugLevel .GE. debLevB )           IF ( debugLevel .GE. debLevB )
178       &    CALL DEBUG_ENTER('FORWARD_STEP',myThid)       &    CALL DEBUG_ENTER('THERMODYNAMICS',myThid)
179  #endif  #endif
180    
181  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 571  C disable this section of code. Line 571  C disable this section of code.
571            IF ( debugLevel .GE. debLevB )            IF ( debugLevel .GE. debLevB )
572       &     CALL DEBUG_CALL('GAD_ADVECTION',myThid)       &     CALL DEBUG_CALL('GAD_ADVECTION',myThid)
573  #endif  #endif
574            CALL GAD_ADVECTION(bi,bj,tempAdvScheme,GAD_TEMPERATURE,            CALL GAD_ADVECTION(
575       U                      theta,gT,       I             tempImplVertAdv,tempAdvScheme,GAD_TEMPERATURE,
576       I                      myTime,myIter,myThid)       I             uVel, vVel, wVel, theta,
577         O             gT,
578         I             bi,bj,myTime,myIter,myThid)
579          ENDIF          ENDIF
580          IF (saltMultiDimAdvec) THEN          IF (saltMultiDimAdvec) THEN
581  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
582            IF ( debugLevel .GE. debLevB )            IF ( debugLevel .GE. debLevB )
583       &     CALL DEBUG_CALL('GAD_ADVECTION',myThid)       &     CALL DEBUG_CALL('GAD_ADVECTION',myThid)
584  #endif  #endif
585            CALL GAD_ADVECTION(bi,bj,saltAdvScheme,GAD_SALINITY,            CALL GAD_ADVECTION(
586       U                      salt,gS,       I             saltImplVertAdv,saltAdvScheme,GAD_SALINITY,
587       I                      myTime,myIter,myThid)       I             uVel, vVel, wVel, salt,
588         O             gS,
589         I             bi,bj,myTime,myIter,myThid)
590          ENDIF          ENDIF
591  C Since passive tracers are configurable separately from T,S we  C Since passive tracers are configurable separately from T,S we
592  C call the multi-dimensional method for PTRACERS regardless  C call the multi-dimensional method for PTRACERS regardless
# Line 599  C of whether multiDimAdvection is set or Line 603  C of whether multiDimAdvection is set or
603  #endif /* DISABLE_MULTIDIM_ADVECTION */  #endif /* DISABLE_MULTIDIM_ADVECTION */
604    
605  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
606         IF ( debugLevel .GE. debLevB )          IF ( debugLevel .GE. debLevB )
607       &    CALL DEBUG_MSG('ENTERING DOWNWARD K LOOP',myThid)       &    CALL DEBUG_MSG('ENTERING DOWNWARD K LOOP',myThid)
608  #endif  #endif
609    
# Line 744  C--     end of thermodynamic k loop (Nr: Line 748  C--     end of thermodynamic k loop (Nr:
748          ENDDO          ENDDO
749    
750    
751  C--     Implicit diffusion  C--     Implicit vertical advection & diffusion
752          IF (implicitDiffusion) THEN  #ifdef INCLUDE_IMPLVERTADV_CODE
753            IF ( tempImplVertAdv ) THEN
754           IF (tempStepping) THEN            CALL GAD_IMPLICIT_R(
755         I         tempImplVertAdv, tempAdvScheme, GAD_TEMPERATURE,
756         I         kappaRT, wVel, theta,
757         U         gT,
758         I         bi, bj, myTime, myIter, myThid )
759            ELSEIF ( tempStepping .AND. implicitDiffusion ) THEN
760    #else /* INCLUDE_IMPLVERTADV_CODE */
761            IF     ( tempStepping .AND. implicitDiffusion ) THEN
762    #endif /* INCLUDE_IMPLVERTADV_CODE */
763  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
764  CADJ STORE KappaRT(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE KappaRT(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte
765  CADJ STORE gT(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE gT(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte
766  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
767              CALL IMPLDIFF(            CALL IMPLDIFF(
768       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
769       I         deltaTtracer, KappaRT, recip_HFacC,       I         deltaTtracer, KappaRT, recip_HFacC,
770       U         gT,       U         gT,
771       I         myThid )       I         myThid )
772           ENDIF          ENDIF
773    
774           IF (saltStepping) THEN  #ifdef INCLUDE_IMPLVERTADV_CODE
775            IF ( saltImplVertAdv ) THEN
776              CALL GAD_IMPLICIT_R(
777         I         saltImplVertAdv, saltAdvScheme, GAD_SALINITY,
778         I         kappaRS, wVel, salt,
779         U         gS,
780         I         bi, bj, myTime, myIter, myThid )
781            ELSEIF ( saltStepping .AND. implicitDiffusion ) THEN
782    #else /* INCLUDE_IMPLVERTADV_CODE */
783            IF     ( saltStepping .AND. implicitDiffusion ) THEN
784    #endif /* INCLUDE_IMPLVERTADV_CODE */
785  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
786  CADJ STORE KappaRS(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE KappaRS(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte
787  CADJ STORE gS(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE gS(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte
788  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
789              CALL IMPLDIFF(            CALL IMPLDIFF(
790       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
791       I         deltaTtracer, KappaRS, recip_HFacC,       I         deltaTtracer, KappaRS, recip_HFacC,
792       U         gS,       U         gS,
793       I         myThid )       I         myThid )
794           ENDIF          ENDIF
795    
796  #ifdef ALLOW_PASSIVE_TRACER  #ifdef ALLOW_PASSIVE_TRACER
797           IF (tr1Stepping) THEN          IF ( tr1Stepping .AND. implicitDiffusion ) THEN
798  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
799  CADJ STORE gTr1(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE gTr1(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte
800  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
# Line 781  CADJ STORE gTr1(:,:,:,bi,bj) = comlev1_b Line 803  CADJ STORE gTr1(:,:,:,bi,bj) = comlev1_b
803       I      deltaTtracer, KappaRT, recip_HFacC,       I      deltaTtracer, KappaRT, recip_HFacC,
804       U      gTr1,       U      gTr1,
805       I      myThid )       I      myThid )
806           ENDIF          ENDIF
807  #endif  #endif
808    
809  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
810  C Vertical diffusion (implicit) for passive tracers  c #ifdef INCLUDE_IMPLVERTADV_CODE
811           IF ( usePTRACERS ) THEN  c       IF ( usePTRACERS .AND. ptracerImplVertAdv ) THEN
812    c       ELSEIF ( usePTRACERS .AND. implicitDiffusion ) THEN
813    c #else
814            IF     ( usePTRACERS .AND. implicitDiffusion ) THEN
815    C--     Vertical diffusion (implicit) for passive tracers
816             CALL PTRACERS_IMPLDIFF( bi,bj,KappaRS,myThid )             CALL PTRACERS_IMPLDIFF( bi,bj,KappaRS,myThid )
817           ENDIF          ENDIF
818  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
819    
820  #ifdef   ALLOW_OBCS  #ifdef   ALLOW_OBCS
821  C--      Apply open boundary conditions  C--      Apply open boundary conditions
822           IF (useOBCS) THEN          IF ( ( implicitDiffusion
823         &    .OR. tempImplVertAdv
824         &    .OR. saltImplVertAdv
825         &       ) .AND. useOBCS     ) THEN
826             DO K=1,Nr             DO K=1,Nr
827               CALL OBCS_APPLY_TS( bi, bj, k, gT, gS, myThid )               CALL OBCS_APPLY_TS( bi, bj, k, gT, gS, myThid )
828             ENDDO             ENDDO
          END IF  
 #endif   /* ALLOW_OBCS */  
   
 C--     End If implicitDiffusion  
829          ENDIF          ENDIF
830    #endif   /* ALLOW_OBCS */
831    
832  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
 ceh3 needs an IF ( useTIMEAVE ) THEN  
833          IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN          IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN
834            CALL TIMEAVE_CUMUL_1T(ConvectCountTave, ConvectCount,            CALL TIMEAVE_CUMUL_1T(ConvectCountTave, ConvectCount,
835       I                           Nr, deltaTclock, bi, bj, myThid)       I                           Nr, deltaTclock, bi, bj, myThid)
# Line 848  C--   end bi,bj loops. Line 873  C--   end bi,bj loops.
873    
874  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
875           IF ( debugLevel .GE. debLevB )           IF ( debugLevel .GE. debLevB )
876       &    CALL DEBUG_LEAVE('FORWARD_STEP',myThid)       &    CALL DEBUG_LEAVE('THERMODYNAMICS',myThid)
877  #endif  #endif
878    
879        RETURN        RETURN

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.63

  ViewVC Help
Powered by ViewVC 1.1.22