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

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

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

revision 1.65.2.2 by jmc, Mon Apr 9 16:08:34 2001 UTC revision 1.73 by adcroft, Fri Jul 20 19:16:28 2001 UTC
# Line 29  C     == Global variables === Line 29  C     == Global variables ===
29  #include "PARAMS.h"  #include "PARAMS.h"
30  #include "DYNVARS.h"  #include "DYNVARS.h"
31  #include "GRID.h"  #include "GRID.h"
32    #include "TR1.h"
33    
34  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
35  # include "tamc.h"  # include "tamc.h"
36  # include "tamc_keys.h"  # include "tamc_keys.h"
37    # include "FFIELDS.h"
38    # ifdef ALLOW_KPP
39    #  include "KPP.h"
40    # endif
41    # ifdef ALLOW_GMREDI
42    #  include "GMREDI.h"
43    # endif
44  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
45    
 #ifdef ALLOW_KPP  
 # include "KPP.h"  
 #endif  
   
46  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
47  #include "TIMEAVE_STATV.h"  #include "TIMEAVE_STATV.h"
48  #endif  #endif
# Line 88  C     tauAB - Adams-Bashforth timesteppi Line 92  C     tauAB - Adams-Bashforth timesteppi
92        _RS maskUp  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS maskUp  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
93        _RL fVerT   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)        _RL fVerT   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
94        _RL fVerS   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)        _RL fVerS   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
95          _RL fVerTr1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
96        _RL fVerU   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)        _RL fVerU   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
97        _RL fVerV   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)        _RL fVerV   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
98        _RL phiHyd  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL phiHyd  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
# Line 119  c     LOGICAL  DIFFERENT_MULTIPLE Line 124  c     LOGICAL  DIFFERENT_MULTIPLE
124  c     EXTERNAL DIFFERENT_MULTIPLE  c     EXTERNAL DIFFERENT_MULTIPLE
125  Cjmc(end)  Cjmc(end)
126    
 #ifdef ALLOW_AUTODIFF_TAMC  
       INTEGER    isbyte  
       PARAMETER( isbyte = 4 )  
   
       INTEGER act1, act2, act3, act4  
       INTEGER max1, max2, max3  
       INTEGER iikey, kkey  
       INTEGER maximpl  
 #endif /* ALLOW_AUTODIFF_TAMC */  
   
