/[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.54 by heimbach, Mon Nov 13 16:32:57 2000 UTC revision 1.56 by heimbach, Mon Jan 29 20:05:46 2001 UTC
# Line 33  C     == Global variables === Line 33  C     == Global variables ===
33  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
34  # include "tamc.h"  # include "tamc.h"
35  # include "tamc_keys.h"  # include "tamc_keys.h"
36    # include "FFIELDS.h"
37    # ifdef ALLOW_KPP
38    #  include "KPP.h"
39    # endif
40    # ifdef ALLOW_GMREDI
41    #  include "GMREDI.h"
42    # endif
43  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
44    
 #ifdef ALLOW_KPP  
 # include "KPP.h"  
 #endif  
   
45  C     == Routine arguments ==  C     == Routine arguments ==
46  C     myTime - Current time in simulation  C     myTime - Current time in simulation
47  C     myIter - Current iteration number in simulation  C     myIter - Current iteration number in simulation
# Line 438  C--     phiHyd(z=0)=0 Line 441  C--     phiHyd(z=0)=0
441       I            rhoKm1, rhoKm1, rhoKm1,       I            rhoKm1, rhoKm1, rhoKm1,
442       O            sigmaX, sigmaY, sigmaR,       O            sigmaX, sigmaY, sigmaR,
443       I            myThid )       I            myThid )
444            ELSE
445             DO j=1-OLy,sNy+OLy
446              DO i=1-OLx,sNx+OLx
447               sigmaX(i,j,k) = 0. _d 0
448               sigmaY(i,j,k) = 0. _d 0
449               sigmaR(i,j,k) = 0. _d 0
450              ENDDO
451             ENDDO
452          ENDIF          ENDIF
453  #endif  #endif
454    
# Line 587  CADJ &   , key = kkey, byte = isbyte Line 598  CADJ &   , key = kkey, byte = isbyte
598       I             rhoK, rhotmp, rhoK,       I             rhoK, rhotmp, rhoK,
599       O             sigmaX, sigmaY, sigmaR,       O             sigmaX, sigmaY, sigmaR,
600       I             myThid )       I             myThid )
601             ELSE
602              DO j=1-OLy,sNy+OLy
603               DO i=1-OLx,sNx+OLx
604                sigmaX(i,j,k) = 0. _d 0
605                sigmaY(i,j,k) = 0. _d 0
606                sigmaR(i,j,k) = 0. _d 0
607               ENDDO
608              ENDDO
609           ENDIF           ENDIF
610  #endif  #endif
611    
# Line 608  C     relaxation terms, etc. Line 627  C     relaxation terms, etc.
627       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
628       I             myThid )       I             myThid )
629    
630    #ifdef ALLOW_AUTODIFF_TAMC
631    
632    CADJ STORE surfacetendencyu(:,:,bi,bj)
633    CADJ &   , surfacetendencyv(:,:,bi,bj)
634    CADJ &   , surfacetendencys(:,:,bi,bj)
635    CADJ &   , surfacetendencyt(:,:,bi,bj)
636    CADJ &                        = comlev1_bibj, key=ikey, byte=isbyte
637    
638    # ifdef ALLOW_GMREDI
639    CADJ STORE sigmaX(:,:,:) = comlev1, key=ikey, byte=isbyte
640    CADJ STORE sigmaY(:,:,:) = comlev1, key=ikey, byte=isbyte
641    CADJ STORE sigmaR(:,:,:) = comlev1, key=ikey, byte=isbyte
642    # endif /* ALLOW_GMREDI */
643    
644    #endif /* ALLOW_AUTODIFF_TAMC */
645    
646  #ifdef ALLOW_GMREDI  #ifdef ALLOW_GMREDI
647          IF (useGMRedi) THEN          IF (useGMRedi) THEN
648            DO k=1, Nr            DO k=1, Nr
# Line 616  C     relaxation terms, etc. Line 651  C     relaxation terms, etc.
651       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
652       I             myThid )       I             myThid )
653            ENDDO            ENDDO
654    #ifdef ALLOW_AUTODIFF_TAMC
655            ELSE
656              DO k=1, Nr
657                CALL GMREDI_CALC_TENSOR_DUMMY(
658         I             bi, bj, iMin, iMax, jMin, jMax, k,
659         I             sigmaX, sigmaY, sigmaR,
660         I             myThid )
661              ENDDO
662    #endif /* ALLOW_AUTODIFF_TAMC */
663          ENDIF          ENDIF
664  #endif  #endif
665    
666  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
667  CADJ STORE KappaRT(:,:,:)     = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE KappaRT(:,:,:)     = comlev1_bibj, key=ikey, byte=isbyte
668  CADJ STORE KappaRS(:,:,:)     = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE KappaRS(:,:,:)     = comlev1_bibj, key=ikey, byte=isbyte
669    
670  CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  #ifdef ALLOW_GMREDI
671  CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  C-- R.G. We need to define a new tape since Kw use mythid instead of bi,bj
672  CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE Kwx(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
673  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte  CADJ STORE Kwy(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
674    CADJ STORE Kwz(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
675    #endif
676    
677    CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
678    CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
679    CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
680    CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
681    =======
682    C-- R.G. We need to define a new tape since Kw use mythid instead of bi,bj
683    CADJ STORE Kwx(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
684    CADJ STORE Kwy(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
685    CADJ STORE Kwz(:,:,:,myThid)  = comlev1_bibj, key=ikey, byte=isbyte
686    
687    CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
688    CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
689    CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
690    CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte
691    
692  C--     dummy initialization to break data flow because  C--     dummy initialization to break data flow because
693  C--     calc_div_ghat has a condition for initialization  C--     calc_div_ghat has a condition for initialization
# Line 669  CADJ &   , KPPviscAz (:,:,:,bi,bj) Line 730  CADJ &   , KPPviscAz (:,:,:,bi,bj)
730  CADJ &   , KPPdiffKzT(:,:,:,bi,bj)  CADJ &   , KPPdiffKzT(:,:,:,bi,bj)
731  CADJ &   , KPPdiffKzS(:,:,:,bi,bj)  CADJ &   , KPPdiffKzS(:,:,:,bi,bj)
732  CADJ &   , KPPfrac   (:,:  ,bi,bj)  CADJ &   , KPPfrac   (:,:  ,bi,bj)
733  CADJ &                 = comlev1_bibj, key = ikey, byte = isbyte  CADJ &                 = comlev1_bibj, key=ikey, byte=isbyte
734  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
735    
736  #endif /* ALLOW_KPP */  #endif /* ALLOW_KPP */
# Line 692  C--      kDown  Cycles through 2,1 to po Line 753  C--      kDown  Cycles through 2,1 to po
753    
754  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
755           kkey = (ikey-1)*(Nr-1+1) + (k-1) + 1           kkey = (ikey-1)*(Nr-1+1) + (k-1) + 1
756    CADJ STORE rvel  (:,:,kdown)  = comlev1_bibj_k, key=kkey, byte=isbyte
757  CADJ STORE rvel  (:,:,kDown) = comlev1_bibj_k, key = kkey, byte = isbyte  CADJ STORE rTrans(:,:)        = comlev1_bibj_k, key=kkey, byte=isbyte
758  CADJ STORE rTrans(:,:)       = comlev1_bibj_k, key = kkey, byte = isbyte  CADJ STORE KappaRT(:,:,k)     = comlev1_bibj_k, key=kkey, byte=isbyte
759  CADJ STORE KappaRT(:,:,:)    = comlev1_bibj_k, key = kkey, byte = isbyte  CADJ STORE KappaRS(:,:,k)     = comlev1_bibj_k, key=kkey, byte=isbyte
 CADJ STORE KappaRS(:,:,:)    = comlev1_bibj_k, key = kkey, byte = isbyte  
760  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
761    
762  C--      Get temporary terms used by tendency routines  C--      Get temporary terms used by tendency routines
# Line 772  C--      Prediction step (step forward a Line 832  C--      Prediction step (step forward a
832  C--      Apply open boundary conditions  C--      Apply open boundary conditions
833           IF (openBoundaries) THEN           IF (openBoundaries) THEN
834  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
835  CADJ STORE gunm1(:,:,k,bi,bj) = comlev1_bibj_k  CADJ STORE gunm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
836  CADJ &   , key = kkey, byte = isbyte  CADJ STORE gvnm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
837  CADJ STORE gvnm1(:,:,k,bi,bj) = comlev1_bibj_k  CADJ STORE gwnm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
 CADJ &   , key = kkey, byte = isbyte  
 CADJ STORE gwnm1(:,:,k,bi,bj) = comlev1_bibj_k  
 CADJ &   , key = kkey, byte = isbyte  
838  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
839    
840              CALL APPLY_OBCS2( bi, bj, k, myThid )              CALL APPLY_OBCS2( bi, bj, k, myThid )
# Line 786  CADJ &   , key = kkey, byte = isbyte Line 843  CADJ &   , key = kkey, byte = isbyte
843  C--      Freeze water  C--      Freeze water
844           IF (allowFreezing) THEN           IF (allowFreezing) THEN
845  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
846  CADJ STORE gTNm1(:,:,k,bi,bj) = comlev1_bibj_k  CADJ STORE gTNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
 CADJ &   , key = kkey, byte = isbyte  
847  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
848              CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid )              CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid )
849           END IF           END IF
# Line 825  C--     Implicit diffusion Line 881  C--     Implicit diffusion
881           IF (tempStepping) THEN           IF (tempStepping) THEN
882  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
883              idkey = iikey + 1              idkey = iikey + 1
884    CADJ STORE gTNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
885  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
886              CALL IMPLDIFF(              CALL IMPLDIFF(
887       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 836  C--     Implicit diffusion Line 893  C--     Implicit diffusion
893           IF (saltStepping) THEN           IF (saltStepping) THEN
894  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
895           idkey = iikey + 2           idkey = iikey + 2
896    CADJ STORE gSNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
897  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
898              CALL IMPLDIFF(              CALL IMPLDIFF(
899       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 853  C--     Implicit viscosity Line 911  C--     Implicit viscosity
911           IF (momStepping) THEN           IF (momStepping) THEN
912  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
913           idkey = iikey + 3           idkey = iikey + 3
914    CADJ STORE gUNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
915  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
916            CALL IMPLDIFF(            CALL IMPLDIFF(
917       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 861  C--     Implicit viscosity Line 920  C--     Implicit viscosity
920       I         myThid )       I         myThid )
921  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
922           idkey = iikey + 4           idkey = iikey + 4
923    CADJ STORE gVNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
924  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
925            CALL IMPLDIFF(            CALL IMPLDIFF(
926       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 872  C--     Implicit viscosity Line 932  C--     Implicit viscosity
932    
933  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
934           idkey = iikey + 5           idkey = iikey + 5
935    CADJ STORE vVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
936  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
937            CALL IMPLDIFF(            CALL IMPLDIFF(
938       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,
# Line 880  C--     Implicit viscosity Line 941  C--     Implicit viscosity
941       I         myThid )       I         myThid )
942  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
943          idkey = iikey + 6          idkey = iikey + 6
944    CADJ STORE uVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte
945  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
946            CALL IMPLDIFF(            CALL IMPLDIFF(
947       I         bi, bj, iMin, iMax, jMin, jMax,       I         bi, bj, iMin, iMax, jMin, jMax,

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.56

  ViewVC Help
Powered by ViewVC 1.1.22