113 |
INTEGER i,j,k |
INTEGER i,j,k |
114 |
_RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
115 |
_RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
116 |
|
_RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
117 |
|
_RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
118 |
_RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
119 |
_RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
120 |
_RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
241 |
C-- tracer cell faces. |
C-- tracer cell faces. |
242 |
DO j=jMin,jMax |
DO j=jMin,jMax |
243 |
DO i=iMin,iMax |
DO i=iMin,iMax |
244 |
|
uFld(i,j) = uVel(i,j,bi,bj) |
245 |
|
vFld(i,j) = vVel(i,j,bi,bj) |
246 |
uTrans(i,j) = uVel(i,j,bi,bj)*xA(i,j) |
uTrans(i,j) = uVel(i,j,bi,bj)*xA(i,j) |
247 |
vTrans(i,j) = vVel(i,j,bi,bj)*yA(i,j) |
vTrans(i,j) = vVel(i,j,bi,bj)*yA(i,j) |
248 |
ENDDO |
ENDDO |
347 |
IF ( advectionScheme.EQ.ENUM_UPWIND_1RST |
IF ( advectionScheme.EQ.ENUM_UPWIND_1RST |
348 |
& .OR. advectionScheme.EQ.ENUM_DST2 ) THEN |
& .OR. advectionScheme.EQ.ENUM_DST2 ) THEN |
349 |
CALL GAD_DST2U1_ADV_X( bi,bj,k, advectionScheme, |
CALL GAD_DST2U1_ADV_X( bi,bj,k, advectionScheme, |
350 |
I SEAICE_deltaTtherm,uTrans,uVel,localTij, |
I SEAICE_deltaTtherm,uTrans,uFld,localTij, |
351 |
O af, myThid ) |
O af, myThid ) |
352 |
ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN |
ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN |
353 |
CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
354 |
I uTrans, uVel, maskLocW, localTij, |
I uTrans, uFld, maskLocW, localTij, |
355 |
O af, myThid ) |
O af, myThid ) |
356 |
ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN |
ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN |
357 |
CALL GAD_DST3_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_DST3_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
358 |
I uTrans, uVel, maskLocW, localTij, |
I uTrans, uFld, maskLocW, localTij, |
359 |
O af, myThid ) |
O af, myThid ) |
360 |
ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
361 |
CALL GAD_DST3FL_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_DST3FL_ADV_X( bi,bj,k, SEAICE_deltaTtherm, |
362 |
I uTrans, uVel, maskLocW, localTij, |
I uTrans, uFld, maskLocW, localTij, |
363 |
O af, myThid ) |
O af, myThid ) |
364 |
ELSE |
ELSE |
365 |
STOP |
STOP |
505 |
IF ( advectionScheme.EQ.ENUM_UPWIND_1RST |
IF ( advectionScheme.EQ.ENUM_UPWIND_1RST |
506 |
& .OR. advectionScheme.EQ.ENUM_DST2 ) THEN |
& .OR. advectionScheme.EQ.ENUM_DST2 ) THEN |
507 |
CALL GAD_DST2U1_ADV_Y( bi,bj,k, advectionScheme, |
CALL GAD_DST2U1_ADV_Y( bi,bj,k, advectionScheme, |
508 |
I SEAICE_deltaTtherm,vTrans,vVel,localTij, |
I SEAICE_deltaTtherm,vTrans,vFld,localTij, |
509 |
O af, myThid ) |
O af, myThid ) |
510 |
ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN |
ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN |
511 |
CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
512 |
I vTrans, vVel, maskLocS, localTij, |
I vTrans, vFld, maskLocS, localTij, |
513 |
O af, myThid ) |
O af, myThid ) |
514 |
ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN |
ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN |
515 |
CALL GAD_DST3_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_DST3_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
516 |
I vTrans, vVel, maskLocS, localTij, |
I vTrans, vFld, maskLocS, localTij, |
517 |
O af, myThid ) |
O af, myThid ) |
518 |
ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
519 |
CALL GAD_DST3FL_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
CALL GAD_DST3FL_ADV_Y( bi,bj,k, SEAICE_deltaTtherm, |
520 |
I vTrans, vVel, maskLocS, localTij, |
I vTrans, vFld, maskLocS, localTij, |
521 |
O af, myThid ) |
O af, myThid ) |
522 |
ELSE |
ELSE |
523 |
STOP |
STOP |