183 |
& -aS2d(I ,J ,bi,bj)*cg2d_x(I ,J ,bi,bj) |
& -aS2d(I ,J ,bi,bj)*cg2d_x(I ,J ,bi,bj) |
184 |
& -aS2d(I ,J+1,bi,bj)*cg2d_x(I ,J ,bi,bj) |
& -aS2d(I ,J+1,bi,bj)*cg2d_x(I ,J ,bi,bj) |
185 |
& -freeSurfFac*_rA(i,j,bi,bj)*recip_Bo(i,j,bi,bj)* |
& -freeSurfFac*_rA(i,j,bi,bj)*recip_Bo(i,j,bi,bj)* |
186 |
& cg2d_x(I ,J ,bi,bj)/deltaTMom/deltaTMom*cg2dNorm |
& cg2d_x(I ,J ,bi,bj)/deltaTMom/deltaTfreesurf*cg2dNorm |
187 |
& ) |
& ) |
188 |
err = err + |
err = err + |
189 |
& cg2d_r(I,J,bi,bj)*cg2d_r(I,J,bi,bj) |
& cg2d_r(I,J,bi,bj)*cg2d_r(I,J,bi,bj) |
197 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
198 |
CALL EXCH_XY_O1_R8_JAM( cg2d_r ) |
CALL EXCH_XY_O1_R8_JAM( cg2d_r ) |
199 |
#else |
#else |
200 |
OLw = 1 |
CALL EXCH_XY_RL( cg2d_r, myThid ) |
|
OLe = 1 |
|
|
OLn = 1 |
|
|
OLs = 1 |
|
|
exchWidthX = 1 |
|
|
exchWidthY = 1 |
|
|
myNz = 1 |
|
|
IF (useCubedSphereExchange) THEN |
|
|
CALL EXCH_RL_CUBE( cg2d_r, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ELSE |
|
|
CALL EXCH_RL( cg2d_r, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ENDIF |
|
201 |
#endif |
#endif |
202 |
C _EXCH_XY_R8( cg2d_s, myThid ) |
C _EXCH_XY_R8( cg2d_s, myThid ) |
203 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
204 |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
205 |
#else |
#else |
206 |
OLw = 1 |
CALL EXCH_XY_RL( cg2d_s, myThid ) |
|
OLe = 1 |
|
|
OLn = 1 |
|
|
OLs = 1 |
|
|
exchWidthX = 1 |
|
|
exchWidthY = 1 |
|
|
myNz = 1 |
|
|
IF (useCubedSphereExchange) THEN |
|
|
CALL EXCH_RL_CUBE( cg2d_s, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ELSE |
|
|
CALL EXCH_RL( cg2d_s, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ENDIF |
|
207 |
#endif |
#endif |
208 |
_GLOBAL_SUM_R8( sumRHS, myThid ) |
_GLOBAL_SUM_R8( sumRHS, myThid ) |
209 |
_GLOBAL_SUM_R8( err , myThid ) |
_GLOBAL_SUM_R8( err , myThid ) |
281 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
282 |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
283 |
#else |
#else |
284 |
OLw = 1 |
CALL EXCH_XY_RL( cg2d_s, myThid ) |
|
OLe = 1 |
|
|
OLn = 1 |
|
|
OLs = 1 |
|
|
exchWidthX = 1 |
|
|
exchWidthY = 1 |
|
|
myNz = 1 |
|
|
IF (useCubedSphereExchange) THEN |
|
|
CALL EXCH_RL_CUBE( cg2d_s, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ELSE |
|
|
CALL EXCH_RL( cg2d_s, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ENDIF |
|
285 |
#endif |
#endif |
286 |
|
|
287 |
C== Evaluate laplace operator on conjugate gradient vector |
C== Evaluate laplace operator on conjugate gradient vector |
301 |
& -aS2d(I ,J ,bi,bj)*cg2d_s(I ,J ,bi,bj) |
& -aS2d(I ,J ,bi,bj)*cg2d_s(I ,J ,bi,bj) |
302 |
& -aS2d(I ,J+1,bi,bj)*cg2d_s(I ,J ,bi,bj) |
& -aS2d(I ,J+1,bi,bj)*cg2d_s(I ,J ,bi,bj) |
303 |
& -freeSurfFac*_rA(i,j,bi,bj)*recip_Bo(i,j,bi,bj)* |
& -freeSurfFac*_rA(i,j,bi,bj)*recip_Bo(i,j,bi,bj)* |
304 |
& cg2d_s(I ,J ,bi,bj)/deltaTMom/deltaTMom*cg2dNorm |
& cg2d_s(I ,J ,bi,bj)/deltaTMom/deltaTfreesurf*cg2dNorm |
305 |
alpha = alpha+cg2d_s(I,J,bi,bj)*cg2d_q(I,J,bi,bj) |
alpha = alpha+cg2d_s(I,J,bi,bj)*cg2d_q(I,J,bi,bj) |
306 |
ENDDO |
ENDDO |
307 |
ENDDO |
ENDDO |
340 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
341 |
CALL EXCH_XY_O1_R8_JAM( cg2d_r ) |
CALL EXCH_XY_O1_R8_JAM( cg2d_r ) |
342 |
#else |
#else |
343 |
OLw = 1 |
CALL EXCH_XY_RL( cg2d_r, myThid ) |
|
OLe = 1 |
|
|
OLn = 1 |
|
|
OLs = 1 |
|
|
exchWidthX = 1 |
|
|
exchWidthY = 1 |
|
|
myNz = 1 |
|
|
IF (useCubedSphereExchange) THEN |
|
|
CALL EXCH_RL_CUBE( cg2d_r, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ELSE |
|
|
CALL EXCH_RL( cg2d_r, |
|
|
I OLw, OLe, OLs, OLn, myNz, |
|
|
I exchWidthX, exchWidthY, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
|
ENDIF |
|
344 |
#endif |
#endif |
345 |
|
|
346 |
10 CONTINUE |
10 CONTINUE |