29 |
#include "THSICE_PARAMS.h" |
#include "THSICE_PARAMS.h" |
30 |
#include "THSICE_VARS.h" |
#include "THSICE_VARS.h" |
31 |
#include "THSICE_TAVE.h" |
#include "THSICE_TAVE.h" |
32 |
|
#include "THSICE_2DYN.h" |
33 |
INTEGER siLo, siHi, sjLo, sjHi |
INTEGER siLo, siHi, sjLo, sjHi |
34 |
PARAMETER ( siLo = 1-OLx , siHi = sNx+OLx ) |
PARAMETER ( siLo = 1-OLx , siHi = sNx+OLx ) |
35 |
PARAMETER ( sjLo = 1-OLy , sjHi = sNy+OLy ) |
PARAMETER ( sjLo = 1-OLy , sjHi = sNy+OLy ) |
265 |
|
|
266 |
IF ( hOceMxL(i,j,bi,bj).GT.0. _d 0 ) |
IF ( hOceMxL(i,j,bi,bj).GT.0. _d 0 ) |
267 |
& isIceFree(i,j) = iceMask(i,j,bi,bj).LE.0. _d 0 |
& isIceFree(i,j) = iceMask(i,j,bi,bj).LE.0. _d 0 |
268 |
& .AND. iceFrac(i,j) .LE.0. _d 0 |
& .AND. iceFrac(i,j) .LE.0. _d 0 |
269 |
IF ( iceFrac(i,j) .GT. 0. _d 0 ) THEN |
IF ( iceFrac(i,j) .GT. 0. _d 0 ) THEN |
270 |
iceMask(i,j,bi,bj)=iceFrac(i,j) |
iceMask(i,j,bi,bj)=iceFrac(i,j) |
271 |
IF ( snowHeight(i,j,bi,bj).EQ.0. _d 0 ) |
IF ( snowHeight(i,j,bi,bj).EQ.0. _d 0 ) |
292 |
ENDDO |
ENDDO |
293 |
ENDDO |
ENDDO |
294 |
|
|
295 |
|
IF ( thSIceAdvScheme.GT.0 ) THEN |
296 |
|
C-- note: those fluxes should to be added directly to Qnet, EmPmR & saltFlux |
297 |
|
DO j = jMin, jMax |
298 |
|
DO i = iMin, iMax |
299 |
|
IF ( hOceMxL(i,j,bi,bj).GT.0. _d 0 ) THEN |
300 |
|
Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) - oceQnet(i,j,bi,bj) |
301 |
|
EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- oceFWfx(i,j,bi,bj)/rhofw |
302 |
|
saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - oceSflx(i,j,bi,bj) |
303 |
|
ENDIF |
304 |
|
ENDDO |
305 |
|
ENDDO |
306 |
|
ENDIF |
307 |
|
|
308 |
#ifdef ALLOW_BULK_FORCE |
#ifdef ALLOW_BULK_FORCE |
309 |
IF ( useBulkForce ) THEN |
IF ( useBulkForce ) THEN |
310 |
CALL BULKF_FLUX_ADJUST( |
CALL BULKF_FLUX_ADJUST( |