61 |
|
|
62 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
63 |
|
|
64 |
IF ( stressReduction.GT. 0. _d 0 ) THEN |
IF ( useEXF .OR. useSEAICE ) THEN |
65 |
|
C- EXF does not provide valid fields in overlap |
66 |
|
iMin = 1 |
67 |
|
iMax = sNx |
68 |
|
jMin = 1 |
69 |
|
jMax = sNy |
70 |
|
ELSEIF ( stressReduction.GT. 0. _d 0 ) THEN |
71 |
C- needs new Ice Fraction in halo region to apply wind-stress reduction |
C- needs new Ice Fraction in halo region to apply wind-stress reduction |
72 |
iMin = 1-OLx |
iMin = 1-OLx |
73 |
iMax = sNx+OLx-1 |
iMax = sNx+OLx-1 |
74 |
jMin = 1-OLy |
jMin = 1-OLy |
75 |
jMax = sNy+OLy-1 |
jMax = sNy+OLy-1 |
76 |
#ifdef ATMOSPHERIC_LOADING |
#ifdef ATMOSPHERIC_LOADING |
77 |
ELSEIF ( useRealFreshWaterFlux .AND. .NOT.useSEAICE ) THEN |
ELSEIF ( useRealFreshWaterFlux ) THEN |
78 |
C- needs sea-ice loading in part of the halo regions for grad.Phi0surf |
C- needs sea-ice loading in part of the halo regions for grad.Phi0surf |
79 |
C to be valid at the boundaries ( d/dx 1:sNx+1 ; d/dy 1:sNy+1 ) |
C to be valid at the boundaries ( d/dx 1:sNx+1 ; d/dy 1:sNy+1 ) |
80 |
iMin = 0 |
iMin = 0 |
241 |
CALL THSICE_AVE( |
CALL THSICE_AVE( |
242 |
I bi,bj, myTime, myIter, myThid ) |
I bi,bj, myTime, myIter, myThid ) |
243 |
|
|
244 |
c ENDDO |
C-- end bi,bj loop |
245 |
c ENDDO |
ENDDO |
246 |
|
ENDDO |
247 |
|
|
248 |
|
C add a small piece of code to check AddFluid implementation: |
249 |
|
c#include "thsice_test_addfluid.h" |
250 |
|
|
251 |
|
IF ( useSEAICE .OR. thSIceAdvScheme.GT.0 ) THEN |
252 |
|
C-- Exchange fields that are advected by seaice dynamics |
253 |
|
_EXCH_XY_RL( iceMask, myThid ) |
254 |
|
_EXCH_XY_RL( iceHeight, myThid ) |
255 |
|
_EXCH_XY_RL( snowHeight, myThid ) |
256 |
|
_EXCH_XY_RL( Qice1, myThid ) |
257 |
|
_EXCH_XY_RL( Qice2, myThid ) |
258 |
|
ELSEIF ( useEXF .AND. stressReduction.GT. 0. _d 0 ) THEN |
259 |
|
_EXCH_XY_RL( iceMask, myThid ) |
260 |
|
ENDIF |
261 |
|
#ifdef ATMOSPHERIC_LOADING |
262 |
|
IF ( useRealFreshWaterFlux .AND. (useEXF.OR.useSEAICE ) ) |
263 |
|
& _EXCH_XY_RS( sIceLoad, myThid ) |
264 |
|
#endif |
265 |
|
|
266 |
|
DO bj=myByLo(myThid),myByHi(myThid) |
267 |
|
DO bi=myBxLo(myThid),myBxHi(myThid) |
268 |
C-- note: If useSEAICE=.true., the stress is computed in seaice_model, |
C-- note: If useSEAICE=.true., the stress is computed in seaice_model, |
269 |
C-- and stressReduction is always set to zero |
C-- and stressReduction is always set to zero |
270 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
292 |
ENDDO |
ENDDO |
293 |
ENDDO |
ENDDO |
294 |
|
|
|
C add a small piece of code to check AddFluid implementation: |
|
|
c#include "thsice_test_addfluid.h" |
|
|
|
|
|
IF ( useSEAICE .OR. thSIceAdvScheme.GT.0 ) THEN |
|
|
C-- Exchange fields that are advected by seaice dynamics |
|
|
_EXCH_XY_RL( iceMask, myThid ) |
|
|
_EXCH_XY_RL( iceHeight, myThid ) |
|
|
_EXCH_XY_RL( snowHeight, myThid ) |
|
|
_EXCH_XY_RL( Qice1, myThid ) |
|
|
_EXCH_XY_RL( Qice2, myThid ) |
|
|
|
|
|
#ifdef ATMOSPHERIC_LOADING |
|
|
IF (useRealFreshWaterFlux) |
|
|
& _EXCH_XY_RS( sIceLoad, myThid ) |
|
|
#endif |
|
|
ENDIF |
|
|
|
|
295 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
296 |
#endif /*ALLOW_THSICE*/ |
#endif /*ALLOW_THSICE*/ |
297 |
|
|