Back to home page

MITgcm

 
 

    


File indexing completed on 2024-01-13 06:10:44 UTC

view on githubraw file Latest commit 005af54e on 2024-01-12 20:10:27 UTC
ffe464dc7d Mart*0001 #ifdef ALLOW_SHELFICE
                0002 
                0003 CBOP
                0004 C !ROUTINE: SHELFICE.h
                0005 
                0006 C !DESCRIPTION: \bv
9c84481760 Jean*0007 C     *==========================================================*
                0008 C     | SHELFICE.h
                0009 C     | o Basic header thermodnynamic shelf ice package.
                0010 C     |   Contains all SHELFICE field declarations.
                0011 C     *==========================================================*
ffe464dc7d Mart*0012 
                0013 C-----------------------------------------------------------------------
                0014 C
                0015 C--   Constants that can be set in data.shelfice
9c84481760 Jean*0016 C     SHELFICEtopoFile         :: File containing the topography of the
                0017 C                                 shelfice draught (unit=m)
                0018 C     SHELFICEmassFile         :: name of shelfice Mass file
                0019 C     SHELFICEloadAnomalyFile  :: name of shelfice load anomaly file
d1e8335be4 Jean*0020 C     SHELFICEMassDynTendFile  :: file name for other mass tendency
30e1f46062 Mart*0021 C                                 (e.g. dynamics)
                0022 C     useISOMIPTD              :: use simple ISOMIP thermodynamics, def: F
9c84481760 Jean*0023 C     SHELFICEconserve         :: use conservative form of H&O-thermodynamics
30e1f46062 Mart*0024 C                                 following Jenkins et al. (2001, JPO), def: F
a0178c5a01 Jean*0025 C     SHELFICEMassStepping     :: flag to step forward ice shelf mass/thickness
30e1f46062 Mart*0026 C                                 accounts for melting/freezing & dynamics
                0027 C                                 (from file or from coupling), def: F
542be861d2 Dani*0028 C     SHELFICEDynMassOnly      :: step ice mass ONLY with Shelficemassdyntendency
                0029 C                                 (not melting/freezing) def: F
9c84481760 Jean*0030 C     SHELFICEboundaryLayer    :: turn on vertical merging of cells to for a
30e1f46062 Mart*0031 C                                 boundary layer of drF thickness, def: F
9952f046d7 dngo*0032 C     SHI_withBL_realFWflux    :: with above BL, allow to use real-FW flux (and
                0033 C                                 adjust advective flux at boundary accordingly)
                0034 C                                 def: F
                0035 C     SHI_withBL_uStarTopDz    :: with SHELFICEboundaryLayer, compute uStar from
                0036 C                                 uVel,vVel avergaged over top Dz thickness;
                0037 C                                 def: F
d1e8335be4 Jean*0038 C     SHELFICEadvDiffHeatFlux  :: use advective-diffusive heat flux into the
0a8794f5ee Mart*0039 C                                 shelf instead of default diffusive heat
30e1f46062 Mart*0040 C                                 flux, see Holland and Jenkins (1999),
                0041 C                                 eq.21,22,26,31; def: F
7b8b86ab99 Timo*0042 C     SHELFICEsaltToHeatRatio  :: constant ratio giving
                0043 C                                 SHELFICEsaltTransCoeff/SHELFICEheatTransCoeff
                0044 C                                 (def: 5.05e-3)
30e1f46062 Mart*0045 C     SHELFICEheatTransCoeff   :: constant heat transfer coefficient that
d1e8335be4 Jean*0046 C                                 determines heat flux into shelfice
30e1f46062 Mart*0047 C                                 (def: 1e-4 m/s)
d1e8335be4 Jean*0048 C     SHELFICEsaltTransCoeff   :: constant salinity transfer coefficient that
30e1f46062 Mart*0049 C                                 determines salt flux into shelfice
7b8b86ab99 Timo*0050 C                                 (def: SHELFICEsaltToHeatRatio * SHELFICEheatTransCoeff)
30e1f46062 Mart*0051 C     -----------------------------------------------------------------------
9c84481760 Jean*0052 C     SHELFICEuseGammaFrict    :: use velocity dependent exchange coefficients,
30e1f46062 Mart*0053 C                                 see Holland and Jenkins (1999), eq.11-18,
                0054 C                                 with the following parameters (def: F):
