76 |
_RL JFNKgamma_lin |
_RL JFNKgamma_lin |
77 |
_RL FGMRESeps |
_RL FGMRESeps |
78 |
_RL JFNKtol |
_RL JFNKtol |
79 |
C Adams-Bashforth extrapolation factors |
C backward differences extrapolation factors |
80 |
_RL abFac, abAlpha |
_RL bdfFac, bdfAlpha |
81 |
C |
C |
82 |
_RL recip_deltaT |
_RL recip_deltaT |
83 |
LOGICAL JFNKconverged, krylovConverged |
LOGICAL JFNKconverged, krylovConverged |
87 |
C u/vIceRes :: residual of sea-ice momentum equations |
C u/vIceRes :: residual of sea-ice momentum equations |
88 |
_RL uIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL uIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
89 |
_RL vIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL vIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
90 |
C extra time level required for Adams-Bashforth-2 time stepping |
C extra time level required for backward difference time stepping |
91 |
_RL duIcNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL duIcNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
92 |
_RL dvIcNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL dvIcNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
93 |
C du/vIce :: ice velocity increment to be added to u/vIce |
C du/vIce :: ice velocity increment to be added to u/vIce |
118 |
& DIFFERENT_MULTIPLE( SEAICE_monFreq, myTime, deltaTClock ) ) |
& DIFFERENT_MULTIPLE( SEAICE_monFreq, myTime, deltaTClock ) ) |
119 |
& iOutFGMRES=1 |
& iOutFGMRES=1 |
120 |
|
|
121 |
C Adams-Bashforth extrapolation factors |
C backward difference extrapolation factors |
122 |
abFac = 0. _d 0 |
bdfFac = 0. _d 0 |
123 |
IF ( SEAICEuseAB2 ) THEN |
IF ( SEAICEuseBDF2 ) THEN |
124 |
IF ( myIter.EQ.nIter0 .AND. SEAICEmomStartAB.EQ.0 ) THEN |
IF ( myIter.EQ.nIter0 .AND. SEAICEmomStartBDF.EQ.0 ) THEN |
125 |
abFac = 0. _d 0 |
bdfFac = 0. _d 0 |
126 |
ELSE |
ELSE |
127 |
abFac = 0.5 _d 0 + SEAICE_abEps |
bdfFac = 0.5 _d 0 |
128 |
ENDIF |
ENDIF |
129 |
ENDIF |
ENDIF |
130 |
abAlpha = 1. _d 0 + abFac |
bdfAlpha = 1. _d 0 + bdfFac |
131 |
|
|
132 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
133 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
142 |
C cycle ice velocities |
C cycle ice velocities |
143 |
DO J=1-OLy,sNy+OLy |
DO J=1-OLy,sNy+OLy |
144 |
DO I=1-OLx,sNx+OLx |
DO I=1-OLx,sNx+OLx |
145 |
duIcNm1(I,J,bi,bj) = uIce(I,J,bi,bj) * abAlpha |
duIcNm1(I,J,bi,bj) = uIce(I,J,bi,bj) * bdfAlpha |
146 |
& + ( uIce(I,J,bi,bj) - uIceNm1(I,J,bi,bj) ) * abFac |
& + ( uIce(I,J,bi,bj) - uIceNm1(I,J,bi,bj) ) * bdfFac |
147 |
dvIcNm1(I,J,bi,bj) = vIce(I,J,bi,bj) * abAlpha |
dvIcNm1(I,J,bi,bj) = vIce(I,J,bi,bj) * bdfAlpha |
148 |
& + ( vIce(I,J,bi,bj) - vIceNm1(I,J,bi,bj) ) * abFac |
& + ( vIce(I,J,bi,bj) - vIceNm1(I,J,bi,bj) ) * bdfFac |
149 |
uIceNm1(I,J,bi,bj) = uIce(I,J,bi,bj) |
uIceNm1(I,J,bi,bj) = uIce(I,J,bi,bj) |
150 |
vIceNm1(I,J,bi,bj) = vIce(I,J,bi,bj) |
vIceNm1(I,J,bi,bj) = vIce(I,J,bi,bj) |
151 |
ENDDO |
ENDDO |