25 |
IMPLICIT NONE |
IMPLICIT NONE |
26 |
C == Global variables == |
C == Global variables == |
27 |
#include "SIZE.h" |
#include "SIZE.h" |
|
#include "DYNVARS.h" |
|
28 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
29 |
#include "PARAMS.h" |
#include "PARAMS.h" |
30 |
#include "GRID.h" |
#include "GRID.h" |
|
#include "RESTART.h" |
|
31 |
#include "SURFACE.h" |
#include "SURFACE.h" |
32 |
|
#include "RESTART.h" |
33 |
|
#include "DYNVARS.h" |
34 |
|
#ifdef ALLOW_NONHYDROSTATIC |
35 |
|
#include "NH_VARS.h" |
36 |
|
#endif |
37 |
|
|
38 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
39 |
C == Routine Arguments == |
C == Routine Arguments == |
60 |
_RL phxFac,phyFac, psFac |
_RL phxFac,phyFac, psFac |
61 |
_RL gUtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gUtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
62 |
_RL gVtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gVtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
63 |
|
#ifdef ALLOW_NONHYDROSTATIC |
64 |
|
_RL nhFac |
65 |
|
#endif |
66 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
67 |
C Allow diagnosis of external forcing |
C Allow diagnosis of external forcing |
68 |
LOGICAL DIAGNOSTICS_IS_ON |
LOGICAL DIAGNOSTICS_IS_ON |
81 |
|
|
82 |
C-- explicit part of the surface potential gradient is added in this S/R |
C-- explicit part of the surface potential gradient is added in this S/R |
83 |
psFac = pfFacMom*(1. _d 0 - implicSurfPress) |
psFac = pfFacMom*(1. _d 0 - implicSurfPress) |
84 |
|
& *recip_deepFacC(k)*recip_rhoFacC(k) |
85 |
|
|
86 |
C-- factors for gradient (X & Y directions) of Hydrostatic Potential |
C-- factors for gradient (X & Y directions) of Hydrostatic Potential |
87 |
phxFac = pfFacMom |
phxFac = pfFacMom |
329 |
ENDDO |
ENDDO |
330 |
ENDIF |
ENDIF |
331 |
|
|
332 |
|
#ifdef ALLOW_NONHYDROSTATIC |
333 |
|
C-- explicit part of the NH pressure gradient is added here |
334 |
|
IF ( use3Dsolver .AND. implicitNHPress.NE.1. _d 0 ) THEN |
335 |
|
nhFac = pfFacMom*(1. _d 0 - implicitNHPress) |
336 |
|
& *recip_deepFacC(k)*recip_rhoFacC(k) |
337 |
|
DO j=jMin,jMax |
338 |
|
DO i=iMin,iMax |
339 |
|
gUtmp(i,j) = gUtmp(i,j) |
340 |
|
& - nhFac*_recip_dxC(i,j,bi,bj)* |
341 |
|
& (phi_nh(i,j,k,bi,bj)-phi_nh(i-1,j,k,bi,bj)) |
342 |
|
gVtmp(i,j) = gVtmp(i,j) |
343 |
|
& - nhFac*_recip_dyC(i,j,bi,bj)* |
344 |
|
& (phi_nh(i,j,k,bi,bj)-phi_nh(i,j-1,k,bi,bj)) |
345 |
|
ENDDO |
346 |
|
ENDDO |
347 |
|
ENDIF |
348 |
|
#endif ALLOW_NONHYDROSTATIC |
349 |
|
|
350 |
C Step forward zonal velocity (store in Gu) |
C Step forward zonal velocity (store in Gu) |
351 |
DO j=jMin,jMax |
DO j=jMin,jMax |
352 |
DO i=iMin,iMax |
DO i=iMin,iMax |