| 240 |
C or product of matrix (Jacobian) times vector. For iCode = 0, terminate |
C or product of matrix (Jacobian) times vector. For iCode = 0, terminate |
| 241 |
C iteration |
C iteration |
| 242 |
IF (iCode.EQ.1) THEN |
IF (iCode.EQ.1) THEN |
| 243 |
C Call preconditioner |
C Call preconditioner |
| 244 |
CALL SEAICE_PRECONDITIONER( |
IF ( SOLV_MAX_ITERS .GT. 0 ) |
| 245 |
|
& CALL SEAICE_PRECONDITIONER( |
| 246 |
U duIce, dvIce, |
U duIce, dvIce, |
| 247 |
I zetaPre, etaPre, dwatPre, pressPre, |
I zetaPre, etaPre, dwatPre, pressPre, |
| 248 |
I newtonIter, krylovIter, myTime, myIter, myThid ) |
I newtonIter, krylovIter, myTime, myIter, myThid ) |
| 293 |
C |
C |
| 294 |
C-- Output diagnostics |
C-- Output diagnostics |
| 295 |
C |
C |
| 296 |
|
IF ( SEAICE_monFreq .GT. 0. _d 0 ) THEN |
| 297 |
C Count iterations |
C Count iterations |
| 298 |
totalJFNKtimeSteps = totalJFNKtimeSteps + 1 |
totalJFNKtimeSteps = totalJFNKtimeSteps + 1 |
| 299 |
totalNewtonIters = totalNewtonIters + newtonIter |
totalNewtonIters = totalNewtonIters + newtonIter |
| 300 |
totalKrylovIters = totalKrylovIters + totalKrylovItersLoc |
totalKrylovIters = totalKrylovIters + totalKrylovItersLoc |
| 301 |
C Record failure |
C Record failure |
| 302 |
totalKrylovFails = totalKrylovFails + krylovFails |
totalKrylovFails = totalKrylovFails + krylovFails |
| 303 |
IF ( newtonIter .EQ. SEAICEnewtonIterMax ) THEN |
IF ( newtonIter .EQ. SEAICEnewtonIterMax ) THEN |
| 304 |
totalNewtonFails = totalNewtonFails + 1 |
totalNewtonFails = totalNewtonFails + 1 |
| 305 |
|
ENDIF |
| 306 |
ENDIF |
ENDIF |
| 307 |
C Decide whether it is time to dump and reset the counter |
C Decide whether it is time to dump and reset the counter |
| 308 |
IF ( DIFFERENT_MULTIPLE(SEAICE_monFreq,myTime+deltaTClock, |
IF ( DIFFERENT_MULTIPLE(SEAICE_monFreq,myTime+deltaTClock, |