Back to home page

MITgcm

 
 

    


File indexing completed on 2021-04-08 05:11:06 UTC

view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
ec31157ce3 Jean*0001 C
ac0f2a1690 Chri*0002 CBOP
                0003 C    !ROUTINE: SURFACE.h
                0004 C    !INTERFACE:
                0005 C    include SURFACE.h
                0006 C    !DESCRIPTION: \bv
                0007 C     *==========================================================*
f15994caab Jean*0008 C     | SURFACE.h
                0009 C     | o Header file defining surface-related model variables
ac0f2a1690 Chri*0010 C     *==========================================================*
f15994caab Jean*0011 C     | Contains variables relative to the surface position
                0012 C     | that are held fixed in linear free-surface formulation
                0013 C     | but can vary with time with a non-linear free-surface.
ac0f2a1690 Chri*0014 C     *==========================================================*
                0015 C     \ev
                0016 CEOP
ec31157ce3 Jean*0017 
73af412e33 Jean*0018 C--   COMMON /SURF_FIXED/  fixed surface arrays (Real)
b1cd157538 Jean*0019 C     Bo_surf  :: Buoyancy|1/rho [ocean|atmos] at surface level [=g|alpha(p_o)]
73af412e33 Jean*0020 C     recip_Bo :: 1/Bo_surf
                0021 C     topoZ    :: topographic height [m] (used mainly for atmosphere)