b06dffee6b Jean*0055 C     SHELFICE_oldCalcUStar    :: use old uStar averaging expression
30e1f46062 Mart*0056 C     shiCdrag                 :: quadratic drag coefficient to compute uStar
                0057 C                                 (def: 0.0015)
                0058 C     shiZetaN                 :: ??? (def: 0.052)
                0059 C     shiRc                    :: ??? (not used, def: 0.2)
d1e8335be4 Jean*0060 C     shiPrandtl, shiSchmidt   :: constant Prandtl (13.8) and Schmidt (2432.0)
30e1f46062 Mart*0061 C                                 numbers used to compute gammaTurb
                0062 C     shiKinVisc               :: constant kinetic viscosity used to compute
                0063 C                                 gammaTurb (def: 1.95e-5)
005af54e38 Jean*0064 C     SHI_update_kTopC         :: update lateral extension (kTopC) if ice-shelf
                0065 C                                 retreats from or expands to model top level
                0066 C                                 (requires to define ALLOW_SHELFICE_REMESHING)
9952f046d7 dngo*0067 C     SHELFICEremeshFrequency  :: Frequency (in seconds) of call to
                0068 C                                 SHELFICE_REMESHING (def: 0. --> no remeshing)
                0069 C     SHELFICEsplitThreshold   :: Thickness fraction remeshing threshold above
                0070 C                                  which top-cell splits (no unit)
                0071 C     SHELFICEmergeThreshold   :: Thickness fraction remeshing threshold below
                0072 C                                  which top-cell merges with below (no unit)
30e1f46062 Mart*0073 C     -----------------------------------------------------------------------
                0074 C     SHELFICEDragLinear       :: linear drag at bottom shelfice (1/s)
                0075 C     SHELFICEDragQuadratic    :: quadratic drag at bottom shelfice (default
                0076 C                                 = shiCdrag or bottomDragQuadratic)
9c84481760 Jean*0077 C     no_slip_shelfice         :: set slip conditions for shelfice separately,
30e1f46062 Mart*0078 C                                 (by default the same as no_slip_bottom, but
                0079 C                                 really should be false when there is linear
                0080 C                                 or quadratic drag)
                0081 C     SHELFICElatentHeat       :: latent heat of fusion (def: 334000 J/kg)
9c84481760 Jean*0082 C     SHELFICEwriteState       :: enable output
30e1f46062 Mart*0083 C     SHELFICEHeatCapacity_Cp  :: heat capacity of ice shelf (def: 2000 J/K/kg)
                0084 C     rhoShelfIce              :: density of ice shelf (def: 917.0 kg/m^3)
                0085 C
9c84481760 Jean*0086 C     SHELFICE_dump_mnc        :: use netcdf for snapshot output
                0087 C     SHELFICE_tave_mnc        :: use netcdf for time-averaged output
                0088 C     SHELFICE_dumpFreq        :: analoguous to dumpFreq (= default)
                0089 C     SHELFICE_taveFreq        :: analoguous to taveFreq (= default)
ffe464dc7d Mart*0090 C
                0091 C--   Fields
9952f046d7 dngo*0092 C     kTopC                  :: index of the top "wet cell" (2D)
9c84481760 Jean*0093 C     R_shelfIce             :: shelfice topography [m]
30e1f46062 Mart*0094 C     shelficeMassInit       :: ice-shelf mass (per unit area) (kg/m^2)
                0095 C     shelficeMass           :: ice-shelf mass (per unit area) (kg/m^2)
                0096 C     shelfIceMassDynTendency :: other mass balance tendency  (kg/m^2/s)
4d294a5719 Jean*0097 C                            ::  (e.g., from dynamics)
30e1f46062 Mart*0098 C     shelficeLoadAnomaly    :: pressure load anomaly of shelfice (Pa)
                0099 C     shelficeHeatFlux       :: upward heat flux (W/m^2)
d1e8335be4 Jean*0100 C     shelficeFreshWaterFlux :: upward fresh water flux (virt. salt flux)
30e1f46062 Mart*0101 C                               (kg/m^2/s)
9c84481760 Jean*0102 C     shelficeForcingT       :: analogue of surfaceForcingT
                0103 C                               units are  r_unit.Kelvin/s (=Kelvin.m/s if r=z)
                0104 C     shelficeForcingS       :: analogue of surfaceForcingS
