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 |
312 |
k = 1 |
k = 1 |
313 |
BOTTOM_LAYER = k .EQ. Nr |
BOTTOM_LAYER = k .EQ. Nr |
314 |
|
|
315 |
|
#ifdef DO_PIPELINED_CORRECTION_STEP |
316 |
|
C-- Calculate gradient of surface pressure |
317 |
|
CALL CALC_GRAD_ETA_SURF( |
318 |
|
I bi,bj,iMin,iMax,jMin,jMax, |
319 |
|
O etaSurfX,etaSurfY, |
320 |
|
I myThid) |
321 |
|
C-- Update fields in top level according to tendency terms |
322 |
|
CALL CORRECTION_STEP( |
323 |
|
I bi,bj,iMin,iMax,jMin,jMax,k, |
324 |
|
I etaSurfX,etaSurfY,myTime,myThid) |
325 |
|
|
326 |
|
#ifdef ALLOW_OBCS |
327 |
|
IF (openBoundaries) THEN |
328 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
329 |
|
CADJ STORE uvel (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
330 |
|
CADJ STORE vvel (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
331 |
|
CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
332 |
|
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
333 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
334 |
|
CALL APPLY_OBCS1( bi, bj, k, myThid ) |
335 |
|
END IF |
336 |
|
#endif |
337 |
|
|
338 |
|
IF ( .NOT. BOTTOM_LAYER ) THEN |
339 |
|
C-- Update fields in layer below according to tendency terms |
340 |
|
CALL CORRECTION_STEP( |
341 |
|
I bi,bj,iMin,iMax,jMin,jMax,k+1, |
342 |
|
I etaSurfX,etaSurfY,myTime,myThid) |
343 |
|
#ifdef ALLOW_OBCS |
344 |
|
IF (openBoundaries) THEN |
345 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
346 |
|
CADJ STORE uvel (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
347 |
|
CADJ STORE vvel (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
348 |
|
CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
349 |
|
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj, key = ikey, byte = isbyte |
350 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
351 |
|
CALL APPLY_OBCS1( bi, bj, k+1, myThid ) |
352 |
|
END IF |
353 |
|
#endif |
354 |
|
ENDIF |
355 |
|
#endif |
356 |
|
|
357 |
C-- Density of 1st level (below W(1)) reference to level 1 |
C-- Density of 1st level (below W(1)) reference to level 1 |
358 |
#ifdef INCLUDE_FIND_RHO_CALL |
#ifdef INCLUDE_FIND_RHO_CALL |
359 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
388 |
CADJ STORE rhoKp1(:,:) = comlev1_bibj, key = ikey, byte = isbyte |
CADJ STORE rhoKp1(:,:) = comlev1_bibj, key = ikey, byte = isbyte |
389 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
390 |
|
|
391 |
|
#ifdef INCLUDE_CONVECT_CALL |
392 |
|
|
393 |
|
CALL CONVECT( |
394 |
|
I bi,bj,iMin,iMax,jMin,jMax,k+1,rhoKm1,rhoKp1, |
395 |
|
U ConvectCount, |
396 |
|
I myTime,myIter,myThid) |
397 |
|
|
398 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
399 |
|
CADJ STORE theta(:,:,k+1,bi,bj),theta(:,:,k,bi,bj) |
400 |
|
CADJ & = comlev1_bibj, key = ikey, byte = isbyte |
401 |
|
CADJ STORE salt (:,:,k+1,bi,bj),salt (:,:,k,bi,bj) |
402 |
|
CADJ & = comlev1_bibj, key = ikey, byte = isbyte |
403 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
404 |
|
|
405 |
|
#endif |
406 |
|
|
407 |
C-- Implicit Vertical Diffusion for Convection |
C-- Implicit Vertical Diffusion for Convection |
408 |
IF (ivdc_kappa.NE.0.) THEN |
IF (ivdc_kappa.NE.0.) THEN |
409 |
CALL CALC_IVDC( |
CALL CALC_IVDC( |
412 |
I myTime,myIter,myThid) |
I myTime,myIter,myThid) |
413 |
ENDIF |
ENDIF |
414 |
|
|
415 |
|
C-- Recompute density after mixing |
416 |
|
#ifdef INCLUDE_FIND_RHO_CALL |
417 |
|
CALL FIND_RHO( |
418 |
|
I bi, bj, iMin, iMax, jMin, jMax, k, k, eosType, |
419 |
|
O rhoKm1, |
420 |
|
I myThid ) |
421 |
|
#endif |
422 |
ENDIF |
ENDIF |
423 |
|
|
424 |
C-- Calculate buoyancy |
C-- Calculate buoyancy |
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 |
|
|
464 |
#ifdef DO_PIPELINED_CORRECTION_STEP |
#ifdef DO_PIPELINED_CORRECTION_STEP |
465 |
IF ( .NOT. BOTTOM_LAYER ) THEN |
IF ( .NOT. BOTTOM_LAYER ) THEN |
466 |
C-- Update fields in layer below according to tendency terms |
C-- Update fields in layer below according to tendency terms |
467 |
|
CALL CORRECTION_STEP( |
468 |
|
I bi,bj,iMin,iMax,jMin,jMax,k+1, |
469 |
|
I etaSurfX,etaSurfY,myTime,myThid) |
470 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
471 |
IF (openBoundaries) THEN |
IF (openBoundaries) THEN |
472 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
479 |
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k |
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k |
480 |
CADJ & , key = kkey, byte = isbyte |
CADJ & , key = kkey, byte = isbyte |
481 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
482 |
|
CALL APPLY_OBCS1( bi, bj, k+1, myThid ) |
483 |
END IF |
END IF |
484 |
#endif |
#endif |
485 |
ENDIF |
ENDIF |
525 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
526 |
#endif |
#endif |
527 |
|
|
528 |
|
#ifdef INCLUDE_CONVECT_CALL |
529 |
|
CALL CONVECT( |
530 |
|
I bi,bj,iMin,iMax,jMin,jMax,k+1,rhoK,rhoKp1, |
531 |
|
U ConvectCount, |
532 |
|
I myTime,myIter,myThid) |
533 |
|
|
534 |
|
#endif |
535 |
|
|
536 |
C-- Implicit Vertical Diffusion for Convection |
C-- Implicit Vertical Diffusion for Convection |
537 |
IF (ivdc_kappa.NE.0.) THEN |
IF (ivdc_kappa.NE.0.) THEN |
538 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
544 |
I myTime,myIter,myThid) |
I myTime,myIter,myThid) |
545 |
END IF |
END IF |
546 |
|
|
547 |
|
C-- Recompute density after mixing |
548 |
|
#ifdef INCLUDE_FIND_RHO_CALL |
549 |
|
#ifdef ALLOW_AUTODIFF_TAMC |
550 |
|
CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k |
551 |
|
CADJ & , key = kkey, byte = isbyte |
552 |
|
CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k |
553 |
|
CADJ & , key = kkey, byte = isbyte |
554 |
|
#endif /* ALLOW_AUTODIFF_TAMC */ |
555 |
|
CALL FIND_RHO( |
556 |
|
I bi, bj, iMin, iMax, jMin, jMax, k, k, eosType, |
557 |
|
O rhoK, |
558 |
|
I myThid ) |
559 |
|
#endif |
560 |
|
|
561 |
C-- IF (.NOT. BOTTOM_LAYER) ends here |
C-- IF (.NOT. BOTTOM_LAYER) ends here |
562 |
ENDIF |
ENDIF |
563 |
|
|
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 |
|
|
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 |
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 |
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 */ |
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 |
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 ) |
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 |
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, |
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, |
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, |
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, |
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, |
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, |