438 |
I rhoKm1, rhoKm1, rhoKm1, |
I rhoKm1, rhoKm1, rhoKm1, |
439 |
O sigmaX, sigmaY, sigmaR, |
O sigmaX, sigmaY, sigmaR, |
440 |
I myThid ) |
I myThid ) |
441 |
|
ELSE |
442 |
|
DO j=1-OLy,sNy+OLy |
443 |
|
DO i=1-OLx,sNx+OLx |
444 |
|
sigmaX(i,j,k) = 0. _d 0 |
445 |
|
sigmaY(i,j,k) = 0. _d 0 |
446 |
|
sigmaR(i,j,k) = 0. _d 0 |
447 |
|
ENDDO |
448 |
|
ENDDO |
449 |
ENDIF |
ENDIF |
450 |
#endif |
#endif |
451 |
|
|
595 |
I rhoK, rhotmp, rhoK, |
I rhoK, rhotmp, rhoK, |
596 |
O sigmaX, sigmaY, sigmaR, |
O sigmaX, sigmaY, sigmaR, |
597 |
I myThid ) |
I myThid ) |
598 |
|
ELSE |
599 |
|
DO j=1-OLy,sNy+OLy |
600 |
|
DO i=1-OLx,sNx+OLx |
601 |
|
sigmaX(i,j,k) = 0. _d 0 |
602 |
|
sigmaY(i,j,k) = 0. _d 0 |
603 |
|
sigmaR(i,j,k) = 0. _d 0 |
604 |
|
ENDDO |
605 |
|
ENDDO |
606 |
ENDIF |
ENDIF |
607 |
#endif |
#endif |
608 |
|
|
624 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
625 |
I myThid ) |
I myThid ) |
626 |
|
|
627 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
628 |
|
|
629 |
|
CADJ STORE surfacetendencyu(:,:,bi,bj) |
630 |
|
CADJ & , surfacetendencyv(:,:,bi,bj) |
631 |
|
CADJ & , surfacetendencys(:,:,bi,bj) |
632 |
|
CADJ & , surfacetendencyt(:,:,bi,bj) |
633 |
|
CADJ & = comlev1_bibj, key=ikey, byte=isbyte |
634 |
|
|
635 |
|
# ifdef ALLOW_GMREDI |
636 |
|
CADJ STORE sigmaX(:,:,:) = comlev1, key=ikey, byte=isbyte |
637 |
|
CADJ STORE sigmaY(:,:,:) = comlev1, key=ikey, byte=isbyte |
638 |
|
CADJ STORE sigmaR(:,:,:) = comlev1, key=ikey, byte=isbyte |
639 |
|
# endif /* ALLOW_GMREDI */ |
640 |
|
|
641 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
642 |
|
|
643 |
#ifdef ALLOW_GMREDI |
#ifdef ALLOW_GMREDI |
644 |
IF (useGMRedi) THEN |
IF (useGMRedi) THEN |
645 |
DO k=1, Nr |
DO k=1, Nr |
648 |
I sigmaX, sigmaY, sigmaR, |
I sigmaX, sigmaY, sigmaR, |
649 |
I myThid ) |
I myThid ) |
650 |
ENDDO |
ENDDO |
651 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
652 |
|
ELSE |
653 |
|
DO k=1, Nr |
654 |
|
CALL GMREDI_CALC_TENSOR_DUMMY( |
655 |
|
I bi, bj, iMin, iMax, jMin, jMax, k, |
656 |
|
I sigmaX, sigmaY, sigmaR, |
657 |
|
I myThid ) |
658 |
|
ENDDO |
659 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
660 |
ENDIF |
ENDIF |
661 |
#endif |
#endif |
662 |
|
|
663 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
664 |
CADJ STORE KappaRT(:,:,:) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE KappaRT(:,:,:) = comlev1_bibj, key=ikey, byte=isbyte |
665 |
CADJ STORE KappaRS(:,:,:) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE KappaRS(:,:,:) = comlev1_bibj, key=ikey, byte=isbyte |
666 |
|
|
667 |
CADJ STORE theta(:,:,:,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 |
668 |
CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE Kwx(:,:,:,myThid) = comlev1_bibj, key=ikey, byte=isbyte |
669 |
CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE Kwy(:,:,:,myThid) = comlev1_bibj, key=ikey, byte=isbyte |
670 |
CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE Kwz(:,:,:,myThid) = comlev1_bibj, key=ikey, byte=isbyte |
671 |
|
|
672 |
|
CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
673 |
|
CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
674 |
|
CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
675 |
|
CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
676 |
|
|
677 |
C-- dummy initialization to break data flow because |
C-- dummy initialization to break data flow because |
678 |
C-- calc_div_ghat has a condition for initialization |
C-- calc_div_ghat has a condition for initialization |
715 |
CADJ & , KPPdiffKzT(:,:,:,bi,bj) |
CADJ & , KPPdiffKzT(:,:,:,bi,bj) |
716 |
CADJ & , KPPdiffKzS(:,:,:,bi,bj) |
CADJ & , KPPdiffKzS(:,:,:,bi,bj) |
717 |
CADJ & , KPPfrac (:,: ,bi,bj) |
CADJ & , KPPfrac (:,: ,bi,bj) |
718 |
CADJ & = comlev1_bibj, key = ikey, byte = isbyte |
CADJ & = comlev1_bibj, key=ikey, byte=isbyte |
719 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
720 |
|
|
721 |
#endif /* ALLOW_KPP */ |
#endif /* ALLOW_KPP */ |
818 |
C-- Apply open boundary conditions |
C-- Apply open boundary conditions |
819 |
IF (openBoundaries) THEN |
IF (openBoundaries) THEN |
820 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
821 |
CADJ STORE gunm1(:,:,k,bi,bj) = comlev1_bibj_k |
CADJ STORE gunm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
822 |
CADJ & , key = kkey, byte = isbyte |
CADJ STORE gvnm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte |
823 |
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 |
|
824 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
825 |
|
|
826 |
CALL APPLY_OBCS2( bi, bj, k, myThid ) |
CALL APPLY_OBCS2( bi, bj, k, myThid ) |
829 |
C-- Freeze water |
C-- Freeze water |
830 |
IF (allowFreezing) THEN |
IF (allowFreezing) THEN |
831 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
832 |
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 |
|
833 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
834 |
CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid ) |
CALL FREEZE( bi, bj, iMin, iMax, jMin, jMax, k, myThid ) |
835 |
END IF |
END IF |
867 |
IF (tempStepping) THEN |
IF (tempStepping) THEN |
868 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
869 |
idkey = iikey + 1 |
idkey = iikey + 1 |
870 |
|
CADJ STORE gTNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
871 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
872 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
873 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
879 |
IF (saltStepping) THEN |
IF (saltStepping) THEN |
880 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
881 |
idkey = iikey + 2 |
idkey = iikey + 2 |
882 |
|
CADJ STORE gSNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
883 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
884 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
885 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
897 |
IF (momStepping) THEN |
IF (momStepping) THEN |
898 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
899 |
idkey = iikey + 3 |
idkey = iikey + 3 |
900 |
|
CADJ STORE gUNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
901 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
902 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
903 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
906 |
I myThid ) |
I myThid ) |
907 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
908 |
idkey = iikey + 4 |
idkey = iikey + 4 |
909 |
|
CADJ STORE gVNm1(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
910 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
911 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
912 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
918 |
|
|
919 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
920 |
idkey = iikey + 5 |
idkey = iikey + 5 |
921 |
|
CADJ STORE vVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
922 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
923 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
924 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
927 |
I myThid ) |
I myThid ) |
928 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
929 |
idkey = iikey + 6 |
idkey = iikey + 6 |
930 |
|
CADJ STORE uVelD(:,:,:,bi,bj) = comlev1_bibj , key=ikey, byte=isbyte |
931 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
932 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
933 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |