48 |
EXTERNAL SW_TEMP |
EXTERNAL SW_TEMP |
49 |
CEOP |
CEOP |
50 |
|
|
51 |
C-- Loops on tile indices bi,bj |
C-- Check for water below freezing point. |
52 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
53 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
54 |
DO k = 2, Nr |
DO j=1-OLy,sNy+OLy |
55 |
DO j=1-OLy,sNy+OLy |
DO i=1-OLx,sNx+OLx |
56 |
DO i=1-OLx,sNx+OLx |
kTop = kSurfC(i,j,bi,bj) |
57 |
C Check for water below freezing point. |
DO k = (kTop+1), Nr |
58 |
IF ( maskC(i,j,k-1,bi,bj) .NE. 0. _d 0 .AND. |
IF ( maskC(i,j,k-1,bi,bj) .NE. 0. _d 0 .AND. |
59 |
& maskC(i,j,k, bi,bj) .NE. 0. _d 0 ) THEN |
& maskC(i,j,k, bi,bj) .NE. 0. _d 0 ) THEN |
60 |
|
|
78 |
|
|
79 |
IF (tLoc .LT. Tfreezing) THEN |
IF (tLoc .LT. Tfreezing) THEN |
80 |
C Move the negative heat to surface level. |
C Move the negative heat to surface level. |
81 |
kTop = kSurfC(i,j,bi,bj) |
Tresid = Tfreezing - tloc |
82 |
Tresid = Tfreezing - tloc |
FrazilForcingT(i,j,k,bi,bj) = |
83 |
frazil_TendT(i,j,k,bi,bj) = Tresid / dTtracerLev(k) |
& Tresid / dTtracerLev(k) |
84 |
frazil_TendT(i,j,kTop,bi,bj) = - Tresid * |
& * HeatCapacity_Cp * rUnit2mass |
85 |
& ( hFacC(i,j,k,bi,bj) * dRf(k) * |
& * drF(k) * _hFacC(i,j,k,bi,bj) |
86 |
& recip_hFacC(i,j,kTop,bi,bj) * recip_drF(kTop) ) / |
FrazilForcingT(i,j,kTop,bi,bj) = |
87 |
& dTtracerLev(kTop) |
& - Tresid / dTtracerLev(kTop) |
88 |
|
& * HeatCapacity_Cp * rUnit2mass |
89 |
|
& * drF(k) * _hFacC(i,j,k,bi,bj) |
90 |
ENDIF |
ENDIF |
|
|
|
91 |
ENDIF |
ENDIF |
92 |
ENDDO |
ENDDO |
93 |
ENDDO |
ENDDO |
94 |
ENDDO |
ENDDO |
|
C-- end bi,bj loops. |
|
95 |
ENDDO |
ENDDO |
96 |
ENDDO |
ENDDO |
97 |
|
|