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

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

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

revision 1.16 by jmc, Mon Aug 18 12:25:17 2014 UTC revision 1.18 by jmc, Fri Sep 5 21:07:14 2014 UTC
# Line 150  C   useVariableK :: T when vertical diff Line 150  C   useVariableK :: T when vertical diff
150    
151  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
152    
 C-    Loop ranges for daughter routines  
       iMin = 1-OLx+2  
       iMax = sNx+OLx-1  
       jMin = 1-OLy+2  
       jMax = sNy+OLy-1  
   
153        iterNb = myIter        iterNb = myIter
154        IF (staggerTimeStep) iterNb = myIter - 1        IF (staggerTimeStep) iterNb = myIter - 1
155    
156    C-    Loop ranges for daughter routines:
157    c     iMin = 1
158    c     iMax = sNx
159    c     jMin = 1
160    c     jMax = sNy
161    C     Regarding model dynamics, only needs to get correct tracer tendency
162    C     (gT_loc) in tile interior (1:sNx,1:sNy);
163    C     However, for some diagnostics, we may want to get valid tendency
164    C     extended over 1 point in tile halo region (0:sNx+1,0:sNy=1).
165          iMin = 0
166          iMax = sNx+1
167          jMin = 0
168          jMax = sNy+1
169    
170  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
171        diagForcing = .FALSE.        diagForcing = .FALSE.
172        diagAB_tend = .FALSE.        diagAB_tend = .FALSE.
# Line 181  C-    Loop ranges for daughter routines Line 189  C-    Loop ranges for daughter routines
189       &                      + act4*max1*max2*max3       &                      + act4*max1*max2*max3
190  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
191    
192    C-    Apply AB on T :
193          IF ( AdamsBashforth_T ) THEN
194    C     compute T^n+1/2 (stored in gtNm) extrapolating T forward in time
195    #ifdef ALLOW_ADAMSBASHFORTH_3
196    c         m1 = 1 + MOD(iterNb+1,2)
197    c         m2 = 1 + MOD( iterNb ,2)
198              CALL ADAMS_BASHFORTH3(
199         I                           bi, bj, 0, Nr,
200         I                           theta(1-OLx,1-OLy,1,bi,bj),
201         U                           gtNm, gt_AB,
202         I                           tempStartAB, iterNb, myThid )
203    #else /* ALLOW_ADAMSBASHFORTH_3 */
204              CALL ADAMS_BASHFORTH2(
205         I                           bi, bj, 0, Nr,
206         I                           theta(1-OLx,1-OLy,1,bi,bj),
207         U                           gtNm1(1-OLx,1-OLy,1,bi,bj), gt_AB,
208         I                           tempStartAB, iterNb, myThid )
209    #endif /* ALLOW_ADAMSBASHFORTH_3 */
210          ENDIF
211    
212  C-    Tracer tendency needs to be set to zero (moved here from gad_calc_rhs):  C-    Tracer tendency needs to be set to zero (moved here from gad_calc_rhs):
213        DO k=1,Nr        DO k=1,Nr
214         DO j=1-OLy,sNy+OLy         DO j=1-OLy,sNy+OLy
# Line 203  C-    Tracer tendency needs to be set to Line 231  C-    Tracer tendency needs to be set to
231          ENDDO          ENDDO
232         ENDDO         ENDDO
233        ENDDO        ENDDO
234  CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE wFld(:,:,:)         = comlev1_bibj , key=itdkey, byte=isbyte
235  CADJ STORE wFld(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte  CADJ STORE theta(:,:,:,bi,bj)  = comlev1_bibj , key=itdkey, byte=isbyte
236    # ifdef ALLOW_ADAMSBASHFORTH_3
237    CADJ STORE gtNm(:,:,:,bi,bj,1) = comlev1_bibj, key=itdkey, byte=isbyte
238    CADJ STORE gtNm(:,:,:,bi,bj,2) = comlev1_bibj, key=itdkey, byte=isbyte
239    # else
240    CADJ STORE gtNm1(:,:,:,bi,bj)  = comlev1_bibj, key=itdkey, byte=isbyte
241    # endif
242  #endif /* ALLOW_AUTODIFF */  #endif /* ALLOW_AUTODIFF */
243    
244  #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL  #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL
# Line 444  C-    Integrate forward in time, storing Line 478  C-    Integrate forward in time, storing
478       U                  gT_loc,       U                  gT_loc,
479       I                  myTime, myIter, myThid )       I                  myTime, myIter, myThid )
480    
       iMin = 0  
       iMax = sNx+1  
       jMin = 0  
       jMax = sNy+1  
   
481  C--   Implicit vertical advection & diffusion  C--   Implicit vertical advection & diffusion
482    
483  #ifdef INCLUDE_IMPLVERTADV_CODE  #ifdef INCLUDE_IMPLVERTADV_CODE
# Line 492  CADJ STORE gT_loc(:,:,:) = comlev1_bibj Line 521  CADJ STORE gT_loc(:,:,:) = comlev1_bibj
521        ENDIF        ENDIF
522  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
523    
 #ifdef ALLOW_ADAMSBASHFORTH_3  
524        IF ( AdamsBashforth_T ) THEN        IF ( AdamsBashforth_T ) THEN
525  C-    Save current tracer field (for AB on tracer) and then update tracer  C-    Save current tracer field (for AB on tracer) and then update tracer
526    #ifdef ALLOW_ADAMSBASHFORTH_3
527          CALL CYCLE_AB_TRACER(          CALL CYCLE_AB_TRACER(
528       I             bi, bj, gT_loc,       I             bi, bj, gT_loc,
529       U             theta(1-OLx,1-OLy,1,bi,bj),       U             theta(1-OLx,1-OLy,1,bi,bj),
530       O             gtNm(1-OLx,1-OLy,1,bi,bj,m2),       O             gtNm(1-OLx,1-OLy,1,bi,bj,m2),
531       I             myTime, myIter, myThid )       I             myTime, myIter, myThid )
       ELSEIF ( tempStepping ) THEN  
532  #else /* ALLOW_ADAMSBASHFORTH_3 */  #else /* ALLOW_ADAMSBASHFORTH_3 */
533        IF ( tempStepping ) THEN          CALL CYCLE_AB_TRACER(
534         I             bi, bj, gT_loc,
535         U             theta(1-OLx,1-OLy,1,bi,bj),
536         O             gtNm1(1-OLx,1-OLy,1,bi,bj),
537         I             myTime, myIter, myThid )
538  #endif /* ALLOW_ADAMSBASHFORTH_3 */  #endif /* ALLOW_ADAMSBASHFORTH_3 */
539          ELSE
540  C-    Update tracer fields:  T(n) = T**  C-    Update tracer fields:  T(n) = T**
541          CALL CYCLE_TRACER(          CALL CYCLE_TRACER(
542       I             bi, bj,       I             bi, bj,

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

  ViewVC Help
Powered by ViewVC 1.1.22