6 |
CBOP |
CBOP |
7 |
C !ROUTINE: SOLVE_FOR_PRESSURE |
C !ROUTINE: SOLVE_FOR_PRESSURE |
8 |
C !INTERFACE: |
C !INTERFACE: |
9 |
SUBROUTINE SOLVE_FOR_PRESSURE(myTime, myIter, myThid) |
SUBROUTINE SOLVE_FOR_PRESSURE(myTime, myIter, myThid) |
10 |
|
|
11 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
12 |
C *==========================================================* |
C *==========================================================* |
42 |
C myThid - Thread number for this instance of SOLVE_FOR_PRESSURE |
C myThid - Thread number for this instance of SOLVE_FOR_PRESSURE |
43 |
_RL myTime |
_RL myTime |
44 |
INTEGER myIter |
INTEGER myIter |
45 |
INTEGER myThid |
INTEGER myThid |
46 |
|
|
47 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
48 |
C == Local variables == |
C == Local variables == |
50 |
_RS uf(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RS uf(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
51 |
_RS vf(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
_RS vf(1-Olx:sNx+Olx,1-Oly:sNy+Oly) |
52 |
_RL firstResidual,lastResidual |
_RL firstResidual,lastResidual |
53 |
|
_RL tmpFac |
54 |
INTEGER numIters |
INTEGER numIters |
55 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
56 |
CEOP |
CEOP |
65 |
#endif |
#endif |
66 |
cg2d_x(i,j,bi,bj) = Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj) |
cg2d_x(i,j,bi,bj) = Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj) |
67 |
cg2d_b(i,j,bi,bj) = 0. |
cg2d_b(i,j,bi,bj) = 0. |
|
#ifdef USE_NATURAL_BCS |
|
|
& + freeSurfFac*_rA(i,j,bi,bj)* |
|
|
& EmPmR(I,J,bi,bj)/deltaTMom |
|
|
#endif |
|
68 |
ENDDO |
ENDDO |
69 |
ENDDO |
ENDDO |
70 |
|
IF (useRealFreshWaterFlux) THEN |
71 |
|
tmpFac = freeSurfFac |
72 |
|
IF (exactConserv) tmpFac = freeSurfFac*implicDiv2DFlow |
73 |
|
DO j=1,sNy |
74 |
|
DO i=1,sNx |
75 |
|
cg2d_b(i,j,bi,bj) = |
76 |
|
& tmpFac*_rA(i,j,bi,bj)*EmPmR(i,j,bi,bj)/deltaTMom |
77 |
|
ENDDO |
78 |
|
ENDDO |
79 |
|
ENDIF |
80 |
ENDDO |
ENDDO |
81 |
ENDDO |
ENDDO |
82 |
|
|