283 |
lastResidual=0. |
lastResidual=0. |
284 |
numIters=cg2dMaxIters |
numIters=cg2dMaxIters |
285 |
c CALL TIMER_START('CG2D [SOLVE_FOR_PRESSURE]',myThid) |
c CALL TIMER_START('CG2D [SOLVE_FOR_PRESSURE]',myThid) |
286 |
|
#ifdef ALLOW_CG2D_NSA |
287 |
|
C-- Call the not-self-adjoint version of cg2d |
288 |
|
CALL CG2D_NSA( |
289 |
|
U cg2d_b, |
290 |
|
U cg2d_x, |
291 |
|
O firstResidual, |
292 |
|
O lastResidual, |
293 |
|
U numIters, |
294 |
|
I myThid ) |
295 |
|
#else /* not ALLOW_CG2D_NSA = default */ |
296 |
CALL CG2D( |
CALL CG2D( |
297 |
U cg2d_b, |
U cg2d_b, |
298 |
U cg2d_x, |
U cg2d_x, |
300 |
O lastResidual, |
O lastResidual, |
301 |
U numIters, |
U numIters, |
302 |
I myThid ) |
I myThid ) |
303 |
|
#endif /* ALLOW_CG2D_NSA */ |
304 |
_EXCH_XY_R8(cg2d_x, myThid ) |
_EXCH_XY_R8(cg2d_x, myThid ) |
305 |
c CALL TIMER_STOP ('CG2D [SOLVE_FOR_PRESSURE]',myThid) |
c CALL TIMER_STOP ('CG2D [SOLVE_FOR_PRESSURE]',myThid) |
306 |
|
|
402 |
DO j=1,sNy |
DO j=1,sNy |
403 |
DO i=1,sNx |
DO i=1,sNx |
404 |
cg3d_b(i,j,k,bi,bj) = cg3d_b(i,j,k,bi,bj) |
cg3d_b(i,j,k,bi,bj) = cg3d_b(i,j,k,bi,bj) |
405 |
& +drF(K)*dyG(i+1,j,bi,bj)*hFacW(i+1,j,k,bi,bj)*uf(i+1,j) |
& +drF(K)*dyG(i+1,j,bi,bj)*_hFacW(i+1,j,k,bi,bj)*uf(i+1,j) |
406 |
& -drF(K)*dyG( i ,j,bi,bj)*hFacW( i ,j,k,bi,bj)*uf( i ,j) |
& -drF(K)*dyG( i ,j,bi,bj)*_hFacW( i ,j,k,bi,bj)*uf( i ,j) |
407 |
& +drF(K)*dxG(i,j+1,bi,bj)*hFacS(i,j+1,k,bi,bj)*vf(i,j+1) |
& +drF(K)*dxG(i,j+1,bi,bj)*_hFacS(i,j+1,k,bi,bj)*vf(i,j+1) |
408 |
& -drF(K)*dxG(i, j ,bi,bj)*hFacS(i, j ,k,bi,bj)*vf(i, j ) |
& -drF(K)*dxG(i, j ,bi,bj)*_hFacS(i, j ,k,bi,bj)*vf(i, j ) |
409 |
& +( tmpFac*etaN(i,j,bi,bj)/deltaTfreesurf |
& +( tmpFac*etaN(i,j,bi,bj)/deltaTfreesurf |
410 |
& -wVel(i,j,kp1,bi,bj)*maskKp1 |
& -wVel(i,j,kp1,bi,bj)*maskKp1 |
411 |
& )*_rA(i,j,bi,bj)/deltaTmom |
& )*_rA(i,j,bi,bj)/deltaTmom |
418 |
DO j=1,sNy |
DO j=1,sNy |
419 |
DO i=1,sNx |
DO i=1,sNx |
420 |
cg3d_b(i,j,k,bi,bj) = cg3d_b(i,j,k,bi,bj) |
cg3d_b(i,j,k,bi,bj) = cg3d_b(i,j,k,bi,bj) |
421 |
& +drF(K)*dyG(i+1,j,bi,bj)*hFacW(i+1,j,k,bi,bj)*uf(i+1,j) |
& +drF(K)*dyG(i+1,j,bi,bj)*_hFacW(i+1,j,k,bi,bj)*uf(i+1,j) |
422 |
& -drF(K)*dyG( i ,j,bi,bj)*hFacW( i ,j,k,bi,bj)*uf( i ,j) |
& -drF(K)*dyG( i ,j,bi,bj)*_hFacW( i ,j,k,bi,bj)*uf( i ,j) |
423 |
& +drF(K)*dxG(i,j+1,bi,bj)*hFacS(i,j+1,k,bi,bj)*vf(i,j+1) |
& +drF(K)*dxG(i,j+1,bi,bj)*_hFacS(i,j+1,k,bi,bj)*vf(i,j+1) |
424 |
& -drF(K)*dxG(i, j ,bi,bj)*hFacS(i, j ,k,bi,bj)*vf(i, j ) |
& -drF(K)*dxG(i, j ,bi,bj)*_hFacS(i, j ,k,bi,bj)*vf(i, j ) |
425 |
& +( wVel(i,j,k ,bi,bj)*maskC(i,j,k-1,bi,bj) |
& +( wVel(i,j,k ,bi,bj)*maskC(i,j,k-1,bi,bj) |
426 |
& -wVel(i,j,kp1,bi,bj)*maskKp1 |
& -wVel(i,j,kp1,bi,bj)*maskKp1 |
427 |
& )*_rA(i,j,bi,bj)/deltaTmom |
& )*_rA(i,j,bi,bj)/deltaTmom |