ba0b047096 Mart*0105 C                               units are  r_unit.g/kg/s (=g/kg.m/s if r=z)
470f7fc263 Jean*0106 #ifdef ALLOW_DIAGNOSTICS
                0107 C     shelficeDragU          :: Ice-Shelf stress (for diagnostics), Zonal comp.
                0108 C                               Units are N/m^2 ;   > 0 increase top uVel
                0109 C     shelficeDragV          :: Ice-Shelf stress (for diagnostics), Merid. comp.
                0110 C                               Units are N/m^2 ;   > 0 increase top vVel
                0111 #endif /* ALLOW_DIAGNOSTICS */
7b8b86ab99 Timo*0112 #ifdef ALLOW_CTRL
                0113 C   maskSHI           ::  Mask=1 where ice shelf is present on surface
                0114 C                           layer, showing full 2D ice shelf extent.
                0115 C                           =maskC for rest of k values
                0116 C                           Used with ice shelf fwflx
                0117 C                           or shiTransCoeffT/S ctrl.
                0118 #endif
ffe464dc7d Mart*0119 C-----------------------------------------------------------------------
                0120 C \ev
                0121 CEOP
                0122 
005af54e38 Jean*0123       COMMON /SHELFICE_PARMS_L/
                0124      &     SHELFICEisOn,
                0125      &     useISOMIPTD,
                0126      &     SHELFICEconserve,
                0127      &     SHELFICEboundaryLayer,
                0128      &     SHI_withBL_realFWflux,
                0129      &     SHI_withBL_uStarTopDz,
                0130      &     no_slip_shelfice,
                0131      &     SHELFICEwriteState,
                0132      &     SHELFICE_dump_mdsio,
                0133      &     SHELFICE_tave_mdsio,
                0134      &     SHELFICE_dump_mnc,
                0135      &     SHELFICE_tave_mnc,
                0136      &     SHELFICEadvDiffHeatFlux,
                0137      &     SHELFICEuseGammaFrict,
                0138      &     SHELFICE_oldCalcUStar,
                0139      &     SHELFICEMassStepping,
                0140      &     SHELFICEDynMassOnly,
                0141      &     SHI_update_kTopC
                0142       LOGICAL SHELFICEisOn
                0143       LOGICAL useISOMIPTD
                0144       LOGICAL SHELFICEconserve
                0145       LOGICAL SHELFICEboundaryLayer
                0146       LOGICAL SHI_withBL_realFWflux
                0147       LOGICAL SHI_withBL_uStarTopDz
                0148       LOGICAL no_slip_shelfice
                0149       LOGICAL SHELFICEwriteState
                0150       LOGICAL SHELFICE_dump_mdsio
                0151       LOGICAL SHELFICE_tave_mdsio
                0152       LOGICAL SHELFICE_dump_mnc
                0153       LOGICAL SHELFICE_tave_mnc
                0154       LOGICAL SHELFICEadvDiffHeatFlux
                0155       LOGICAL SHELFICEuseGammaFrict
                0156       LOGICAL SHELFICE_oldCalcUStar
                0157       LOGICAL SHELFICEMassStepping
                0158       LOGICAL SHELFICEDynMassOnly
                0159       LOGICAL SHI_update_kTopC
                0160 
                0161       COMMON /SHELFICE_PARMS_I/
d1e8335be4 Jean*0162      &     SHELFICEselectDragQuadr
                0163       INTEGER SHELFICEselectDragQuadr
ffe464dc7d Mart*0164 
9c84481760 Jean*0165       COMMON /SHELFICE_PARMS_R/
ffe464dc7d Mart*0166      &     SHELFICE_dumpFreq, SHELFICE_taveFreq,
7b8b86ab99 Timo*0167      &     SHELFICEsaltToHeatRatio,
17292dde13 Mart*0168      &     SHELFICEheatTransCoeff, SHELFICEsaltTransCoeff,
                0169      &     rhoShelfice, SHELFICEkappa,
b06dffee6b Jean*0170      &     SHELFICElatentHeat,
17292dde13 Mart*0171      &     SHELFICEheatCapacity_Cp,
                0172      &     SHELFICEthetaSurface,
e4305b0f18 Patr*0173      &     SHELFICEDragLinear, SHELFICEDragQuadratic,
99068806b1 Patr*0174      &     shiCdrag, shiZetaN, shiRc,
9952f046d7 dngo*0175      &     shiPrandtl, shiSchmidt, shiKinVisc,
                0176      &     SHELFICEremeshFrequency,
                0177      &     SHELFICEsplitThreshold, SHELFICEmergeThreshold
99068806b1 Patr*0178 
ffe464dc7d Mart*0179       _RL SHELFICE_dumpFreq, SHELFICE_taveFreq
7b8b86ab99 Timo*0180       _RL SHELFICEsaltToHeatRatio
17292dde13 Mart*0181       _RL SHELFICEheatTransCoeff
                0182       _RL SHELFICEsaltTransCoeff
