131 |
C phiSurfY or geopotential (atmos) in X and Y direction |
C phiSurfY or geopotential (atmos) in X and Y direction |
132 |
C guDissip :: dissipation tendency (all explicit terms), u component |
C guDissip :: dissipation tendency (all explicit terms), u component |
133 |
C gvDissip :: dissipation tendency (all explicit terms), v component |
C gvDissip :: dissipation tendency (all explicit terms), v component |
134 |
C KappaRU :: vertical viscosity for velocity U-component |
C kappaRU :: vertical viscosity for velocity U-component |
135 |
C KappaRV :: vertical viscosity for velocity V-component |
C kappaRV :: vertical viscosity for velocity V-component |
136 |
C iMin, iMax :: Ranges and sub-block indices on which calculations |
C iMin, iMax :: Ranges and sub-block indices on which calculations |
137 |
C jMin, jMax are applied. |
C jMin, jMax are applied. |
138 |
C bi, bj :: tile indices |
C bi, bj :: tile indices |
150 |
_RL phiSurfY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL phiSurfY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
151 |
_RL guDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL guDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
152 |
_RL gvDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gvDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
153 |
_RL KappaRU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL kappaRU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
154 |
_RL KappaRV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL kappaRV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) |
155 |
#ifdef ALLOW_SMAG_3D |
#ifdef ALLOW_SMAG_3D |
156 |
C str11 :: strain component Vxx @ grid-cell center |
C str11 :: strain component Vxx @ grid-cell center |
157 |
C str22 :: strain component Vyy @ grid-cell center |
C str22 :: strain component Vyy @ grid-cell center |
272 |
C-- HPF directive to help TAMC |
C-- HPF directive to help TAMC |
273 |
CHPF$ INDEPENDENT, NEW (fVerU,fVerV |
CHPF$ INDEPENDENT, NEW (fVerU,fVerV |
274 |
CHPF$& ,phiHydF |
CHPF$& ,phiHydF |
275 |
CHPF$& ,KappaRU,KappaRV |
CHPF$& ,kappaRU,kappaRV |
276 |
CHPF$& ) |
CHPF$& ) |
277 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
278 |
|
|
366 |
#ifndef ALLOW_AUTODIFF |
#ifndef ALLOW_AUTODIFF |
367 |
IF ( .NOT.momViscosity ) THEN |
IF ( .NOT.momViscosity ) THEN |
368 |
#endif |
#endif |
369 |
DO k=1,Nr |
DO k=1,Nr+1 |
370 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
371 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
372 |
KappaRU(i,j,k) = 0. _d 0 |
kappaRU(i,j,k) = 0. _d 0 |
373 |
KappaRV(i,j,k) = 0. _d 0 |
kappaRV(i,j,k) = 0. _d 0 |
374 |
ENDDO |
ENDDO |
375 |
ENDDO |
ENDDO |
376 |
ENDDO |
ENDDO |
382 |
IF ( momViscosity ) THEN |
IF ( momViscosity ) THEN |
383 |
CALL CALC_VISCOSITY( |
CALL CALC_VISCOSITY( |
384 |
I bi,bj, iMin,iMax,jMin,jMax, |
I bi,bj, iMin,iMax,jMin,jMax, |
385 |
O KappaRU, KappaRV, |
O kappaRU, kappaRV, |
386 |
I myThid ) |
I myThid ) |
387 |
ENDIF |
ENDIF |
388 |
#endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */ |
#endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */ |
396 |
#endif /* ALLOW_SMAG_3D */ |
#endif /* ALLOW_SMAG_3D */ |
397 |
|
|
398 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
399 |
CADJ STORE KappaRU(:,:,:) |
CADJ STORE kappaRU(:,:,:) |
400 |
CADJ & = comlev1_bibj, key=idynkey, byte=isbyte |
CADJ & = comlev1_bibj, key=idynkey, byte=isbyte |
401 |
CADJ STORE KappaRV(:,:,:) |
CADJ STORE kappaRV(:,:,:) |
402 |
CADJ & = comlev1_bibj, key=idynkey, byte=isbyte |
CADJ & = comlev1_bibj, key=idynkey, byte=isbyte |
403 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
404 |
|
|
525 |
#ifdef ALLOW_MOM_FLUXFORM |
#ifdef ALLOW_MOM_FLUXFORM |
526 |
CALL MOM_FLUXFORM( |
CALL MOM_FLUXFORM( |
527 |
I bi,bj,k,iMin,iMax,jMin,jMax, |
I bi,bj,k,iMin,iMax,jMin,jMax, |
528 |
I KappaRU, KappaRV, |
I kappaRU, kappaRV, |
529 |
U fVerU(1-OLx,1-OLy,kUp), fVerV(1-OLx,1-OLy,kUp), |
U fVerU(1-OLx,1-OLy,kUp), fVerV(1-OLx,1-OLy,kUp), |
530 |
O fVerU(1-OLx,1-OLy,kDown), fVerV(1-OLx,1-OLy,kDown), |
O fVerU(1-OLx,1-OLy,kDown), fVerV(1-OLx,1-OLy,kDown), |
531 |
O guDissip, gvDissip, |
O guDissip, gvDissip, |
535 |
#ifdef ALLOW_MOM_VECINV |
#ifdef ALLOW_MOM_VECINV |
536 |
CALL MOM_VECINV( |
CALL MOM_VECINV( |
537 |
I bi,bj,k,iMin,iMax,jMin,jMax, |
I bi,bj,k,iMin,iMax,jMin,jMax, |
538 |
I KappaRU, KappaRV, |
I kappaRU, kappaRV, |
539 |
I fVerU(1-OLx,1-OLy,kUp), fVerV(1-OLx,1-OLy,kUp), |
I fVerU(1-OLx,1-OLy,kUp), fVerV(1-OLx,1-OLy,kUp), |
540 |
O fVerU(1-OLx,1-OLy,kDown), fVerV(1-OLx,1-OLy,kDown), |
O fVerU(1-OLx,1-OLy,kDown), fVerV(1-OLx,1-OLy,kDown), |
541 |
O guDissip, gvDissip, |
O guDissip, gvDissip, |
592 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
593 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
594 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
595 |
I -1, KappaRU, recip_hFacW(1-OLx,1-OLy,1,bi,bj), |
I -1, kappaRU, recip_hFacW(1-OLx,1-OLy,1,bi,bj), |
596 |
U gU(1-OLx,1-OLy,1,bi,bj), |
U gU(1-OLx,1-OLy,1,bi,bj), |
597 |
I myThid ) |
I myThid ) |
598 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
600 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
601 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
602 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
603 |
I -2, KappaRV, recip_hFacS(1-OLx,1-OLy,1,bi,bj), |
I -2, kappaRV, recip_hFacS(1-OLx,1-OLy,1,bi,bj), |
604 |
U gV(1-OLx,1-OLy,1,bi,bj), |
U gV(1-OLx,1-OLy,1,bi,bj), |
605 |
I myThid ) |
I myThid ) |
606 |
ENDIF |
ENDIF |
624 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
625 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
626 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
627 |
I 0, KappaRU, recip_hFacW(1-OLx,1-OLy,1,bi,bj), |
I 0, kappaRU, recip_hFacW(1-OLx,1-OLy,1,bi,bj), |
628 |
U vVelD(1-OLx,1-OLy,1,bi,bj), |
U vVelD(1-OLx,1-OLy,1,bi,bj), |
629 |
I myThid ) |
I myThid ) |
630 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
632 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
633 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
634 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
635 |
I 0, KappaRV, recip_hFacS(1-OLx,1-OLy,1,bi,bj), |
I 0, kappaRV, recip_hFacS(1-OLx,1-OLy,1,bi,bj), |
636 |
U uVelD(1-OLx,1-OLy,1,bi,bj), |
U uVelD(1-OLx,1-OLy,1,bi,bj), |
637 |
I myThid ) |
I myThid ) |
638 |
ENDIF |
ENDIF |
649 |
#endif |
#endif |
650 |
CALL TIMER_START('CALC_GW [DYNAMICS]',myThid) |
CALL TIMER_START('CALC_GW [DYNAMICS]',myThid) |
651 |
CALL CALC_GW( |
CALL CALC_GW( |
652 |
I bi,bj, KappaRU, KappaRV, |
I bi,bj, kappaRU, kappaRV, |
653 |
I str13, str23, str33, |
I str13, str23, str33, |
654 |
I viscAh3d_00, viscAh3d_13, viscAh3d_23, |
I viscAh3d_00, viscAh3d_13, viscAh3d_23, |
655 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |