/[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.167 by jmc, Tue Nov 5 13:34:31 2013 UTC revision 1.168 by jmc, Fri Jan 3 16:19:04 2014 UTC
# Line 346  C     just ensure that all memory refere Line 346  C     just ensure that all memory refere
346  C     point numbers. This prevents spurious hardware signals due to  C     point numbers. This prevents spurious hardware signals due to
347  C     uninitialised but inert locations.  C     uninitialised but inert locations.
348    
349  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF
350          DO k=1,Nr          DO k=1,Nr
351           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
352            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
 cph(  
353  c--   need some re-initialisation here to break dependencies  c--   need some re-initialisation here to break dependencies
 cph)  
354             gU(i,j,k,bi,bj) = 0. _d 0             gU(i,j,k,bi,bj) = 0. _d 0
355             gV(i,j,k,bi,bj) = 0. _d 0             gV(i,j,k,bi,bj) = 0. _d 0
356            ENDDO            ENDDO
357           ENDDO           ENDDO
358          ENDDO          ENDDO
359  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF */
360          DO j=1-OLy,sNy+OLy          DO j=1-OLy,sNy+OLy
361           DO i=1-OLx,sNx+OLx           DO i=1-OLx,sNx+OLx
362            fVerU  (i,j,1) = 0. _d 0            fVerU  (i,j,1) = 0. _d 0
# Line 375  cph) Line 373  cph)
373            phiSurfY(i,j)  = 0. _d 0            phiSurfY(i,j)  = 0. _d 0
374            guDissip(i,j)  = 0. _d 0            guDissip(i,j)  = 0. _d 0
375            gvDissip(i,j)  = 0. _d 0            gvDissip(i,j)  = 0. _d 0
376  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF
377            phiHydLow(i,j,bi,bj) = 0. _d 0            phiHydLow(i,j,bi,bj) = 0. _d 0
378  # if (defined NONLIN_FRSURF) && (defined ALLOW_MOM_FLUXFORM)  # if (defined NONLIN_FRSURF) && (defined ALLOW_MOM_FLUXFORM)
379  #  ifndef DISABLE_RSTAR_CODE  #  ifndef DISABLE_RSTAR_CODE
 #   ifndef ALLOW_AUTODIFF_OPENAD  
380            dWtransC(i,j,bi,bj) = 0. _d 0            dWtransC(i,j,bi,bj) = 0. _d 0
381            dWtransU(i,j,bi,bj) = 0. _d 0            dWtransU(i,j,bi,bj) = 0. _d 0
382            dWtransV(i,j,bi,bj) = 0. _d 0            dWtransV(i,j,bi,bj) = 0. _d 0
 #   endif  
383  #  endif  #  endif
384  # endif  # endif
385  #endif  #endif /* ALLOW_AUTODIFF */
386           ENDDO           ENDDO
387          ENDDO          ENDDO
388    
# Line 416  CADJ &                 = comlev1_bibj, k Line 412  CADJ &                 = comlev1_bibj, k
412  #endif /* ALLOW_KPP */  #endif /* ALLOW_KPP */
413  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
414    
415  #if (defined INCLUDE_CALC_DIFFUSIVITY_CALL) && !(defined ALLOW_AUTODIFF)  #ifndef ALLOW_AUTODIFF
416          IF ( .NOT.momViscosity ) THEN          IF ( .NOT.momViscosity ) THEN
417  #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL and not ALLOW_AUTODIFF */  #endif
418            DO k=1,Nr            DO k=1,Nr
419             DO j=1-OLy,sNy+OLy             DO j=1-OLy,sNy+OLy
420              DO i=1-OLx,sNx+OLx              DO i=1-OLx,sNx+OLx
# Line 427  CADJ &                 = comlev1_bibj, k Line 423  CADJ &                 = comlev1_bibj, k
423              ENDDO              ENDDO
424             ENDDO             ENDDO
425            ENDDO            ENDDO
426    #ifndef ALLOW_AUTODIFF
427            ENDIF
428    #endif
429  #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL  #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL
430  C--     Calculate the total vertical viscosity  C--     Calculate the total vertical viscosity
 #ifdef ALLOW_AUTODIFF  
431          IF ( momViscosity ) THEN          IF ( momViscosity ) THEN
 #else  
         ELSE  
 #endif  
432            CALL CALC_VISCOSITY(            CALL CALC_VISCOSITY(
433       I            bi,bj, iMin,iMax,jMin,jMax,       I            bi,bj, iMin,iMax,jMin,jMax,
434       O            KappaRU, KappaRV,       O            KappaRU, KappaRV,
# Line 485  C--       kDown  Cycles through 2,1 to p Line 480  C--       kDown  Cycles through 2,1 to p
480    
481  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
482           kkey = (idynkey-1)*Nr + k           kkey = (idynkey-1)*Nr + k
 c  
483  CADJ STORE totPhiHyd (:,:,k,bi,bj)  CADJ STORE totPhiHyd (:,:,k,bi,bj)
484  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
 CADJ STORE phiHydLow (:,:,bi,bj)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
485  CADJ STORE theta (:,:,k,bi,bj)  CADJ STORE theta (:,:,k,bi,bj)
486  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
487  CADJ STORE salt  (:,:,k,bi,bj)  CADJ STORE salt  (:,:,k,bi,bj)
# Line 504  CADJ STORE  phiHydC (:,:) Line 496  CADJ STORE  phiHydC (:,:)
496  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
497  CADJ STORE  phiHydF (:,:)  CADJ STORE  phiHydF (:,:)
498  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
 CADJ STORE  guDissip (:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE  gvDissip (:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE  fVerU (:,:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE  fVerV (:,:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
499  CADJ STORE gU(:,:,k,bi,bj)  CADJ STORE gU(:,:,k,bi,bj)
500  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
501  CADJ STORE gV(:,:,k,bi,bj)  CADJ STORE gV(:,:,k,bi,bj)
# Line 541  CADJ &     = comlev1_bibj_k, key=kkey, b Line 525  CADJ &     = comlev1_bibj_k, key=kkey, b
525  CADJ STORE vVelD(:,:,k,bi,bj)  CADJ STORE vVelD(:,:,k,bi,bj)
526  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
527  #  endif  #  endif
528  # endif  # endif /* NONLIN_FRSURF */
 # ifdef ALLOW_DEPTH_CONTROL  
 CADJ STORE  fVerU (:,:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
 CADJ STORE  fVerV (:,:,:)  
 CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  
 # endif  
529  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
530    
531  C--      Integrate hydrostatic balance for phiHyd with BC of phiHyd(z=0)=0  C--      Integrate hydrostatic balance for phiHyd with BC of phiHyd(z=0)=0
# Line 579  C--      Integrate hydrostatic balance f Line 557  C--      Integrate hydrostatic balance f
557  C--      Calculate accelerations in the momentum equations (gU, gV, ...)  C--      Calculate accelerations in the momentum equations (gU, gV, ...)
558  C        and step forward storing the result in gU, gV, etc...  C        and step forward storing the result in gU, gV, etc...
559           IF ( momStepping ) THEN           IF ( momStepping ) THEN
560    #ifdef ALLOW_AUTODIFF
561               DO j=1-OLy,sNy+OLy
562                DO i=1-OLx,sNx+OLx
563                  guDissip(i,j)  = 0. _d 0
564                  gvDissip(i,j)  = 0. _d 0
565                ENDDO
566               ENDDO
567    #endif /* ALLOW_AUTODIFF */
568  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
569  # ifdef NONLIN_FRSURF  # if (defined NONLIN_FRSURF) && (defined ALLOW_MOM_FLUXFORM)
570  #  if (defined ALLOW_MOM_FLUXFORM) && !(defined DISABLE_RSTAR_CODE)  #  ifndef DISABLE_RSTAR_CODE
571  CADJ STORE dWtransC(:,:,bi,bj)  CADJ STORE dWtransC(:,:,bi,bj)
572  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
573  CADJ STORE dWtransU(:,:,bi,bj)  CADJ STORE dWtransU(:,:,bi,bj)
# Line 589  CADJ &     = comlev1_bibj_k, key=kkey, b Line 575  CADJ &     = comlev1_bibj_k, key=kkey, b
575  CADJ STORE dWtransV(:,:,bi,bj)  CADJ STORE dWtransV(:,:,bi,bj)
576  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte
577  #  endif  #  endif
578  CADJ STORE fVerU(:,:,:)  # endif /* NONLIN_FRSURF and ALLOW_MOM_FLUXFORM */
579  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  # if (defined NONLIN_FRSURF) || (defined ALLOW_DEPTH_CONTROL)
580  CADJ STORE fVerV(:,:,:)  CADJ STORE fVerU(:,:,:) = comlev1_bibj_k, key=kkey, byte=isbyte
581  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE fVerV(:,:,:) = comlev1_bibj_k, key=kkey, byte=isbyte
582  # endif /* NONLIN_FRSURF */  # endif
583  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
584             IF (.NOT. vectorInvariantMomentum) THEN             IF (.NOT. vectorInvariantMomentum) THEN
585  #ifdef ALLOW_MOM_FLUXFORM  #ifdef ALLOW_MOM_FLUXFORM
# Line 662  C--     Implicit Vertical advection & vi Line 648  C--     Implicit Vertical advection & vi
648          IF     ( implicitViscosity ) THEN          IF     ( implicitViscosity ) THEN
649  #endif /* INCLUDE_IMPLVERTADV_CODE */  #endif /* INCLUDE_IMPLVERTADV_CODE */
650  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
 CADJ STORE KappaRU(:,:,:) = comlev1_bibj , key=idynkey, byte=isbyte  
651  CADJ STORE gU(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte  CADJ STORE gU(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte
652  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
653            CALL IMPLDIFF(            CALL IMPLDIFF(
# Line 671  CADJ STORE gU(:,:,:,bi,bj) = comlev1_bib Line 656  CADJ STORE gU(:,:,:,bi,bj) = comlev1_bib
656       U         gU,       U         gU,
657       I         myThid )       I         myThid )
658  #ifdef    ALLOW_AUTODIFF_TAMC  #ifdef    ALLOW_AUTODIFF_TAMC
 CADJ STORE KappaRV(:,:,:) = comlev1_bibj , key=idynkey, byte=isbyte  
659  CADJ STORE gV(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte  CADJ STORE gV(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte
660  #endif    /* ALLOW_AUTODIFF_TAMC */  #endif    /* ALLOW_AUTODIFF_TAMC */
661            CALL IMPLDIFF(            CALL IMPLDIFF(

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.168

  ViewVC Help
Powered by ViewVC 1.1.22