6 |
CBOP |
CBOP |
7 |
C !ROUTINE: SOLVE_FOR_PRESSURE |
C !ROUTINE: SOLVE_FOR_PRESSURE |
8 |
C !INTERFACE: |
C !INTERFACE: |
9 |
SUBROUTINE SOLVE_FOR_PRESSURE( myThid ) |
SUBROUTINE SOLVE_FOR_PRESSURE(myTime, myIter, myThid) |
10 |
|
|
11 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
12 |
C *==========================================================* |
C *==========================================================* |
25 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
26 |
#include "GRID.h" |
#include "GRID.h" |
27 |
#include "SURFACE.h" |
#include "SURFACE.h" |
28 |
|
#include "FFIELDS.h" |
29 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
30 |
#include "SOLVE_FOR_PRESSURE3D.h" |
#include "SOLVE_FOR_PRESSURE3D.h" |
31 |
#include "GW.h" |
#include "GW.h" |
37 |
|
|
38 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
39 |
C == Routine arguments == |
C == Routine arguments == |
40 |
C myThid - Number of this instance of SOLVE_FOR_PRESSURE |
C myTime - Current time in simulation |
41 |
INTEGER myThid |
C myIter - Current iteration number in simulation |
42 |
|
C myThid - Thread number for this instance of SOLVE_FOR_PRESSURE |
43 |
|
_RL myTime |
44 |
|
INTEGER myIter |
45 |
|
INTEGER myThid |
46 |
|
|
47 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
48 |
C == Local variables == |
C == Local variables == |
97 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
98 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
99 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
100 |
DO j=1,sNy |
IF ( nonHydrostatic ) THEN |
101 |
DO i=1,sNx |
DO j=1,sNy |
102 |
cg2d_b(i,j,bi,bj) = cg2d_b(i,j,bi,bj) |
DO i=1,sNx |
103 |
& -freeSurfFac*_rA(i,j,bi,bj)/deltaTMom/deltaTMom |
cg2d_b(i,j,bi,bj) = cg2d_b(i,j,bi,bj) |
104 |
& *( etaN(i,j,bi,bj) |
& -freeSurfFac*_rA(i,j,bi,bj)/deltaTMom/deltaTMom |
105 |
& +phi_nh(i,j,1,bi,bj)*horiVertRatio/gravity ) |
& *( etaN(i,j,bi,bj) |
106 |
cg3d_b(i,j,1,bi,bj) = cg3d_b(i,j,1,bi,bj) |
& +phi_nh(i,j,1,bi,bj)*horiVertRatio/gravity ) |
107 |
& -freeSurfFac*_rA(i,j,bi,bj)/deltaTMom/deltaTMom |
cg3d_b(i,j,1,bi,bj) = cg3d_b(i,j,1,bi,bj) |
108 |
& *( etaN(i,j,bi,bj) |
& -freeSurfFac*_rA(i,j,bi,bj)/deltaTMom/deltaTMom |
109 |
& +phi_nh(i,j,1,bi,bj)*horiVertRatio/gravity ) |
& *( etaN(i,j,bi,bj) |
110 |
|
& +phi_nh(i,j,1,bi,bj)*horiVertRatio/gravity ) |
111 |
|
ENDDO |
112 |
ENDDO |
ENDDO |
113 |
ENDDO |
ELSEIF ( exactConserv ) THEN |
114 |
#else |
#else |
115 |
IF ( exactConserv ) THEN |
IF ( exactConserv ) THEN |
116 |
c IF (nonlinFreeSurf.GT.0) THEN |
#endif |
117 |
DO j=1,sNy |
DO j=1,sNy |
118 |
DO i=1,sNx |
DO i=1,sNx |
119 |
cg2d_b(i,j,bi,bj) = cg2d_b(i,j,bi,bj) |
cg2d_b(i,j,bi,bj) = cg2d_b(i,j,bi,bj) |
130 |
ENDDO |
ENDDO |
131 |
ENDDO |
ENDDO |
132 |
ENDIF |
ENDIF |
|
#endif |
|
133 |
|
|
134 |
#ifdef ALLOW_OBCS |
#ifdef ALLOW_OBCS |
135 |
IF (useOBCS) THEN |
IF (useOBCS) THEN |