10 |
C !ROUTINE: THSICE_GET_EXF |
C !ROUTINE: THSICE_GET_EXF |
11 |
C !INTERFACE: |
C !INTERFACE: |
12 |
SUBROUTINE THSICE_GET_EXF( |
SUBROUTINE THSICE_GET_EXF( |
13 |
I bi, bj, siLo, siHi, sjLo, sjHi, |
I bi, bj, |
14 |
I iMin,iMax, jMin,jMax, |
I iMin,iMax, jMin,jMax, |
15 |
I iceFlag, hSnow, tsfCel, |
I iceFlag, hSnow, tsfCel, |
16 |
O flxExcSw, dFlxdT, evapLoc, dEvdT, |
O flxExcSw, dFlxdT, evapLoc, dEvdT, |
43 |
|
|
44 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
45 |
C === Routine arguments === |
C === Routine arguments === |
|
C siLo,siHi :: size of input/output array: 1rst dim. lower,higher bounds |
|
|
C sjLo,sjHi :: size of input/output array: 2nd dim. lower,higher bounds |
|
46 |
C bi,bj :: tile indices |
C bi,bj :: tile indices |
47 |
C iMin,iMax :: computation domain: 1rst index range |
C iMin,iMax :: computation domain: 1rst index range |
48 |
C jMin,jMax :: computation domain: 2nd index range |
C jMin,jMax :: computation domain: 2nd index range |
56 |
C myTime :: current Time of simulation [s] |
C myTime :: current Time of simulation [s] |
57 |
C myIter :: current Iteration number in simulation |
C myIter :: current Iteration number in simulation |
58 |
C myThid :: my Thread Id number |
C myThid :: my Thread Id number |
|
INTEGER siLo, siHi, sjLo, sjHi |
|
59 |
INTEGER bi, bj |
INTEGER bi, bj |
60 |
INTEGER iMin, iMax |
INTEGER iMin, iMax |
61 |
INTEGER jMin, jMax |
INTEGER jMin, jMax |
62 |
LOGICAL iceFlag (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
LOGICAL iceFlag (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
63 |
_RL hSnow (siLo:siHi,sjLo:sjHi) |
_RL hSnow (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
64 |
_RL tsfCel (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL tsfCel (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
65 |
_RL flxExcSw(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL flxExcSw(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
66 |
_RL dFlxdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL dFlxdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
265 |
c tmpbulk = exf_BulkCdn(sh(i,j,bi,bj)) |
c tmpbulk = exf_BulkCdn(sh(i,j,bi,bj)) |
266 |
wsm = sh(i,j,bi,bj) |
wsm = sh(i,j,bi,bj) |
267 |
tmpbulk = cdrag_1/wsm + cdrag_2 + cdrag_3*wsm |
tmpbulk = cdrag_1/wsm + cdrag_2 + cdrag_3*wsm |
268 |
rdn(i,j) = SQRT(tmpbulk) |
IF (tmpbulk.NE.0.) THEN |
269 |
|
rdn(i,j) = SQRT(tmpbulk) |
270 |
|
ELSE |
271 |
|
rdn(i,j) = 0. _d 0 |
272 |
|
ENDIF |
273 |
C-- initial guess for exchange other coefficients: |
C-- initial guess for exchange other coefficients: |
274 |
c rhn = exf_BulkRhn(stable) |
c rhn = exf_BulkRhn(stable) |
275 |
rhn = (exf_one-stable)*cstanton_1 + stable*cstanton_2 |
rhn = (exf_one-stable)*cstanton_1 + stable*cstanton_2 |