/[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.94 by jmc, Wed Aug 24 23:13:54 2005 UTC revision 1.95 by jmc, Sun Nov 6 22:19:08 2005 UTC
# Line 107  C     == Global variables === Line 107  C     == Global variables ===
107  # endif  # endif
108  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
109    
 #ifdef ALLOW_MATRIX  
 # include "MATRIX.h"  
 #endif /* ALLOW_MATRIX */  
   
110  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
111  C     == Routine arguments ==  C     == Routine arguments ==
112  C     myTime - Current time in simulation  C     myTime - Current time in simulation
# Line 163  C                      index into fVerTe Line 159  C                      index into fVerTe
159        _RL kappaRTr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,PTRACERS_num)        _RL kappaRTr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,PTRACERS_num)
160  #endif  #endif
161        _RL kappaRk (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL kappaRk (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
       _RL kp1Msk  
       LOGICAL useVariableK  
162        INTEGER iMin, iMax        INTEGER iMin, iMax
163        INTEGER jMin, jMax        INTEGER jMin, jMax
164        INTEGER bi, bj        INTEGER bi, bj
165        INTEGER i, j        INTEGER i, j
166        INTEGER k, km1, kup, kDown        INTEGER k, km1, kup, kDown
167    #ifdef ALLOW_ADAMSBASHFORTH_3
168          INTEGER iterNb, m1, m2
169    #endif
170    #ifdef ALLOW_TIMEAVE
171          LOGICAL useVariableK
172    #endif
173    #ifdef ALLOW_PTRACERS
174        INTEGER iTracer, ip        INTEGER iTracer, ip
175    #endif
176    
177  CEOP  CEOP
178    
# Line 262  C- tracer tendency needs to be set to ze Line 264  C- tracer tendency needs to be set to ze
264           ENDDO           ENDDO
265          ENDDO          ENDDO
266    
267    #ifdef ALLOW_ADAMSBASHFORTH_3
268    C-      Apply AB on T,S :
269            iterNb = myIter
270            IF (staggerTimeStep) iterNb = myIter - 1
271            m1 = 1 + MOD(iterNb+1,2)
272            m2 = 1 + MOD( iterNb ,2)
273    C       compute T^n+1/2 (stored in gtNm) extrapolating T forward in time
274            IF ( AdamsBashforth_T ) CALL ADAMS_BASHFORTH3(
275         I                                  bi, bj, 0,
276         U                                  theta, gtNm,
277         I                                  tempStartAB, iterNb, myThid )
278    C       compute S^n+1/2 (stored in gsNm) extrapolating S forward in time
279            IF ( AdamsBashforth_S ) CALL ADAMS_BASHFORTH3(
280         I                                  bi, bj, 0,
281         U                                  salt, gsNm,
282         I                                  saltStartAB, iterNb, myThid )
283    #endif /* ALLOW_ADAMSBASHFORTH_3 */
284    
285  c       iMin = 1-OLx  c       iMin = 1-OLx
286  c       iMax = sNx+OLx  c       iMax = sNx+OLx
287  c       jMin = 1-OLy  c       jMin = 1-OLy
# Line 368  C--       kDown  Cycles through 2,1 to p Line 388  C--       kDown  Cycles through 2,1 to p
388            jMin = 1-OLy            jMin = 1-OLy
389            jMax = sNy+OLy            jMax = sNy+OLy
390    
391            kp1Msk=1.            IF (k.EQ.Nr) THEN
           IF (k.EQ.Nr) kp1Msk=0.  
392             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
393              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
394               rTransKp1(i,j) = kp1Msk*rTrans(i,j)               rTransKp1(i,j) = 0. _d 0
395              ENDDO              ENDDO
396             ENDDO             ENDDO
397              ELSE
398               DO j=1-Oly,sNy+Oly
399                DO i=1-Olx,sNx+Olx
400                 rTransKp1(i,j) = rTrans(i,j)
401                ENDDO
402               ENDDO
403              ENDIF
404  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
405  CADJ STORE rTransKp1(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE rTransKp1(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte
406  #endif  #endif
# Line 451  C        and step forward storing result Line 477  C        and step forward storing result
477       I         kappaRT,       I         kappaRT,
478       U         fVerT,       U         fVerT,
479       I         myTime,myIter,myThid)       I         myTime,myIter,myThid)
480    #ifdef ALLOW_ADAMSBASHFORTH_3
481              IF ( AdamsBashforth_T ) THEN
482             CALL TIMESTEP_TRACER(             CALL TIMESTEP_TRACER(
483       I         bi,bj,iMin,iMax,jMin,jMax,k,tempAdvScheme,       I         bi,bj,iMin,iMax,jMin,jMax,k,tempAdvScheme,
484       I         theta, gT,       I         gtNm(1-Olx,1-Oly,1,1,1,m2),
485         U         gT,
486       I         myIter, myThid)       I         myIter, myThid)
487              ELSE
488    #endif
489               CALL TIMESTEP_TRACER(
490         I         bi,bj,iMin,iMax,jMin,jMax,k,tempAdvScheme,
491         I         theta,
492         U         gT,
493         I         myIter, myThid)
494    #ifdef ALLOW_ADAMSBASHFORTH_3
495              ENDIF
496    #endif
497           ENDIF           ENDIF
498  #endif  #endif
499    
# Line 466  C        and step forward storing result Line 505  C        and step forward storing result
505       I         kappaRS,       I         kappaRS,
506       U         fVerS,       U         fVerS,
507       I         myTime,myIter,myThid)       I         myTime,myIter,myThid)
508    #ifdef ALLOW_ADAMSBASHFORTH_3
509              IF ( AdamsBashforth_S ) THEN
510             CALL TIMESTEP_TRACER(             CALL TIMESTEP_TRACER(
511       I         bi,bj,iMin,iMax,jMin,jMax,k,saltAdvScheme,       I         bi,bj,iMin,iMax,jMin,jMax,k,saltAdvScheme,
512       I         salt, gS,       I         gsNm(1-Olx,1-Oly,1,1,1,m2),
513         U         gS,
514       I         myIter, myThid)       I         myIter, myThid)
515              ELSE
516    #endif
517               CALL TIMESTEP_TRACER(
518         I         bi,bj,iMin,iMax,jMin,jMax,k,saltAdvScheme,
519         I         salt,
520         U         gS,
521         I         myIter, myThid)
522    #ifdef ALLOW_ADAMSBASHFORTH_3
523              ENDIF
524    #endif
525           ENDIF           ENDIF
526  #endif  #endif
527  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
# Line 631  C--      Apply open boundary conditions Line 683  C--      Apply open boundary conditions
683          ENDIF          ENDIF
684  #endif   /* ALLOW_OBCS */  #endif   /* ALLOW_OBCS */
685    
 #ifdef ALLOW_TIMEAVE  
         IF ( taveFreq.GT. 0. _d 0 .AND. fluidIsWater ) THEN  
           CALL TIMEAVE_SURF_FLUX( bi, bj, myTime, myIter, myThid)  
         ENDIF  
         IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN  
           CALL TIMEAVE_CUMULATE(ConvectCountTave, IVDConvCount,  
      I                           Nr, deltaTclock, bi, bj, myThid)  
         ENDIF  
 #endif /* ALLOW_TIMEAVE */  
   
686  #endif /* SINGLE_LAYER_MODE */  #endif /* SINGLE_LAYER_MODE */
687    
688  C--   end bi,bj loops.  C--   end bi,bj loops.

Legend:
Removed from v.1.94  
changed lines
  Added in v.1.95

  ViewVC Help
Powered by ViewVC 1.1.22