1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
C |
C |
4 |
C /==========================================================\ |
CBOP |
5 |
C | SURFACE.h | |
C !ROUTINE: SURFACE.h |
6 |
C | o Header file defining surface-related model varaibles | |
C !INTERFACE: |
7 |
C |==========================================================| |
C include SURFACE.h |
8 |
C | Contains variables relative to the surface position | |
C !DESCRIPTION: \bv |
9 |
C | that are held fixed in linear free-surface formulation | |
C *==========================================================* |
10 |
C | but can vary with time with a non-linear free-surface. | |
C | SURFACE.h |
11 |
C \==========================================================/ |
C | o Header file defining surface-related model varaibles |
12 |
|
C *==========================================================* |
13 |
C-- COMMON /SOLVE_BAROT/ Barotropic variables common block |
C | Contains variables relative to the surface position |
14 |
C Bo_surf -Boyancy|1/rho [ocean|atmos] at surface level [= g | alpha(p_o)] |
C | that are held fixed in linear free-surface formulation |
15 |
C recip_Bo = 1/Bo_surf |
C | but can vary with time with a non-linear free-surface. |
16 |
COMMON /SOLVE_BAROT/ Bo_surf, recip_Bo |
C *==========================================================* |
17 |
_RL Bo_surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
C \ev |
18 |
|
CEOP |
19 |
|
|
20 |
|
C-- COMMON /SURF_FIXED/ fixed surface arrays (Real) |
21 |
|
C Bo_surf :: Boyancy|1/rho [ocean|atmos] at surface level [=g|alpha(p_o)] |
22 |
|
C recip_Bo :: 1/Bo_surf |
23 |
|
C topoZ :: topographic height [m] (used mainly for atmosphere) |
24 |
|
C phi0surf :: starting point for integrating phi'_Hyd |
25 |
|
COMMON /SURF_FIXED/ Bo_surf, recip_Bo, topoZ, phi0surf |
26 |
|
_RL Bo_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
27 |
_RL recip_Bo(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL recip_Bo(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
28 |
|
_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) |
30 |
|
|
31 |
|
C-- COMMON /SURF_INDEX/ Common block for surface related index |
32 |
|
C ksurfC :: vertical index of the surface tracer cell |
33 |
|
C ksurfW :: vertical index of the surface U point |
34 |
|
C ksurfS :: vertical index of the surface V point |
35 |
|
C IMPORTANT: ksurfC,W,S = Nr+1 where the fluid column is empty (continent) |
36 |
|
COMMON /SURF_INDEX/ ksurfC, ksurfW, ksurfS |
37 |
|
INTEGER ksurfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
38 |
|
INTEGER ksurfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
39 |
|
INTEGER ksurfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
40 |
|
|
41 |
|
#ifdef EXACT_CONSERV |
42 |
|
C hDivFlow :: Div. Barotropic Flow at current time [transport unit m3/s] |
43 |
|
COMMON /EXACT_ETA_LOCAL/ hDivFlow |
44 |
|
_RL hDivFlow(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) |
45 |
|
#endif |
46 |
|
|
47 |
|
#ifdef NONLIN_FRSURF |
48 |
|
C-- COMMON /SURF_CHANGE/ transient variables used for Non-Lin Free-Surf |
49 |
|
C hFac_surfC :: New thickness factor of the surface level |
50 |
|
C center (Tracer point) |
51 |
|
C hFac_surfW :: idem, West interface (U point) |
52 |
|
C hFac_surfS :: idem, South interface (V point) |
53 |
|
C PmEpR :: keep the fresh water input (=-EmPmR) of the previous time step |
54 |
|
COMMON /SURF_CHANGE/ |
55 |
|
& hFac_surfC, hFac_surfW, hFac_surfS, |
56 |
|
& PmEpR |
57 |
|
_RS hFac_surfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
58 |
|
_RS hFac_surfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
59 |
|
_RS hFac_surfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
60 |
|
_RS PmEpR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
61 |
|
|
62 |
|
C-- COMMON /RSTAR_CHANGE/ transient variables used with r* Coordinate |
63 |
|
C rStarFacC :: = dr/dr* = ratio of r-thickness / r*-thickness = h^n / H |
64 |
|
C rStarFacW :: same but for West face |
65 |
|
C rStarFacS :: same but for South face |
66 |
|
C rStarExpC :: column expansion factor = h^n+1/h^n , Centered |
67 |
|
C rStarExpW :: column expansion factor = h^n+1/h^n , Western face |
68 |
|
C rStarExpS :: column expansion factor = h^n+1/h^n , Southern face |
69 |
|
C rStarDhCDt:: relative time derivative of h_Center = d.eta/dt / H |
70 |
|
C rStarDhWDt:: relative time derivative of h_West_face (u.point) |
71 |
|
C rStarDhSDt:: relative time derivative of h_South_face (v.point) |
72 |
|
COMMON /RSTAR_CHANGE/ |
73 |
|
& rStarFacC, rStarFacW, rStarFacS, |
74 |
|
& rStarExpC, rStarExpW, rStarExpS, |
75 |
|
& rStarDhCDt,rStarDhWDt,rStarDhSDt |
76 |
|
_RL rStarFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
77 |
|
_RL rStarFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
78 |
|
_RL rStarFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
79 |
|
_RL rStarExpC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
80 |
|
_RL rStarExpW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
81 |
|
_RL rStarExpS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
82 |
|
_RL rStarDhCDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
83 |
|
_RL rStarDhWDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
84 |
|
_RL rStarDhSDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
85 |
|
|
86 |
|
C-- COMMON /RSTAR_FIXED/ fixed thickness ratio ( r* discretization ) |
87 |
|
C h0FacC :: initial (and fixed in time) hFacC factor |
88 |
|
C h0FacW :: initial (and fixed in time) hFacW factor |
89 |
|
C h0FacS :: initial (and fixed in time) hFacS factor |
90 |
|
COMMON /RSTAR_FIXED/ |
91 |
|
& h0FacC, h0FacW, h0FacS |
92 |
|
_RS h0FacC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
93 |
|
_RS h0FacW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
94 |
|
_RS h0FacS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
95 |
|
|
96 |
|
#endif /* NONLIN_FRSURF */ |