| 40 |
|
|
| 41 |
C !DESCRIPTION: |
C !DESCRIPTION: |
| 42 |
C Calculates all the horizontal accelerations except for the implicit surface |
C Calculates all the horizontal accelerations except for the implicit surface |
| 43 |
C pressure gradient and implciit vertical viscosity. |
C pressure gradient and implicit vertical viscosity. |
| 44 |
|
|
| 45 |
C !USES: =============================================================== |
C !USES: =============================================================== |
| 46 |
C == Global variables == |
C == Global variables == |
| 249 |
C Calculate tracer cell face open areas |
C Calculate tracer cell face open areas |
| 250 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
| 251 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
| 252 |
xA(i,j) = _dyG(i,j,bi,bj) |
xA(i,j) = _dyG(i,j,bi,bj)*deepFacC(k) |
| 253 |
& *drF(k)*_hFacW(i,j,k,bi,bj) |
& *drF(k)*_hFacW(i,j,k,bi,bj) |
| 254 |
yA(i,j) = _dxG(i,j,bi,bj) |
yA(i,j) = _dxG(i,j,bi,bj)*deepFacC(k) |
| 255 |
& *drF(k)*_hFacS(i,j,k,bi,bj) |
& *drF(k)*_hFacS(i,j,k,bi,bj) |
| 256 |
ENDDO |
ENDDO |
| 257 |
ENDDO |
ENDDO |
| 258 |
|
|
| 265 |
ENDDO |
ENDDO |
| 266 |
|
|
| 267 |
C Calculate velocity field "volume transports" through tracer cell faces. |
C Calculate velocity field "volume transports" through tracer cell faces. |
| 268 |
|
C anelastic: transports are scaled by rhoFacC (~ mass transport) |
| 269 |
DO j=1-OLy,sNy+OLy |
DO j=1-OLy,sNy+OLy |
| 270 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
| 271 |
uTrans(i,j) = uFld(i,j)*xA(i,j) |
uTrans(i,j) = uFld(i,j)*xA(i,j)*rhoFacC(k) |
| 272 |
vTrans(i,j) = vFld(i,j)*yA(i,j) |
vTrans(i,j) = vFld(i,j)*yA(i,j)*rhoFacC(k) |
| 273 |
ENDDO |
ENDDO |
| 274 |
ENDDO |
ENDDO |
| 275 |
|
|
| 305 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
| 306 |
# ifdef NONLIN_FRSURF |
# ifdef NONLIN_FRSURF |
| 307 |
# ifndef DISABLE_RSTAR_CODE |
# ifndef DISABLE_RSTAR_CODE |
| 308 |
CADJ STORE dwtransc(:,:,bi,bj) = |
CADJ STORE dwtransc(:,:,bi,bj) = |
| 309 |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
| 310 |
CADJ STORE dwtransu(:,:,bi,bj) = |
CADJ STORE dwtransu(:,:,bi,bj) = |
| 311 |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
| 312 |
CADJ STORE dwtransv(:,:,bi,bj) = |
CADJ STORE dwtransv(:,:,bi,bj) = |
| 313 |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte |
| 314 |
# endif |
# endif |
| 315 |
# endif /* NONLIN_FRSURF */ |
# endif /* NONLIN_FRSURF */ |
| 375 |
& ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) ) |
& ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) ) |
| 376 |
#else |
#else |
| 377 |
& -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k) |
& -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k) |
| 378 |
& *recip_rAw(i,j,bi,bj) |
& *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k)*recip_rhoFacC(k) |
| 379 |
#endif |
#endif |
| 380 |
& *( ( fZon(i,j ) - fZon(i-1,j) )*uDudxFac |
& *( ( fZon(i,j ) - fZon(i-1,j) )*uDudxFac |
| 381 |
& +( fMer(i,j+1) - fMer(i, j) )*vDudyFac |
& +( fMer(i,j+1) - fMer(i, j) )*vDudyFac |
| 382 |
& +(fVerU(i,j,kDown) - fVerU(i,j,kUp))*rkSign*rVelDudrFac |
& +(fVerU(i,j,kDown) - fVerU(i,j,kUp))*rkSign*rVelDudrFac |
| 383 |
& ) |
& ) |
| 384 |
ENDDO |
ENDDO |
| 385 |
ENDDO |
ENDDO |
| 449 |
ENDIF |
ENDIF |
| 450 |
|
|
| 451 |
C-- Tendency is minus divergence of the fluxes |
C-- Tendency is minus divergence of the fluxes |
| 452 |
|
C anelastic: hor.visc.fluxes are not scaled by rhoFac (by vert.visc.flx is) |
| 453 |
DO j=jMin,jMax |
DO j=jMin,jMax |
| 454 |
DO i=iMin,iMax |
DO i=iMin,iMax |
| 455 |
guDiss(i,j) = |
guDiss(i,j) = |
| 458 |
& ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) ) |
& ( 0.5 _d 0*(rA(i,j,bi,bj)+rA(i-1,j,bi,bj)) ) |
| 459 |
#else |
#else |
| 460 |
& -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k) |
& -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k) |
| 461 |
& *recip_rAw(i,j,bi,bj) |
& *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k) |
| 462 |
#endif |
#endif |
| 463 |
& *( ( fZon(i,j ) - fZon(i-1,j) )*AhDudxFac |
& *( ( fZon(i,j ) - fZon(i-1,j) )*AhDudxFac |
| 464 |
& +( fMer(i,j+1) - fMer(i, j) )*AhDudyFac |
& +( fMer(i,j+1) - fMer(i, j) )*AhDudyFac |
| 465 |
& +( fVrDw(i,j) - fVrUp(i,j) )*rkSign*ArDudrFac |
& +( fVrDw(i,j) - fVrUp(i,j) )*rkSign*ArDudrFac |
| 466 |
|
& *recip_rhoFacC(k) |
| 467 |
& ) |
& ) |
| 468 |
ENDDO |
ENDDO |
| 469 |
ENDDO |
ENDDO |
| 580 |
& ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) ) |
& ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) ) |
| 581 |
#else |
#else |
| 582 |
& -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k) |
& -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k) |
| 583 |
& *recip_rAs(i,j,bi,bj) |
& *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)*recip_rhoFacC(k) |
| 584 |
#endif |
#endif |
| 585 |
& *( ( fZon(i+1,j) - fZon(i,j ) )*uDvdxFac |
& *( ( fZon(i+1,j) - fZon(i,j ) )*uDvdxFac |
| 586 |
& +( fMer(i, j) - fMer(i,j-1) )*vDvdyFac |
& +( fMer(i, j) - fMer(i,j-1) )*vDvdyFac |
| 587 |
& +(fVerV(i,j,kDown) - fVerV(i,j,kUp))*rkSign*rVelDvdrFac |
& +(fVerV(i,j,kDown) - fVerV(i,j,kUp))*rkSign*rVelDvdrFac |
| 588 |
& ) |
& ) |
| 589 |
ENDDO |
ENDDO |
| 590 |
ENDDO |
ENDDO |
| 653 |
ENDIF |
ENDIF |
| 654 |
|
|
| 655 |
C-- Tendency is minus divergence of the fluxes + coriolis + pressure term |
C-- Tendency is minus divergence of the fluxes + coriolis + pressure term |
| 656 |
|
C anelastic: hor.visc.fluxes are not scaled by rhoFac (by vert.visc.flx is) |
| 657 |
DO j=jMin,jMax |
DO j=jMin,jMax |
| 658 |
DO i=iMin,iMax |
DO i=iMin,iMax |
| 659 |
gvDiss(i,j) = |
gvDiss(i,j) = |
| 662 |
& ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) ) |
& ( 0.5 _d 0*(_rA(i,j,bi,bj)+_rA(i,j-1,bi,bj)) ) |
| 663 |
#else |
#else |
| 664 |
& -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k) |
& -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k) |
| 665 |
& *recip_rAs(i,j,bi,bj) |
& *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k) |
| 666 |
#endif |
#endif |
| 667 |
& *( ( fZon(i+1,j) - fZon(i,j ) )*AhDvdxFac |
& *( ( fZon(i+1,j) - fZon(i,j ) )*AhDvdxFac |
| 668 |
& +( fMer(i, j) - fMer(i,j-1) )*AhDvdyFac |
& +( fMer(i, j) - fMer(i,j-1) )*AhDvdyFac |
| 669 |
& +( fVrDw(i,j) - fVrUp(i,j) )*rkSign*ArDvdrFac |
& +( fVrDw(i,j) - fVrUp(i,j) )*rkSign*ArDvdrFac |
| 670 |
|
& *recip_rhoFacC(k) |
| 671 |
& ) |
& ) |
| 672 |
ENDDO |
ENDDO |
| 673 |
ENDDO |
ENDDO |