1 |
C $Header$ |
C $Header$ |
2 |
|
C !DESCRIPTION: \bv |
3 |
C $Name$ |
C $Name$ |
4 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
5 |
|
|
6 |
|
CBOP |
7 |
|
C !ROUTINE: CALC_GW |
8 |
|
C !INTERFACE: |
9 |
SUBROUTINE CALC_GW( |
SUBROUTINE CALC_GW( |
10 |
I myThid) |
I myThid) |
11 |
C /==========================================================\ |
C !DESCRIPTION: \bv |
12 |
C | S/R CALC_GW | |
C *==========================================================* |
13 |
C \==========================================================/ |
C | S/R CALC_GW |
14 |
IMPLICIT NONE |
C | o Calculate vert. velocity tendency terms ( NH, QH only ) |
15 |
|
C *==========================================================* |
16 |
|
C | In NH and QH, the vertical momentum tendency must be |
17 |
|
C | calculated explicitly and included as a source term |
18 |
|
C | for a 3d pressure eqn. Calculate that term here. |
19 |
|
C | This routine is not used in HYD calculations. |
20 |
|
C *==========================================================* |
21 |
|
C \ev |
22 |
|
|
23 |
|
C !USES: |
24 |
|
IMPLICIT NONE |
25 |
C == Global variables == |
C == Global variables == |
26 |
#include "SIZE.h" |
#include "SIZE.h" |
27 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
32 |
#include "GW.h" |
#include "GW.h" |
33 |
#include "CG3D.h" |
#include "CG3D.h" |
34 |
|
|
35 |
|
C !INPUT/OUTPUT PARAMETERS: |
36 |
C == Routine arguments == |
C == Routine arguments == |
37 |
C myThid - Instance number for this innvocation of CALC_GW |
C myThid - Instance number for this innvocation of CALC_GW |
38 |
INTEGER myThid |
INTEGER myThid |
39 |
|
|
40 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
41 |
|
|
42 |
|
C !LOCAL VARIABLES: |
43 |
C == Local variables == |
C == Local variables == |
44 |
|
C bi, bj, :: Loop counters |
45 |
|
C iMin, iMax, |
46 |
|
C jMin, jMax |
47 |
|
C flx_NS :: Temp. used for fVol meridional terms. |
48 |
|
C flx_EW :: Temp. used for fVol zonal terms. |
49 |
|
C flx_Up :: Temp. used for fVol vertical terms. |
50 |
|
C flx_Dn :: Temp. used for fVol vertical terms. |
51 |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
|
_RL aF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL vF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL v4F(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL cF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL mT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL pF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL fZon (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL fMer (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
|
|
52 |
_RL flx_NS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_NS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
53 |
_RL flx_EW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_EW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
54 |
_RL flx_Dn(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_Dn(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
68 |
#define In sNx |
#define In sNx |
69 |
#define J0 1 |
#define J0 1 |
70 |
#define Jn sNy |
#define Jn sNy |
71 |
|
CEOP |
72 |
|
|
73 |
C Adams-Bashforth timestepping weights |
C Adams-Bashforth timestepping weights |
74 |
ab15=1.5+abeps |
ab15=1.5+abeps |