a64427cf14 Alis*0022 C     phi0surf :: starting point for integrating phi_Hyd
be72675163 Jean*0023       COMMON /SURF_FIXED/ Bo_surf, recip_Bo, topoZ, phi0surf
73af412e33 Jean*0024       _RL  Bo_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ec31157ce3 Jean*0025       _RL  recip_Bo(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
73af412e33 Jean*0026       _RS  topoZ   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
be72675163 Jean*0027       _RS  phi0surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ec31157ce3 Jean*0028 
f15994caab Jean*0029 C--   COMMON /SURF_CORREC/ Common block for correction of source/sink of
74c7704c2f Davi*0030 C--                        Tracer due to W at the surface with Linear
                0031 C--                        Free Surface
                0032 C     TsurfCor :: Pot.Temp Linear-Free-Surface correction term [K.r_Unit/s]
ba0b047096 Mart*0033 C     SsurfCor :: Salinity Linear-Free-Surface correction term [g/kg.r_Unit/s]
74c7704c2f Davi*0034       COMMON /SURF_CORREC/ TsurfCor, SsurfCor
                0035       _RL TsurfCor
                0036       _RL SsurfCor
                0037 
09d2417e9e Patr*0038 #ifdef EXACT_CONSERV
a1bffd2f2d Jean*0039 C     etaHnm1 :: surface r-anomaly, etaH, at previous time level
8dc89a3cca Jean*0040 C     dEtaHdt :: time derivative of total column height [r_unit/s = w unit]
                0041 C     PmEpR   :: keep the fresh water input (=-EmPmR) of the previous time step
a1bffd2f2d Jean*0042       COMMON /EXACT_ETA_LOCAL/ etaHnm1, dEtaHdt, PmEpR
ccbf39d1a4 Jean*0043       _RL etaHnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0044       _RL dEtaHdt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c63a03eace Jean*0045       _RL  PmEpR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
09d2417e9e Patr*0046 #endif
                0047 
7c80d1c2ea Jean*0048 #ifdef NONLIN_FRSURF
00b29feb62 Jean*0049 C--   COMMON /SURF_CHANGE/ transient variables used for Non-Lin Free-Surf
ac0f2a1690 Chri*0050 C     hFac_surfC ::  New thickness factor of the surface level
7c80d1c2ea Jean*0051 C                        center (Tracer point)
ac0f2a1690 Chri*0052 C     hFac_surfW ::  idem, West  interface (U point)
                0053 C     hFac_surfS ::  idem, South interface (V point)
72a058b866 Gael*0054 C     hFac_surfNm1C, etc. :: prior values
7c80d1c2ea Jean*0055       COMMON /SURF_CHANGE/
72a058b866 Gael*0056      &     hFac_surfC, hFac_surfW, hFac_surfS,
                0057      &     hFac_surfNm1C, hFac_surfNm1W, hFac_surfNm1S
7c80d1c2ea Jean*0058       _RS  hFac_surfC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0059       _RS  hFac_surfW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0060       _RS  hFac_surfS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
72a058b866 Gael*0061       _RS  hFac_surfNm1C(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0062       _RS  hFac_surfNm1W(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0063       _RS  hFac_surfNm1S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ea4246aae8 Jean*0064 
cdc9f269ae Patr*0065 C     Local variables in common block
f15994caab Jean*0066 C     Rmin_surf :: minimum r_value of the free surface position
cdc9f269ae Patr*0067 C                  that satisfy  the hFacInf criteria
                0068       COMMON /LOCAL_CALC_SURF_DR/ Rmin_surf
                0069       _RL Rmin_surf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0070 
00b29feb62 Jean*0071 C--   COMMON /RSTAR_CHANGE/ transient variables used with r* Coordinate
                0072 C     rStarFacC :: = dr/dr* = ratio of r-thickness / r*-thickness = h^n / H
                0073 C     rStarFacW :: same but for West  face
                0074 C     rStarFacS :: same but for South face
ccbf39d1a4 Jean*0075 C     pStarFacK :: rStarFacC**atm_kappa (for atmosphere in p* coords)
72a058b866 Gael*0076 C     rStarFacNm1C, etc. :: prior values
00b29feb62 Jean*0077 C     rStarExpC :: column expansion factor = h^n+1/h^n , Centered
                0078 C     rStarExpW :: column expansion factor = h^n+1/h^n , Western  face
                0079 C     rStarExpS :: column expansion factor = h^n+1/h^n , Southern face
f15994caab Jean*0080 C     rStarDhCDt:: relative time derivative of h_Center = d.eta/dt / H
00b29feb62 Jean*0081 C     rStarDhWDt:: relative time derivative of h_West_face  (u.point)
                0082 C     rStarDhSDt:: relative time derivative of h_South_face (v.point)
                0083       COMMON /RSTAR_CHANGE/
ccbf39d1a4 Jean*0084      &     rStarFacC, rStarFacW, rStarFacS, pStarFacK,
72a058b866 Gael*0085      &     rStarFacNm1C, rStarFacNm1W, rStarFacNm1S,
00b29feb62 Jean*0086      &     rStarExpC, rStarExpW, rStarExpS,
                0087      &     rStarDhCDt,rStarDhWDt,rStarDhSDt
                0088       _RL  rStarFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0089       _RL  rStarFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0090       _RL  rStarFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ccbf39d1a4 Jean*0091       _RL  pStarFacK (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
72a058b866 Gael*0092       _RL  rStarFacNm1C (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0093       _RL  rStarFacNm1W (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0094       _RL  rStarFacNm1S (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
00b29feb62 Jean*0095       _RL  rStarExpC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0096       _RL  rStarExpW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0097       _RL  rStarExpS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0098       _RL  rStarDhCDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0099       _RL  rStarDhWDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0100       _RL  rStarDhSDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0101 
                0102 C--   COMMON /RSTAR_FIXED/ fixed thickness ratio ( r* discretization )
                0103 C     h0FacC :: initial (and fixed in time) hFacC factor
                0104 C     h0FacW :: initial (and fixed in time) hFacW factor
                0105 C     h0FacS :: initial (and fixed in time) hFacS factor
                0106       COMMON /RSTAR_FIXED/
                0107      & h0FacC, h0FacW, h0FacS
                0108       _RS h0FacC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0109       _RS h0FacW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0110       _RS h0FacS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0111 
f15994caab Jean*0112 C--   COMMON /SIGMA_CHANGE/ transient variables used with r* Coordinate
                0113 C     etaHw    :: surface r-anomaly (etaH) at Western  edge (U location)
                0114 C     etaHs    :: surface r-anomaly (etaH) at Southern edge (V location)
                0115 C     dEtaWdt  :: time derivative of etaH at Western  edge (U location)
                0116 C     dEtaSdt  :: time derivative of etaH at Southern edge (V location)
                0117       COMMON /SIGMA_CHANGE/
                0118      &  etaHw, etaHs,
                0119      &  dEtaWdt, dEtaSdt
                0120       _RL  etaHw  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0121       _RL  etaHs  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0122       _RL  dEtaWdt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0123       _RL  dEtaSdt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
7c80d1c2ea Jean*0124 #endif /* NONLIN_FRSURF */