87 |
|
|
88 |
|
|
89 |
C-- Initialise inverter |
C-- Initialise inverter |
|
etaNBuf(1,myThid) = 0. _d 0 |
|
|
errBuf(1,myThid) = 0. _d 0 |
|
|
sumRHSBuf(1,myThid) = 0. _d 0 |
|
90 |
etaNM1 = 1. _d 0 |
etaNM1 = 1. _d 0 |
91 |
|
|
92 |
CcnhDebugStarts |
CcnhDebugStarts |
109 |
ENDDO |
ENDDO |
110 |
ENDDO |
ENDDO |
111 |
ENDDO |
ENDDO |
112 |
rhsMaxBuf(1,myThid) = rhsMax |
_GLOBAL_MAX_R8( rhsMax, myThid ) |
|
_GLOBAL_MAX_R8( rhsMaxbuf, rhsMax, myThid ) |
|
|
rhsMax = rhsMaxBuf(1,1) |
|
113 |
rhsNorm = 1. _d 0 |
rhsNorm = 1. _d 0 |
114 |
IF ( rhsMax .NE. 0. ) rhsNorm = 1. _d 0 / rhsMax |
IF ( rhsMax .NE. 0. ) rhsNorm = 1. _d 0 / rhsMax |
115 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
184 |
I OLw, OLe, OLs, OLn, myNz, |
I OLw, OLe, OLs, OLn, myNz, |
185 |
I exchWidthX, exchWidthY, |
I exchWidthX, exchWidthY, |
186 |
I FORWARD_SIMULATION, EXCH_IGNORE_CORNERS, myThid ) |
I FORWARD_SIMULATION, EXCH_IGNORE_CORNERS, myThid ) |
187 |
sumRHSBuf(1,myThid) = sumRHS |
_GLOBAL_SUM_R8( sumRHS, myThid ) |
|
_GLOBAL_SUM_R8( sumRHSBuf , sumRHS, myThid ) |
|
|
sumRHS = sumRHSBuf(1,1) |
|
|
errBuf(1,myThid) = err |
|
188 |
C WRITE(6,*) ' mythid, err = ', mythid, SQRT(err) |
C WRITE(6,*) ' mythid, err = ', mythid, SQRT(err) |
189 |
_GLOBAL_SUM_R8( errBuf , err , myThid ) |
_GLOBAL_SUM_R8( err , myThid ) |
|
err = errBuf(1,1) |
|
190 |
|
|
191 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
192 |
write(0,'(A,1PE30.14)') ' cg2d: Sum(rhs) = ',sumRHS |
write(0,'(A,1PE30.14)') ' cg2d: Sum(rhs) = ',sumRHS |
231 |
ENDDO |
ENDDO |
232 |
ENDDO |
ENDDO |
233 |
|
|
234 |
etanBuf(1,myThid) = etaN |
_GLOBAL_SUM_R8(etaN, myThid) |
|
_GLOBAL_SUM_R8(etaNbuf,etaN, myThid) |
|
|
etaN = etaNBuf(1,1) |
|
235 |
CcnhDebugStarts |
CcnhDebugStarts |
236 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' etaN = ',etaN |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' etaN = ',etaN |
237 |
CcnhDebugEnds |
CcnhDebugEnds |
291 |
ENDDO |
ENDDO |
292 |
ENDDO |
ENDDO |
293 |
ENDDO |
ENDDO |
294 |
alphaBuf(1,myThid) = alpha |
_GLOBAL_SUM_R8(alpha,myThid) |
|
_GLOBAL_SUM_R8(alphaBuf,alpha,myThid) |
|
|
alpha = alphaBuf(1,1) |
|
295 |
CcnhDebugStarts |
CcnhDebugStarts |
296 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' SUM(s*q)= ',alpha |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' SUM(s*q)= ',alpha |
297 |
CcnhDebugEnds |
CcnhDebugEnds |
315 |
ENDDO |
ENDDO |
316 |
ENDDO |
ENDDO |
317 |
|
|
318 |
errBuf(1,myThid) = err |
_GLOBAL_SUM_R8( err , myThid ) |
|
_GLOBAL_SUM_R8( errBuf , err , myThid ) |
|
|
err = errBuf(1,1) |
|
319 |
err = SQRT(err) |
err = SQRT(err) |
320 |
actualIts = it2d |
actualIts = it2d |
321 |
actualResidual = err |
actualResidual = err |
375 |
C ENDDO |
C ENDDO |
376 |
C ENDDO |
C ENDDO |
377 |
C ENDDO |
C ENDDO |
378 |
C errBuf(1,myThid) = err |
C _GLOBAL_SUM_R8( err , myThid ) |
|
C _GLOBAL_SUM_R8( errBuf , err , myThid ) |
|
|
C err = errBuf(1,1) |
|
379 |
C write(0,*) 'cg2d: Ax - b = ',SQRT(err) |
C write(0,*) 'cg2d: Ax - b = ',SQRT(err) |
380 |
CcnhDebugEnds |
CcnhDebugEnds |
381 |
|
|