127  C---    The algorithm...  C---    The algorithm...
128  C  C
129  C       "Correction Step"  C       "Correction Step"
# Line 242  CHPF$&                  ) Line 237  CHPF$&                  )
237  C--     Set up work arrays that need valid initial values  C--     Set up work arrays that need valid initial values
238          DO j=1-OLy,sNy+OLy          DO j=1-OLy,sNy+OLy
239           DO i=1-OLx,sNx+OLx           DO i=1-OLx,sNx+OLx
240            rTrans(i,j)   = 0. _d 0            rTrans (i,j)   = 0. _d 0
241            fVerT (i,j,1) = 0. _d 0            fVerT  (i,j,1) = 0. _d 0
242            fVerT (i,j,2) = 0. _d 0            fVerT  (i,j,2) = 0. _d 0
243            fVerS (i,j,1) = 0. _d 0            fVerS  (i,j,1) = 0. _d 0
244            fVerS (i,j,2) = 0. _d 0            fVerS  (i,j,2) = 0. _d 0
245            fVerU (i,j,1) = 0. _d 0            fVerTr1(i,j,1) = 0. _d 0
246            fVerU (i,j,2) = 0. _d 0            fVerTr1(i,j,2) = 0. _d 0
247            fVerV (i,j,1) = 0. _d 0            fVerU  (i,j,1) = 0. _d 0
248            fVerV (i,j,2) = 0. _d 0            fVerU  (i,j,2) = 0. _d 0
249              fVerV  (i,j,1) = 0. _d 0
250              fVerV  (i,j,2) = 0. _d 0
251           ENDDO           ENDDO
252          ENDDO          ENDDO
253    
# Line 271  C This is currently also used by IVDC an Line 268  C This is currently also used by IVDC an
268          jMax = sNy+OLy          jMax = sNy+OLy
269    
270    
271    #ifdef ALLOW_AUTODIFF_TAMC
272    CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
273    CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
274    CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
275    CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
276    CADJ STORE tr1  (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
277    #endif /* ALLOW_AUTODIFF_TAMC */
278    
279  C--     Start of diagnostic loop  C--     Start of diagnostic loop
280          DO k=Nr,1,-1          DO k=Nr,1,-1
281    
282  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
283  C? Patrick, is this formula correct now that we change the loop range?  C? Patrick, is this formula correct now that we change the loop range?
284  C? Do we still need this?  C? Do we still need this?
285           kkey = (ikey-1)*(Nr-2+1) + (k-2) + 1  cph kkey formula corrected.
286    cph Needed for rhok, rhokm1, in the case useGMREDI.
287             kkey = (ikey-1)*Nr + k
288    CADJ STORE rhokm1(:,:) = comlev1_bibj_k ,       key=kkey, byte=isbyte
289    CADJ STORE rhok  (:,:) = comlev1_bibj_k ,       key=kkey, byte=isbyte
290  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
291    
292  C--       Integrate continuity vertically for vertical velocity  C--       Integrate continuity vertically for vertical velocity
# Line 299  C--       Calculate gradients of potenti Line 308  C--       Calculate gradients of potenti
308  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)
309  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
310            IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.) ) THEN            IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.) ) THEN
311    #ifdef ALLOW_AUTODIFF_TAMC
312    CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
313    CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
314    #endif /* ALLOW_AUTODIFF_TAMC */
315              CALL FIND_RHO(              CALL FIND_RHO(
316       I        bi, bj, iMin, iMax, jMin, jMax, k, k, eosType,       I        bi, bj, iMin, iMax, jMin, jMax, k, k, eosType,
317       I        theta, salt,       I        theta, salt,
318       O        rhoK,       O        rhoK,
319       I        myThid )       I        myThid )
320              IF (k.GT.1) CALL FIND_RHO(              IF (k.GT.1) THEN
321    #ifdef ALLOW_AUTODIFF_TAMC
322    CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
323    CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
324    #endif /* ALLOW_AUTODIFF_TAMC */
325                 CALL FIND_RHO(
326       I        bi, bj, iMin, iMax, jMin, jMax, k-1, k, eosType,       I        bi, bj, iMin, iMax, jMin, jMax, k-1, k, eosType,
327       I        theta, salt,       I        theta, salt,
328       O        rhoKm1,       O        rhoKm1,
329       I        myThid )       I        myThid )
330                ENDIF
331              CALL GRAD_SIGMA(              CALL GRAD_SIGMA(
332       I             bi, bj, iMin, iMax, jMin, jMax, k,       I             bi, bj, iMin, iMax, jMin, jMax, k,
333       I             rhoK, rhoKm1, rhoK,       I             rhoK, rhoKm1, rhoK,
# Line 329  c ==> should use sigmaR !!! Line 348  c ==> should use sigmaR !!!
348  C--     end of diagnostic k loop (Nr:1)  C--     end of diagnostic k loop (Nr:1)
349          ENDDO          ENDDO
350    
351    #ifdef ALLOW_AUTODIFF_TAMC
352    cph avoids recomputation of integrate_for_w
353    CADJ STORE wvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
354    #endif /* ALLOW_AUTODIFF_TAMC */
355    
356  #ifdef  ALLOW_OBCS  #ifdef  ALLOW_OBCS
357  C--     Calculate future values on open boundaries  C--     Calculate future values on open boundaries
358          IF (useOBCS) THEN          IF (useOBCS) THEN
# Line 343  C       relaxation terms, etc. Line 367  C       relaxation terms, etc.
367          CALL EXTERNAL_FORCING_SURF(          CALL EXTERNAL_FORCING_SURF(
368       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
369       I             myThid )       I             myThid )
370    #ifdef ALLOW_AUTODIFF_TAMC
371    cph needed for KPP
372    CADJ STORE surfacetendencyU(:,:,bi,bj)
373    CADJ &     = comlev1_bibj, key=ikey, byte=isbyte
374    CADJ STORE surfacetendencyV(:,:,bi,bj)
375    CADJ &     = comlev1_bibj, key=ikey, byte=isbyte
376    CADJ STORE surfacetendencyS(:,:,bi,bj)
377    CADJ &     = comlev1_bibj, key=ikey, byte=isbyte
378    CADJ STORE surfacetendencyT(:,:,bi,bj)
379    CADJ &     = comlev1_bibj, key=ikey, byte=isbyte
380    #endif /* ALLOW_AUTODIFF_TAMC */
381    
382  #ifdef  ALLOW_GMREDI  #ifdef  ALLOW_GMREDI
383    
384    #ifdef ALLOW_AUTODIFF_TAMC
385    CADJ STORE sigmaX(:,:,:) = comlev1, key=ikey, byte=isbyte
386    CADJ STORE sigmaY(:,:,:) = comlev1, key=ikey, byte=isbyte
387    CADJ STORE sigmaR(:,:,:) = comlev1, key=ikey, byte=isbyte
388    #endif /* ALLOW_AUTODIFF_TAMC */
389  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation
390          IF (useGMRedi) THEN          IF (useGMRedi) THEN
391            DO k=1,Nr            DO k=1,Nr
# Line 363  C--     Calculate iso-neutral slopes for Line 404  C--     Calculate iso-neutral slopes for
404            ENDDO            ENDDO
405  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
406          ENDIF          ENDIF
407    
408    #ifdef ALLOW_AUTODIFF_TAMC
409    CADJ STORE Kwx(:,:,:,bi,bj)   = comlev1_bibj, key=ikey, byte=isbyte
410    CADJ STORE Kwy(:,:,:,bi,bj)   = comlev1_bibj, key=ikey, byte=isbyte
411    CADJ STORE Kwz(:,:,:,bi,bj)   = comlev1_bibj, key=ikey, byte=isbyte
412    #endif /* ALLOW_AUTODIFF_TAMC */
413    
414  #endif  /* ALLOW_GMREDI */  #endif  /* ALLOW_GMREDI */
415    
416  #ifdef  ALLOW_KPP  #ifdef  ALLOW_KPP
# Line 370  C--     Compute KPP mixing coefficients Line 418  C--     Compute KPP mixing coefficients
418          IF (useKPP) THEN          IF (useKPP) THEN
419            CALL KPP_CALC(            CALL KPP_CALC(
420       I                  bi, bj, myTime, myThid )       I                  bi, bj, myTime, myThid )
421    #ifdef ALLOW_AUTODIFF_TAMC
422            ELSE
423              CALL KPP_CALC_DUMMY(
424         I                  bi, bj, myTime, myThid )
425    #endif /* ALLOW_AUTODIFF_TAMC */
426          ENDIF          ENDIF
427    
428    #ifdef ALLOW_AUTODIFF_TAMC
429    CADJ STORE KPPghat   (:,:,:,bi,bj)
430    CADJ &   , KPPviscAz (:,:,:,bi,bj)
431    CADJ &   , KPPdiffKzT(:,:,:,bi,bj)
432    CADJ &   , KPPdiffKzS(:,:,:,bi,bj)
433    CADJ &   , KPPfrac   (:,:  ,bi,bj)
434    CADJ &                 = comlev1_bibj, key=ikey, byte=isbyte
435    #endif /* ALLOW_AUTODIFF_TAMC */
436    
437  #endif  /* ALLOW_KPP */  #endif  /* ALLOW_KPP */
438    
439  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 380  CADJ STORE theta(:,:,:,bi,bj) = comlev1_ Line 443  CADJ STORE theta(:,:,:,bi,bj) = comlev1_
443  CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
444  CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
445  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
446    CADJ STORE tr1  (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte
447  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
448    
449  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
# Line 387  C       AIM - atmospheric intermediate m Line 451  C       AIM - atmospheric intermediate m
451  C note(jmc) : phiHyd=0 at this point but is not really used in Molteni Physics  C note(jmc) : phiHyd=0 at this point but is not really used in Molteni Physics
452          IF ( useAIM ) THEN          IF ( useAIM ) THEN
453           CALL TIMER_START('AIM_DO_ATMOS_PHYS      [DYNAMICS]', myThid)           CALL TIMER_START('AIM_DO_ATMOS_PHYS      [DYNAMICS]', myThid)
454           CALL AIM_DO_ATMOS_PHYSICS( phiHyd, myTime, myThid )           CALL AIM_DO_ATMOS_PHYSICS( phiHyd, bi, bj, myTime, myThid )
455           CALL TIMER_STOP ('AIM_DO_ATMOS_PHYS      [DYNAMICS]', myThid)           CALL TIMER_STOP ('AIM_DO_ATMOS_PHYS      [DYNAMICS]', myThid)
456          ENDIF          ENDIF
457  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
# Line 395  C note(jmc) : phiHyd=0 at this point but Line 459  C note(jmc) : phiHyd=0 at this point but
459    
460  C--     Start of thermodynamics loop  C--     Start of thermodynamics loop
461          DO k=Nr,1,-1          DO k=Nr,1,-1
462    #ifdef ALLOW_AUTODIFF_TAMC
463    C? Patrick Is this formula correct?
464    cph Yes, but I rewrote it.
465    cph Also, the KappaR? need the index and subscript k!
466             kkey = (ikey-1)*Nr + k
467    #endif /* ALLOW_AUTODIFF_TAMC */
468    
469  C--       km1    Points to level above k (=k-1)  C--       km1    Points to level above k (=k-1)
470  C--       kup    Cycles through 1,2 to point to layer above  C--       kup    Cycles through 1,2 to point to layer above
# Line 409  C--       kDown  Cycles through 2,1 to p Line 479  C--       kDown  Cycles through 2,1 to p
479            jMin = 1-OLy+2            jMin = 1-OLy+2
480            jMax = sNy+OLy-1            jMax = sNy+OLy-1
481    
 #ifdef ALLOW_AUTODIFF_TAMC  
 CPatrick Is this formula correct?  
          kkey = (ikey-1)*(Nr-1+1) + (k-1) + 1  
 CADJ STORE rTrans(:,:)       = comlev1_bibj_k, key = kkey, byte = isbyte  
 CADJ STORE KappaRT(:,:,:)    = comlev1_bibj_k, key = kkey, byte = isbyte  
 CADJ STORE KappaRS(:,:,:)    = comlev1_bibj_k, key = kkey, byte = isbyte  
 #endif /* ALLOW_AUTODIFF_TAMC */  
   
482  C--      Get temporary terms used by tendency routines  C--      Get temporary terms used by tendency routines
483           CALL CALC_COMMON_FACTORS (           CALL CALC_COMMON_FACTORS (
484       I        bi,bj,iMin,iMax,jMin,jMax,k,       I        bi,bj,iMin,iMax,jMin,jMax,k,
485       O        xA,yA,uTrans,vTrans,rTrans,maskUp,       O        xA,yA,uTrans,vTrans,rTrans,maskUp,
486       I        myThid)       I        myThid)
487    
488    #ifdef ALLOW_AUTODIFF_TAMC
489    CADJ STORE KappaRT(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte
490    CADJ STORE KappaRS(:,:,k)    = comlev1_bibj_k, key=kkey, byte=isbyte
491    #endif /* ALLOW_AUTODIFF_TAMC */
492    
493  #ifdef  INCLUDE_CALC_DIFFUSIVITY_CALL  #ifdef  INCLUDE_CALC_DIFFUSIVITY_CALL
494  C--      Calculate the total vertical diffusivity  C--      Calculate the total vertical diffusivity
495           CALL CALC_DIFFUSIVITY(           CALL CALC_DIFFUSIVITY(
# Line 462  C        and step forward storing result Line 529  C        and step forward storing result
529       U         gSnm1,       U         gSnm1,
530       I         myIter, myThid)       I         myIter, myThid)
531           ENDIF           ENDIF
532             IF ( tr1Stepping ) THEN
533               CALL CALC_GTR1(
534         I         bi,bj,iMin,iMax,jMin,jMax, k,km1,kup,kDown,
535         I         xA,yA,uTrans,vTrans,rTrans,maskUp,
536         I         KappaRT,
537         U         fVerTr1,
538         I         myTime, myThid)
539               tauAB = 0.5d0 + abEps
540               CALL TIMESTEP_TRACER(
541         I         bi,bj,iMin,iMax,jMin,jMax,k,tauAB,
542         I         Tr1, gTr1,
543         U         gTr1NM1,
544         I         myIter, myThid)
545             ENDIF
546    
547  #ifdef   ALLOW_OBCS  #ifdef   ALLOW_OBCS
548  C--      Apply open boundary conditions  C--      Apply open boundary conditions
# Line 484  C--     end of thermodynamic k loop (Nr: Line 565  C--     end of thermodynamic k loop (Nr:
565    
566    
567  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
568  CPatrick? What about this one?  C? Patrick? What about this one?
569             maximpl = 6  cph Keys iikey and idkey don't seem to be needed
570             iikey = (ikey-1)*maximpl  cph since storing occurs on different tape for each
571    cph impldiff call anyways.
572    cph Thus, common block comlev1_impl isn't needed either.
573    cph Storing below needed in the case useGMREDI.
574            iikey = (ikey-1)*maximpl
575  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
576    
577  C--     Implicit diffusion  C--     Implicit diffusion
# Line 495  C--     Implicit diffusion Line 580  C--     Implicit diffusion
580           IF (tempStepping) THEN           IF (tempStepping) THEN
581  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
582              idkey = iikey + 1              idkey = iikey + 1
583    CADJ STORE gTNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
584  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
585              CALL IMPLDIFF(              CALL IMPLDIFF(
586       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 506  C--     Implicit diffusion Line 592  C--     Implicit diffusion
592           IF (saltStepping) THEN           IF (saltStepping) THEN
593  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
594           idkey = iikey + 2           idkey = iikey + 2
595    CADJ STORE gSNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
596  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
597              CALL IMPLDIFF(              CALL IMPLDIFF(
598       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 514  C--     Implicit diffusion Line 601  C--     Implicit diffusion
601       I         myThid )       I         myThid )
602           ENDIF           ENDIF
603    
604             IF (tr1Stepping) THEN
605    #ifdef ALLOW_AUTODIFF_TAMC
606    CADJ STORE gTr1Nm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
607    #endif /* ALLOW_AUTODIFF_TAMC */
608              CALL IMPLDIFF(
609         I      bi, bj, iMin, iMax, jMin, jMax,
610         I      deltaTtracer, KappaRT, recip_HFacC,
611         U      gTr1Nm1,
612         I      myThid )
613             ENDIF
614    
615  #ifdef   ALLOW_OBCS  #ifdef   ALLOW_OBCS
616  C--      Apply open boundary conditions  C--      Apply open boundary conditions
617           IF (useOBCS) THEN           IF (useOBCS) THEN
# Line 613  C--     Implicit viscosity Line 711  C--     Implicit viscosity
711          IF (implicitViscosity.AND.momStepping) THEN          IF (implicitViscosity.AND.momStepping) THEN
712  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
713            idkey = iikey + 3            idkey = iikey + 3
714    CADJ STORE gUNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
715  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
716            CALL IMPLDIFF(            CALL IMPLDIFF(
717       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 621  C--     Implicit viscosity Line 720  C--     Implicit viscosity
720       I         myThid )       I         myThid )
721  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
722            idkey = iikey + 4            idkey = iikey + 4
723    CADJ STORE gVNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
724  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
725            CALL IMPLDIFF(            CALL IMPLDIFF(
726       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 640  C--      Apply open boundary conditions Line 740  C--      Apply open boundary conditions
740  #ifdef    INCLUDE_CD_CODE  #ifdef    INCLUDE_CD_CODE
741  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
742            idkey = iikey + 5            idkey = iikey + 5
743    CADJ STORE vVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
744  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
745            CALL IMPLDIFF(            CALL IMPLDIFF(
746       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 648  C--      Apply open boundary conditions Line 749  C--      Apply open boundary conditions
749       I         myThid )       I         myThid )
750  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
751            idkey = iikey + 6            idkey = iikey + 6
752    CADJ STORE uVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
753  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
754            CALL IMPLDIFF(            CALL IMPLDIFF(
755       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 668  Cjmc(end) Line 770  Cjmc(end)
770    
771  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
772          IF (taveFreq.GT.0.) THEN          IF (taveFreq.GT.0.) THEN
773            CALL TIMEAVE_CUMULATE(phiHydtave, phiHyd, Nr,            CALL TIMEAVE_CUMUL_1T(phiHydtave, phiHyd, Nr,
774       I                              deltaTclock, bi, bj, myThid)       I                              deltaTclock, bi, bj, myThid)
775            IF (ivdc_kappa.NE.0.) THEN            IF (ivdc_kappa.NE.0.) THEN
776              CALL TIMEAVE_CUMULATE(ConvectCountTave, ConvectCount, Nr,              CALL TIMEAVE_CUMULATE(ConvectCountTave, ConvectCount, Nr,
# Line 680  Cjmc(end) Line 782  Cjmc(end)
782         ENDDO         ENDDO
783        ENDDO        ENDDO
784    
785    #ifndef EXCLUDE_DEBUGMODE
786          If (debugMode) THEN
787           CALL DEBUG_STATS_RL(1,EtaN,'EtaN (DYNAMICS)',myThid)
788           CALL DEBUG_STATS_RL(Nr,uVel,'Uvel (DYNAMICS)',myThid)
789           CALL DEBUG_STATS_RL(Nr,vVel,'Vvel (DYNAMICS)',myThid)
790           CALL DEBUG_STATS_RL(Nr,wVel,'Wvel (DYNAMICS)',myThid)
791           CALL DEBUG_STATS_RL(Nr,theta,'Theta (DYNAMICS)',myThid)
792           CALL DEBUG_STATS_RL(Nr,salt,'Salt (DYNAMICS)',myThid)
793           CALL DEBUG_STATS_RL(Nr,Gu,'Gu (DYNAMICS)',myThid)
794           CALL DEBUG_STATS_RL(Nr,Gv,'Gv (DYNAMICS)',myThid)
795           CALL DEBUG_STATS_RL(Nr,Gt,'Gt (DYNAMICS)',myThid)
796           CALL DEBUG_STATS_RL(Nr,Gs,'Gs (DYNAMICS)',myThid)
797           CALL DEBUG_STATS_RL(Nr,GuNm1,'GuNm1 (DYNAMICS)',myThid)
798           CALL DEBUG_STATS_RL(Nr,GvNm1,'GvNm1 (DYNAMICS)',myThid)
799           CALL DEBUG_STATS_RL(Nr,GtNm1,'GtNm1 (DYNAMICS)',myThid)
800           CALL DEBUG_STATS_RL(Nr,GsNm1,'GsNm1 (DYNAMICS)',myThid)
801          ENDIF
802    #endif
803    
804        RETURN        RETURN
805        END        END

Legend:
Removed from v.1.65.2.2  
changed lines
  Added in v.1.73

  ViewVC Help
Powered by ViewVC 1.1.22