7 |
C include SURFACE.h |
C include SURFACE.h |
8 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
9 |
C *==========================================================* |
C *==========================================================* |
10 |
C | SURFACE.h |
C | SURFACE.h |
11 |
C | o Header file defining surface-related model varaibles |
C | o Header file defining surface-related model variables |
12 |
C *==========================================================* |
C *==========================================================* |
13 |
C | Contains variables relative to the surface position |
C | Contains variables relative to the surface position |
14 |
C | that are held fixed in linear free-surface formulation |
C | that are held fixed in linear free-surface formulation |
15 |
C | but can vary with time with a non-linear free-surface. |
C | but can vary with time with a non-linear free-surface. |
16 |
C *==========================================================* |
C *==========================================================* |
17 |
C \ev |
C \ev |
18 |
CEOP |
CEOP |
28 |
_RS topoZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS topoZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
29 |
_RS phi0surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS phi0surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
30 |
|
|
31 |
C-- COMMON /SURF_INDEX/ Common block for surface related index |
C-- COMMON /SURF_CORREC/ Common block for correction of source/sink of |
32 |
C ksurfC :: vertical index of the surface tracer cell |
C-- Tracer due to W at the surface with Linear |
33 |
C ksurfW :: vertical index of the surface U point |
C-- Free Surface |
34 |
C ksurfS :: vertical index of the surface V point |
C TsurfCor :: Pot.Temp Linear-Free-Surface correction term [K.r_Unit/s] |
35 |
C IMPORTANT: ksurfC,W,S = Nr+1 where the fluid column is empty (continent) |
C SsurfCor :: Salinity Linear-Free-Surface correction term [psu.r_Unit/s] |
36 |
COMMON /SURF_INDEX/ ksurfC, ksurfW, ksurfS |
COMMON /SURF_CORREC/ TsurfCor, SsurfCor |
37 |
INTEGER ksurfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL TsurfCor |
38 |
INTEGER ksurfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL SsurfCor |
|
INTEGER ksurfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
39 |
|
|
40 |
#ifdef EXACT_CONSERV |
#ifdef EXACT_CONSERV |
41 |
C hDivFlow :: Div. Barotropic Flow at current time [transport unit m3/s] |
C etaHnm1 :: surface r-anomaly, etaH, at previous time level |
42 |
COMMON /EXACT_ETA_LOCAL/ hDivFlow |
C dEtaHdt :: time derivative of total column height [r_unit/s = w unit] |
43 |
_RL hDivFlow(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) |
C PmEpR :: keep the fresh water input (=-EmPmR) of the previous time step |
44 |
|
COMMON /EXACT_ETA_LOCAL/ etaHnm1, dEtaHdt, PmEpR |
45 |
|
_RL etaHnm1(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) |
46 |
|
_RL dEtaHdt(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) |
47 |
|
_RS PmEpR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
48 |
#endif |
#endif |
49 |
|
|
50 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
53 |
C center (Tracer point) |
C center (Tracer point) |
54 |
C hFac_surfW :: idem, West interface (U point) |
C hFac_surfW :: idem, West interface (U point) |
55 |
C hFac_surfS :: idem, South interface (V point) |
C hFac_surfS :: idem, South interface (V point) |
|
C PmEpR :: keep the fresh water input (=-EmPmR) of the previous time step |
|
56 |
COMMON /SURF_CHANGE/ |
COMMON /SURF_CHANGE/ |
57 |
& hFac_surfC, hFac_surfW, hFac_surfS, |
& hFac_surfC, hFac_surfW, hFac_surfS |
|
& PmEpR |
|
58 |
_RS hFac_surfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS hFac_surfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
59 |
_RS hFac_surfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS hFac_surfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
60 |
_RS hFac_surfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RS hFac_surfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
61 |
_RS PmEpR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
62 |
|
C Local variables in common block |
63 |
|
C Rmin_surf :: minimum r_value of the free surface position |
64 |
|
C that satisfy the hFacInf criteria |
65 |
|
COMMON /LOCAL_CALC_SURF_DR/ Rmin_surf |
66 |
|
_RL Rmin_surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
67 |
|
|
68 |
C-- COMMON /RSTAR_CHANGE/ transient variables used with r* Coordinate |
C-- COMMON /RSTAR_CHANGE/ transient variables used with r* Coordinate |
69 |
C rStarFacC :: = dr/dr* = ratio of r-thickness / r*-thickness = h^n / H |
C rStarFacC :: = dr/dr* = ratio of r-thickness / r*-thickness = h^n / H |
72 |
C rStarExpC :: column expansion factor = h^n+1/h^n , Centered |
C rStarExpC :: column expansion factor = h^n+1/h^n , Centered |
73 |
C rStarExpW :: column expansion factor = h^n+1/h^n , Western face |
C rStarExpW :: column expansion factor = h^n+1/h^n , Western face |
74 |
C rStarExpS :: column expansion factor = h^n+1/h^n , Southern face |
C rStarExpS :: column expansion factor = h^n+1/h^n , Southern face |
75 |
C rStarDhCDt:: relative time derivative of h_Center = d.eta/dt / H |
C rStarDhCDt:: relative time derivative of h_Center = d.eta/dt / H |
76 |
C rStarDhWDt:: relative time derivative of h_West_face (u.point) |
C rStarDhWDt:: relative time derivative of h_West_face (u.point) |
77 |
C rStarDhSDt:: relative time derivative of h_South_face (v.point) |
C rStarDhSDt:: relative time derivative of h_South_face (v.point) |
78 |
COMMON /RSTAR_CHANGE/ |
COMMON /RSTAR_CHANGE/ |
99 |
_RS h0FacW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
_RS h0FacW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
100 |
_RS h0FacS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
_RS h0FacS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
101 |
|
|
102 |
|
C-- COMMON /SIGMA_CHANGE/ transient variables used with r* Coordinate |
103 |
|
C etaHw :: surface r-anomaly (etaH) at Western edge (U location) |
104 |
|
C etaHs :: surface r-anomaly (etaH) at Southern edge (V location) |
105 |
|
C dEtaWdt :: time derivative of etaH at Western edge (U location) |
106 |
|
C dEtaSdt :: time derivative of etaH at Southern edge (V location) |
107 |
|
COMMON /SIGMA_CHANGE/ |
108 |
|
& etaHw, etaHs, |
109 |
|
& dEtaWdt, dEtaSdt |
110 |
|
_RL etaHw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
111 |
|
_RL etaHs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
112 |
|
_RL dEtaWdt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
113 |
|
_RL dEtaSdt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
114 |
#endif /* NONLIN_FRSURF */ |
#endif /* NONLIN_FRSURF */ |