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, |