C $Header: /u/gcmpack/MITgcm/pkg/thsice/THSICE_VARS.h,v 1.13 2013/05/02 20:03:12 jmc Exp $
C $Name: $
#ifdef ALLOW_THSICE
C !ROUTINE: THSICE_VARS.h
C -------------------------------
C THSICE_VARS.h
C variable for thermodynamics - Sea-Ice model
C -------------------------------
C-- COMMON /THSICE_VARS/ state variables of sea-ice model :
C iceMask :: sea-ice fraction: no ice=0, grid all ice 1 []
C iceHeight :: depth of ice layer [m]
C snowHeight:: depth of snow layer [m]
C Tsrf :: temperature at surface [oC]
C Tice1 :: temperature of ice layer 1 [oC]
C Tice2 :: temperature of ice layer 2 [oC]
C Qice1 :: enthalpy of ice layer 1 [J/kg]
C Qice2 :: enthalpy of ice layer 2 [J/kg]
C snowAge :: snow age [s]
COMMON /THSICE_VARS/
& iceMask, iceHeight, snowHeight,
& Tsrf, Tice1, Tice2,
& Qice1, Qice2, snowAge
_RL iceMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL iceHeight (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL snowHeight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL Tsrf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL Tice1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL Tice2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL Qice1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL Qice2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL snowAge(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C-- COMMON /THSICE_FLUX/ hold fluxes needed for thsice model
C sHeating :: surf heating left to melt snow or ice (= Atmos-Conduction)
C flxCndBt :: heat flux conducted through the ice to bottom surface
C siceAlb :: area weighted sea-ice albedo [0-1]
C icAlbNIR :: seaice(+snow) surface Near Infra-Red Albedo
C atmospheric fluxes (change along the time-stepping):
C icFlxSW :: short-wave heat flux (+=down) over sea-ice
C (downward SW / net SW @ surface / net SW below sea-ice)
C icFlxAtm :: Atmospheric surf. heat flux over sea-ice [W/m2] (+=down)
C (over sea-ice only / weighted by ice-fraction)
C icFrwAtm :: fresh-water flux (E-P) from the atmosphere [kg/m2/s] (+=up)
C ( ice Evap only / ice E-P / ice - ocean weighted E-P )
C oceQnet :: net heat flux to the ocean (+=down) [W/m2]
C oceQsw :: net short-wave that enter the ocean (+=down) [W/m2]
C oceFWfx :: net fresh water flux to the ocean (+=down) [kg/m2]
C oceSflx :: net salt flux to the ocean (+=down) [psu.kg/m2]
C adjustFrW :: global adjustment to surface fresh-water flux [kg/m2/s]
COMMON / THSICE_FLUX /
c & oceQsw, oceQnet, oceFWfx, oceSflx,
& sHeating, flxCndBt,
& siceAlb, icAlbNIR,
& icFlxSW, icFlxAtm, icFrwAtm,
& adjustFrW
c _RL oceQnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c _RL oceQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c _RL oceFWfx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c _RL oceSflx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL sHeating(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL flxCndBt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL siceAlb (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL icAlbNIR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL icFlxSW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL icFlxAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL icFrwAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL adjustFrW
C-- COMMON /THSICE_DYN_R/ variables used with sea-ice advection/diffusion
C oceFWfx :: fresh water flux to the ocean [kg/m^2/s]
C oceSflx :: salt flux to the ocean [psu.kg/m^2/s] (~g/m^2/s)
C oceQnet :: heat flux to the ocean [W/m^2]
C---
C Note :: when ice volume is too small to be kept, ice & snow is melt
C and fresh water, salt and heat are returned to the ocean.
C For now, those fluxes are stored separately and will try to find
C out how to incorporate them more naturally in the usual forcing.
C---
COMMON /THSICE_DYN_R/
& oceFWfx, oceSflx, oceQnet
_RL oceFWfx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL oceSflx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL oceQnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
C-- COMMON / THSICE_OCEMXLAYER / oceanic mixed layer state
C hOceMxL :: thickness of the ocean mixed layer [m]
C tOceMxL :: temperature in the ocean mixed layer [oC]
C sOceMxL :: salinity in the ocean mixed layer [psu]
C v2ocMxL :: velocity (square) in the mixed layer [m2/s2]
COMMON / THSICE_OCEMXLAYER /
& hOceMxL, tOceMxL, sOceMxL, v2ocMxL
_RL hOceMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL tOceMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL sOceMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL v2ocMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#endif /* ALLOW_THSICE */
CEH3 ;;; Local Variables: ***
CEH3 ;;; mode:fortran ***
CEH3 ;;; End: ***