217 |
_GLOBAL_SUM_R8( err , myThid ) |
_GLOBAL_SUM_R8( err , myThid ) |
218 |
|
|
219 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
220 |
write(0,'(A,1PE30.14)') ' cg2d: Sum(rhs) = ',sumRHS |
write(*,'(A,1PE30.14)') ' cg2d: Sum(rhs) = ',sumRHS |
221 |
_END_MASTER( ) |
_END_MASTER( ) |
222 |
|
|
223 |
actualIts = 0 |
actualIts = 0 |
224 |
actualResidual = SQRT(err) |
actualResidual = SQRT(err) |
225 |
C _BARRIER |
C _BARRIER |
226 |
c _BEGIN_MASTER( myThid ) |
c _BEGIN_MASTER( myThid ) |
227 |
c WRITE(0,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
c WRITE(*,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
228 |
c & actualIts, actualResidual |
c & actualIts, actualResidual |
229 |
c _END_MASTER( ) |
c _END_MASTER( ) |
230 |
initialResidual=actualResidual |
initialResidual=actualResidual |
233 |
DO 10 it2d=1, numIters |
DO 10 it2d=1, numIters |
234 |
|
|
235 |
CcnhDebugStarts |
CcnhDebugStarts |
236 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' residual = ', |
C WRITE(*,*) ' CG2D: Iteration ',it2d-1,' residual = ', |
237 |
C & actualResidual |
C & actualResidual |
238 |
CcnhDebugEnds |
CcnhDebugEnds |
239 |
IF ( err .LT. tolerance ) GOTO 11 |
IF ( err .LT. tolerance ) GOTO 11 |
262 |
|
|
263 |
_GLOBAL_SUM_R8(eta_qrN, myThid) |
_GLOBAL_SUM_R8(eta_qrN, myThid) |
264 |
CcnhDebugStarts |
CcnhDebugStarts |
265 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' eta_qrN = ',eta_qrN |
C WRITE(*,*) ' CG2D: Iteration ',it2d-1,' eta_qrN = ',eta_qrN |
266 |
CcnhDebugEnds |
CcnhDebugEnds |
267 |
cgBeta = eta_qrN/eta_qrNM1 |
cgBeta = eta_qrN/eta_qrNM1 |
268 |
CcnhDebugStarts |
CcnhDebugStarts |
269 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' beta = ',cgBeta |
C WRITE(*,*) ' CG2D: Iteration ',it2d-1,' beta = ',cgBeta |
270 |
CcnhDebugEnds |
CcnhDebugEnds |
271 |
eta_qrNM1 = eta_qrN |
eta_qrNM1 = eta_qrN |
272 |
|
|
325 |
ENDDO |
ENDDO |
326 |
_GLOBAL_SUM_R8(alpha,myThid) |
_GLOBAL_SUM_R8(alpha,myThid) |
327 |
CcnhDebugStarts |
CcnhDebugStarts |
328 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' SUM(s*q)= ',alpha |
C WRITE(*,*) ' CG2D: Iteration ',it2d-1,' SUM(s*q)= ',alpha |
329 |
CcnhDebugEnds |
CcnhDebugEnds |
330 |
alpha = eta_qrN/alpha |
alpha = eta_qrN/alpha |
331 |
CcnhDebugStarts |
CcnhDebugStarts |
332 |
C WRITE(0,*) ' CG2D: Iteration ',it2d-1,' alpha= ',alpha |
C WRITE(*,*) ' CG2D: Iteration ',it2d-1,' alpha= ',alpha |
333 |
CcnhDebugEnds |
CcnhDebugEnds |
334 |
|
|
335 |
C== Update solution and residual vectors |
C== Update solution and residual vectors |
387 |
C for compatibility with TAMC. |
C for compatibility with TAMC. |
388 |
C _EXCH_XY_R8(cg2d_x, myThid ) |
C _EXCH_XY_R8(cg2d_x, myThid ) |
389 |
c _BEGIN_MASTER( myThid ) |
c _BEGIN_MASTER( myThid ) |
390 |
c WRITE(0,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
c WRITE(*,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
391 |
c & actualIts, actualResidual |
c & actualIts, actualResidual |
392 |
c _END_MASTER( ) |
c _END_MASTER( ) |
393 |
|
|
419 |
C ENDDO |
C ENDDO |
420 |
C ENDDO |
C ENDDO |
421 |
C _GLOBAL_SUM_R8( err , myThid ) |
C _GLOBAL_SUM_R8( err , myThid ) |
422 |
C write(0,*) 'cg2d: Ax - b = ',SQRT(err) |
C write(*,*) 'cg2d: Ax - b = ',SQRT(err) |
423 |
CcnhDebugEnds |
CcnhDebugEnds |
424 |
|
|
425 |
RETURN |
RETURN |