ffe464dc7d Mart*0183       _RL SHELFICElatentHeat
17292dde13 Mart*0184       _RL SHELFICEheatCapacity_Cp
                0185       _RL rhoShelfice
                0186       _RL SHELFICEkappa
ffe464dc7d Mart*0187       _RL SHELFICEDragLinear
                0188       _RL SHELFICEDragQuadratic
17292dde13 Mart*0189       _RL SHELFICEthetaSurface
e4305b0f18 Patr*0190       _RL shiCdrag, shiZetaN, shiRc
99068806b1 Patr*0191       _RL shiPrandtl, shiSchmidt, shiKinVisc
9952f046d7 dngo*0192       _RL SHELFICEremeshFrequency
                0193       _RL SHELFICEsplitThreshold
                0194       _RL SHELFICEmergeThreshold
e4305b0f18 Patr*0195 
005af54e38 Jean*0196       COMMON /SHELFICE_PARM_C/
                0197      &     SHELFICEloadAnomalyFile,
                0198      &     SHELFICEmassFile,
                0199      &     SHELFICEtopoFile,
                0200      &     SHELFICEMassDynTendFile,
                0201      &     SHELFICETransCoeffTFile
                0202       CHARACTER*(MAX_LEN_FNAM) SHELFICEloadAnomalyFile
                0203       CHARACTER*(MAX_LEN_FNAM) SHELFICEmassFile
                0204       CHARACTER*(MAX_LEN_FNAM) SHELFICEtopoFile
                0205       CHARACTER*(MAX_LEN_FNAM) SHELFICEMassDynTendFile
                0206       CHARACTER*(MAX_LEN_FNAM) SHELFICETransCoeffTFile
                0207 
                0208 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0209 
                0210       COMMON /SHELFICE_FIELDS_I/ kTopC
                0211       INTEGER kTopC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0212 
9c84481760 Jean*0213       COMMON /SHELFICE_FIELDS_RL/
4d294a5719 Jean*0214      &     shelficeMass, shelficeMassInit,
                0215      &     shelficeLoadAnomaly,
e4305b0f18 Patr*0216      &     shelficeForcingT, shelficeForcingS,
7b8b86ab99 Timo*0217      &     shiTransCoeffT, shiTransCoeffS,
                0218      &     shiCDragFld, shiDragQuadFld
                0219 
4d294a5719 Jean*0220       _RL shelficeMass          (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0221       _RL shelficeMassInit      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0222       _RL shelficeLoadAnomaly   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ffe464dc7d Mart*0223       _RL shelficeForcingT      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0224       _RL shelficeForcingS      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
e4305b0f18 Patr*0225       _RL shiTransCoeffT        (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0226       _RL shiTransCoeffS        (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
7b8b86ab99 Timo*0227       _RL shiCDragFld           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0228       _RL shiDragQuadFld        (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
ffe464dc7d Mart*0229 
9c84481760 Jean*0230       COMMON /SHELFICE_FIELDS_RS/
ffe464dc7d Mart*0231      &     R_shelfIce,
                0232      &     shelficeHeatFlux,
3d2f509a67 Dani*0233      &     shelfIceFreshWaterFlux,
a0178c5a01 Jean*0234      &     shelfIceMassDynTendency
ffe464dc7d Mart*0235       _RS R_shelfIce            (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0236       _RS shelficeHeatFlux      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0237       _RS shelficeFreshWaterFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
a0178c5a01 Jean*0238       _RS
                0239      &   shelfIceMassDynTendency(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c9f9df479e Mart*0240 
6b47d550f4 Mart*0241 #ifdef ALLOW_CTRL
c9f9df479e Mart*0242       COMMON /SHELFICE_MASKS_CTRL/ maskSHI
                0243       _RS maskSHI  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
6b47d550f4 Mart*0244 #endif /* ALLOW_CTRL */
9c84481760 Jean*0245 
470f7fc263 Jean*0246 #ifdef ALLOW_DIAGNOSTICS
                0247       COMMON /SHELFICE_DIAG_DRAG/ shelficeDragU, shelficeDragV
                0248       _RS shelficeDragU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0249       _RS shelficeDragV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0250 #endif /* ALLOW_DIAGNOSTICS */
                0251 
ffe464dc7d Mart*0252 #endif /* ALLOW_SHELFICE */