1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
|
#include "PACKAGES_CONFIG.h" |
5 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
6 |
#define CALC_GW_NEW_THICK |
#define CALC_GW_NEW_THICK |
7 |
|
|
316 |
& - (viscAh_W(i,j,k,bi,bj)+viscAh_W(i-1,j,k,bi,bj))*halfRL |
& - (viscAh_W(i,j,k,bi,bj)+viscAh_W(i-1,j,k,bi,bj))*halfRL |
317 |
& *(wVel(i,j,k,bi,bj)-wVel(i-1,j,k,bi,bj)) |
& *(wVel(i,j,k,bi,bj)-wVel(i-1,j,k,bi,bj)) |
318 |
& *_recip_dxC(i,j,bi,bj)*xA(i,j) |
& *_recip_dxC(i,j,bi,bj)*xA(i,j) |
|
cOld & *_recip_dxC(i,j,bi,bj)*rThickC_W(i,j) |
|
319 |
& *cosFacU(j,bi,bj) |
& *cosFacU(j,bi,bj) |
320 |
& + (viscA4_W(i,j,k,bi,bj)+viscA4_W(i-1,j,k,bi,bj))*halfRL |
& + (viscA4_W(i,j,k,bi,bj)+viscA4_W(i-1,j,k,bi,bj))*halfRL |
321 |
& *(del2w(i,j)-del2w(i-1,j)) |
& *(del2w(i,j)-del2w(i-1,j)) |
322 |
& *_recip_dxC(i,j,bi,bj)*xA(i,j) |
& *_recip_dxC(i,j,bi,bj)*xA(i,j) |
|
cOld & *_recip_dxC(i,j,bi,bj)*drC(k) |
|
323 |
#ifdef COSINEMETH_III |
#ifdef COSINEMETH_III |
324 |
& *sqCosFacU(j,bi,bj) |
& *sqCosFacU(j,bi,bj) |
325 |
#else |
#else |
334 |
& - (viscAh_W(i,j,k,bi,bj)+viscAh_W(i,j-1,k,bi,bj))*halfRL |
& - (viscAh_W(i,j,k,bi,bj)+viscAh_W(i,j-1,k,bi,bj))*halfRL |
335 |
& *(wVel(i,j,k,bi,bj)-wVel(i,j-1,k,bi,bj)) |
& *(wVel(i,j,k,bi,bj)-wVel(i,j-1,k,bi,bj)) |
336 |
& *_recip_dyC(i,j,bi,bj)*yA(i,j) |
& *_recip_dyC(i,j,bi,bj)*yA(i,j) |
|
cOld & *_recip_dyC(i,j,bi,bj)*rThickC_S(i,j) |
|
337 |
#ifdef ISOTROPIC_COS_SCALING |
#ifdef ISOTROPIC_COS_SCALING |
338 |
& *cosFacV(j,bi,bj) |
& *cosFacV(j,bi,bj) |
339 |
#endif |
#endif |
340 |
& + (viscA4_W(i,j,k,bi,bj)+viscA4_W(i,j-1,k,bi,bj))*halfRL |
& + (viscA4_W(i,j,k,bi,bj)+viscA4_W(i,j-1,k,bi,bj))*halfRL |
341 |
& *(del2w(i,j)-del2w(i,j-1)) |
& *(del2w(i,j)-del2w(i,j-1)) |
342 |
& *_recip_dyC(i,j,bi,bj)*yA(i,j) |
& *_recip_dyC(i,j,bi,bj)*yA(i,j) |
|
cOld & *_recip_dyC(i,j,bi,bj)*drC(k) |
|
343 |
#ifdef ISOTROPIC_COS_SCALING |
#ifdef ISOTROPIC_COS_SCALING |
344 |
#ifdef COSINEMETH_III |
#ifdef COSINEMETH_III |
345 |
& *sqCosFacV(j,bi,bj) |
& *sqCosFacV(j,bi,bj) |
363 |
& -wVel(i,j, k ,bi,bj) )*rkSign |
& -wVel(i,j, k ,bi,bj) )*rkSign |
364 |
& *recip_drF(k)*rA(i,j,bi,bj) |
& *recip_drF(k)*rA(i,j,bi,bj) |
365 |
& *deepFac2C(k)*rhoFacC(k) |
& *deepFac2C(k)*rhoFacC(k) |
|
cOld & *recip_drF(k) |
|
366 |
ENDDO |
ENDDO |
367 |
ENDDO |
ENDDO |
368 |
C Tendency is minus divergence of viscous fluxes: |
C Tendency is minus divergence of viscous fluxes: |
376 |
& *recip_rhoFacF(k) |
& *recip_rhoFacF(k) |
377 |
& )*recip_rA(i,j,bi,bj)*recip_rThickC(i,j) |
& )*recip_rA(i,j,bi,bj)*recip_rThickC(i,j) |
378 |
& *recip_deepFac2F(k) |
& *recip_deepFac2F(k) |
|
cOld gwDiss(i,j) = |
|
|
cOld & -( |
|
|
cOld & +_recip_dxF(i,j,bi,bj)*( flx_EW(i+1,j)-flx_EW(i,j) ) |
|
|
cOld & +_recip_dyF(i,j,bi,bj)*( flx_NS(i,j+1)-flx_NS(i,j) ) |
|
|
cOld & + ( flxDisUp(i,j)-flx_Dn(i,j) ) |
|
|
c & )*recip_rThickC(i,j) |
|
|
cOld & )*recip_drC(k) |
|
379 |
C-- prepare for next level (k+1) |
C-- prepare for next level (k+1) |
380 |
flxDisUp(i,j)=flx_Dn(i,j) |
flxDisUp(i,j)=flx_Dn(i,j) |
381 |
ENDDO |
ENDDO |
411 |
& + drF( k )*_hFacW(i,j, k ,bi,bj)*uVel(i,j, k ,bi,bj) |
& + drF( k )*_hFacW(i,j, k ,bi,bj)*uVel(i,j, k ,bi,bj) |
412 |
& *rhoFacC(k) |
& *rhoFacC(k) |
413 |
& )*halfRL*_dyG(i,j,bi,bj)*deepFacF(k) |
& )*halfRL*_dyG(i,j,bi,bj)*deepFacF(k) |
|
cOld & )*halfRL |
|
414 |
flx_EW(i,j)= |
flx_EW(i,j)= |
415 |
& uTrans*(wVel(i,j,k,bi,bj)+wVel(i-1,j,k,bi,bj))*halfRL |
& uTrans*(wVel(i,j,k,bi,bj)+wVel(i-1,j,k,bi,bj))*halfRL |
416 |
ENDDO |
ENDDO |
425 |
& +drF( k )*_hFacS(i,j, k ,bi,bj)*vVel(i,j, k ,bi,bj) |
& +drF( k )*_hFacS(i,j, k ,bi,bj)*vVel(i,j, k ,bi,bj) |
426 |
& *rhoFacC(k) |
& *rhoFacC(k) |
427 |
& )*halfRL*_dxG(i,j,bi,bj)*deepFacF(k) |
& )*halfRL*_dxG(i,j,bi,bj)*deepFacF(k) |
|
cOld & )*halfRL |
|
428 |
flx_NS(i,j)= |
flx_NS(i,j)= |
429 |
& vTrans*(wVel(i,j,k,bi,bj)+wVel(i,j-1,k,bi,bj))*halfRL |
& vTrans*(wVel(i,j,k,bi,bj)+wVel(i,j-1,k,bi,bj))*halfRL |
430 |
ENDDO |
ENDDO |
443 |
& *wOverRide |
& *wOverRide |
444 |
& )*rA(i,j,bi,bj) |
& )*rA(i,j,bi,bj) |
445 |
flx_Dn(i,j) = rTrans*tmp_WbarZ |
flx_Dn(i,j) = rTrans*tmp_WbarZ |
|
cOld flx_Dn(i,j) = tmp_WbarZ*tmp_WbarZ |
|
446 |
ENDDO |
ENDDO |
447 |
ENDDO |
ENDDO |
448 |
C Tendency is minus divergence of advective fluxes: |
C Tendency is minus divergence of advective fluxes: |
455 |
& + ( flx_Dn(i,j)-flxAdvUp(i,j) )*rkSign*wUnit2rVel(k) |
& + ( flx_Dn(i,j)-flxAdvUp(i,j) )*rkSign*wUnit2rVel(k) |
456 |
& )*recip_rA(i,j,bi,bj)*recip_rThickC(i,j) |
& )*recip_rA(i,j,bi,bj)*recip_rThickC(i,j) |
457 |
& *recip_deepFac2F(k)*recip_rhoFacF(k) |
& *recip_deepFac2F(k)*recip_rhoFacF(k) |
|
cOld gW(i,j,k,bi,bj) = |
|
|
cOld & -( |
|
|
cOld & +_recip_dxF(i,j,bi,bj)*( flx_EW(i+1,j)-flx_EW(i,j) ) |
|
|
cOld & +_recip_dyF(i,j,bi,bj)*( flx_NS(i,j+1)-flx_NS(i,j) ) |
|
|
cOld & + ( flxAdvUp(i,j)-flx_Dn(i,j) ) |
|
|
c & )*recip_rThickC(i,j) |
|
|
cOld & )*recip_drC(k) |
|
458 |
C-- prepare for next level (k+1) |
C-- prepare for next level (k+1) |
459 |
flxAdvUp(i,j)=flx_Dn(i,j) |
flxAdvUp(i,j)=flx_Dn(i,j) |
460 |
ENDDO |
ENDDO |
523 |
C- end of the k loop |
C- end of the k loop |
524 |
ENDDO |
ENDDO |
525 |
|
|
526 |
|
#ifdef ALLOW_DIAGNOSTICS |
527 |
|
IF (useDiagnostics) THEN |
528 |
|
CALL DIAGNOSTICS_FILL(viscAh_W,'VISCAHW ',0,Nr,1,bi,bj,myThid) |
529 |
|
CALL DIAGNOSTICS_FILL(viscA4_W,'VISCA4W ',0,Nr,1,bi,bj,myThid) |
530 |
|
ENDIF |
531 |
|
#endif /* ALLOW_DIAGNOSTICS */ |
532 |
|
|
533 |
#endif /* ALLOW_NONHYDROSTATIC */ |
#endif /* ALLOW_NONHYDROSTATIC */ |
534 |
|
|
535 |
RETURN |
RETURN |