116 |
eta_qrNM1 = 1. _d 0 |
eta_qrNM1 = 1. _d 0 |
117 |
|
|
118 |
CcnhDebugStarts |
CcnhDebugStarts |
119 |
C _EXCH_XY_R8( cg2d_b, myThid ) |
C _EXCH_XY_RL( cg2d_b, myThid ) |
120 |
C CALL PLOT_FIELD_XYRL( cg2d_b, 'CG2D.0 CG2D_B' , 1, myThid ) |
C CALL PLOT_FIELD_XYRL( cg2d_b, 'CG2D.0 CG2D_B' , 1, myThid ) |
121 |
C suff = 'unnormalised' |
C suff = 'unnormalised' |
122 |
C CALL WRITE_FLD_XY_RL ( 'cg2d_b.',suff, cg2d_b, 1, myThid) |
C CALL WRITE_FLD_XY_RL ( 'cg2d_b.',suff, cg2d_b, 1, myThid) |
139 |
IF (cg2dNormaliseRHS) THEN |
IF (cg2dNormaliseRHS) THEN |
140 |
C- Normalise RHS : |
C- Normalise RHS : |
141 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
142 |
C _GLOBAL_MAX_R8( rhsMax, myThid ) |
C _GLOBAL_MAX_RL( rhsMax, myThid ) |
143 |
rhsMax=1. |
rhsMax=1. |
144 |
#else |
#else |
145 |
_GLOBAL_MAX_R8( rhsMax, myThid ) |
_GLOBAL_MAX_RL( rhsMax, myThid ) |
146 |
#endif |
#endif |
147 |
rhsNorm = 1. _d 0 |
rhsNorm = 1. _d 0 |
148 |
IF ( rhsMax .NE. 0. ) rhsNorm = 1. _d 0 / rhsMax |
IF ( rhsMax .NE. 0. ) rhsNorm = 1. _d 0 / rhsMax |
160 |
ENDIF |
ENDIF |
161 |
|
|
162 |
C-- Update overlaps |
C-- Update overlaps |
163 |
_EXCH_XY_R8( cg2d_b, myThid ) |
_EXCH_XY_RL( cg2d_b, myThid ) |
164 |
_EXCH_XY_R8( cg2d_x, myThid ) |
_EXCH_XY_RL( cg2d_x, myThid ) |
165 |
CcnhDebugStarts |
CcnhDebugStarts |
166 |
C CALL PLOT_FIELD_XYRL( cg2d_b, 'CG2D.1 CG2D_B' , 1, myThid ) |
C CALL PLOT_FIELD_XYRL( cg2d_b, 'CG2D.1 CG2D_B' , 1, myThid ) |
167 |
C suff = 'normalised' |
C suff = 'normalised' |
233 |
ENDDO |
ENDDO |
234 |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, sumRHS, myThid) |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, sumRHS, myThid) |
235 |
#else |
#else |
236 |
c _GLOBAL_SUM_R8( sumRHS, myThid ) |
c _GLOBAL_SUM_RL( sumRHS, myThid ) |
237 |
c _GLOBAL_SUM_R8( err , myThid ) |
c _GLOBAL_SUM_RL( err , myThid ) |
238 |
CALL GLOBAL_SUM_TILE_RL( sumRHStile, sumRHS, myThid ) |
CALL GLOBAL_SUM_TILE_RL( sumRHStile, sumRHS, myThid ) |
239 |
CALL GLOBAL_SUM_TILE_RL( errTile, err, myThid ) |
CALL GLOBAL_SUM_TILE_RL( errTile, err, myThid ) |
240 |
#endif |
#endif |
301 |
#ifdef CG2D_SINGLECPU_SUM |
#ifdef CG2D_SINGLECPU_SUM |
302 |
CALL GLOBAL_SUM_SINGLECPU_RL( localBuf,eta_qrN,myThid ) |
CALL GLOBAL_SUM_SINGLECPU_RL( localBuf,eta_qrN,myThid ) |
303 |
#else |
#else |
304 |
c _GLOBAL_SUM_R8(eta_qrN, myThid) |
c _GLOBAL_SUM_RL(eta_qrN, myThid) |
305 |
CALL GLOBAL_SUM_TILE_RL( eta_qrNtile,eta_qrN,myThid ) |
CALL GLOBAL_SUM_TILE_RL( eta_qrNtile,eta_qrN,myThid ) |
306 |
#endif |
#endif |
307 |
CcnhDebugStarts |
CcnhDebugStarts |
326 |
|
|
327 |
C-- Do exchanges that require messages i.e. between |
C-- Do exchanges that require messages i.e. between |
328 |
C-- processes. |
C-- processes. |
329 |
C _EXCH_XY_R8( cg2d_s, myThid ) |
C _EXCH_XY_RL( cg2d_s, myThid ) |
330 |
#ifdef LETS_MAKE_JAM |
#ifdef LETS_MAKE_JAM |
331 |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
CALL EXCH_XY_O1_R8_JAM( cg2d_s ) |
332 |
#else |
#else |
372 |
#ifdef CG2D_SINGLECPU_SUM |
#ifdef CG2D_SINGLECPU_SUM |
373 |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, alpha, myThid) |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, alpha, myThid) |
374 |
#else |
#else |
375 |
c _GLOBAL_SUM_R8(alpha,myThid) |
c _GLOBAL_SUM_RL(alpha,myThid) |
376 |
CALL GLOBAL_SUM_TILE_RL( alphaTile, alpha, myThid ) |
CALL GLOBAL_SUM_TILE_RL( alphaTile, alpha, myThid ) |
377 |
#endif |
#endif |
378 |
CcnhDebugStarts |
CcnhDebugStarts |
408 |
#ifdef CG2D_SINGLECPU_SUM |
#ifdef CG2D_SINGLECPU_SUM |
409 |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, err, myThid) |
CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, err, myThid) |
410 |
#else |
#else |
411 |
c _GLOBAL_SUM_R8( err , myThid ) |
c _GLOBAL_SUM_RL( err , myThid ) |
412 |
CALL GLOBAL_SUM_TILE_RL( errTile, err, myThid ) |
CALL GLOBAL_SUM_TILE_RL( errTile, err, myThid ) |
413 |
#endif |
#endif |
414 |
err = SQRT(err) |
err = SQRT(err) |
450 |
|
|
451 |
C The following exchange was moved up to solve_for_pressure |
C The following exchange was moved up to solve_for_pressure |
452 |
C for compatibility with TAMC. |
C for compatibility with TAMC. |
453 |
C _EXCH_XY_R8(cg2d_x, myThid ) |
C _EXCH_XY_RL(cg2d_x, myThid ) |
454 |
c _BEGIN_MASTER( myThid ) |
c _BEGIN_MASTER( myThid ) |
455 |
c WRITE(*,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
c WRITE(*,'(A,I6,1PE30.14)') ' CG2D iters, err = ', |
456 |
c & actualIts, actualResidual |
c & actualIts, actualResidual |
482 |
C ENDDO |
C ENDDO |
483 |
C ENDDO |
C ENDDO |
484 |
C ENDDO |
C ENDDO |
485 |
C _GLOBAL_SUM_R8( err , myThid ) |
C _GLOBAL_SUM_RL( err , myThid ) |
486 |
C write(*,*) 'cg2d: Ax - b = ',SQRT(err) |
C write(*,*) 'cg2d: Ax - b = ',SQRT(err) |
487 |
CcnhDebugEnds |
CcnhDebugEnds |
488 |
|
|