1 |
mlosch |
1.29 |
C $Header: /u/gcmpack/MITgcm/pkg/seaice/SEAICE_PARAMS.h,v 1.28 2006/06/08 23:09:56 dimitri Exp $ |
2 |
edhill |
1.11 |
C $Name: $ |
3 |
heimbach |
1.2 |
|
4 |
|
|
C /==========================================================\ |
5 |
|
|
C | SEAICE_PARAMS.h | |
6 |
|
|
C | o Basic parameter header for sea ice model. | |
7 |
|
|
C \==========================================================/ |
8 |
|
|
|
9 |
|
|
C-- COMMON /SEAICE_PARM_L/ Logical parameters of sea ice model. |
10 |
|
|
C |
11 |
dimitri |
1.4 |
C SEAICEwriteState - If true, write sea ice state to file; |
12 |
|
|
C default is false. |
13 |
|
|
C SEAICEuseDYNAMICS - If false, do not use dynamics; |
14 |
|
|
C default is to use dynamics. |
15 |
mlosch |
1.26 |
C SEAICEuseEVP - If false, use Zhangs LSR solver for VP equations |
16 |
|
|
C if true use elastic viscous plastic solver |
17 |
dimitri |
1.28 |
C SEAICEuseEVPpickup - Set to false in order to start EVP solver with |
18 |
|
|
C non-EVP pickup files. Default is true. |
19 |
|
|
C Applied only if SEAICEuseEVP=.TRUE. |
20 |
mlosch |
1.21 |
C SEAICEuseFluxForm :: use flux form for advection and diffusion |
21 |
|
|
C of seaice |
22 |
mlosch |
1.24 |
C useHB87stressCoupling :: use an intergral over ice and ocean surface |
23 |
|
|
C layer to define surface stresses on ocean |
24 |
|
|
C following Hibler and Bryan (1987, JPO) |
25 |
mlosch |
1.25 |
C SEAICE_clipVelocities :: clip velocities to +/- 40cm/s |
26 |
|
|
C SEAICE_maskRHS :: mask the RHS of the solver where there is no ice |
27 |
jmc |
1.17 |
C SEAICE_tave_mdsio :: write TimeAverage output using MDSIO |
28 |
|
|
C SEAICE_dump_mdsio :: write snap-shot output using MDSIO |
29 |
|
|
C SEAICE_mon_stdio :: write monitor to std-outp |
30 |
|
|
C SEAICE_tave_mnc :: write TimeAverage output using MNC |
31 |
|
|
C SEAICE_dump_mnc :: write snap-shot output using MNC |
32 |
|
|
C SEAICE_mon_mnc :: write monitor to netcdf file |
33 |
edhill |
1.18 |
LOGICAL |
34 |
mlosch |
1.26 |
& SEAICEwriteState, SEAICEuseDYNAMICS, SEAICEuseEVP, |
35 |
dimitri |
1.28 |
& SEAICEuseEVPpickup, |
36 |
mlosch |
1.26 |
& SEAICEuseFluxForm, useHB87stressCoupling, |
37 |
mlosch |
1.25 |
& SEAICE_clipVelocities, SEAICE_maskRHS, |
38 |
edhill |
1.18 |
& SEAICE_tave_mdsio, SEAICE_dump_mdsio, SEAICE_mon_stdio, |
39 |
|
|
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc |
40 |
heimbach |
1.2 |
COMMON /SEAICE_PARM_L/ |
41 |
mlosch |
1.26 |
& SEAICEwriteState, SEAICEuseDYNAMICS, SEAICEuseEVP, |
42 |
|
|
& SEAICEuseFluxForm, useHB87stressCoupling, |
43 |
mlosch |
1.25 |
& SEAICE_clipVelocities, SEAICE_maskRHS, |
44 |
jmc |
1.17 |
& SEAICE_tave_mdsio, SEAICE_dump_mdsio, SEAICE_mon_stdio, |
45 |
|
|
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc |
46 |
heimbach |
1.2 |
|
47 |
|
|
C-- COMMON /SEAICE_PARM_I/ Integer valued parameters of sea ice model. |
48 |
dimitri |
1.3 |
C LAD - time stepping used for sea-ice advection: |
49 |
|
|
C 1 = LEAPFROG, 2 = BACKWARD EULER. |
50 |
heimbach |
1.2 |
C IMAX_TICE - number of iterations for ice heat budget 10 |
51 |
mlosch |
1.20 |
C SEAICEadvScheme - sets the advection scheme for thickness and area |
52 |
heimbach |
1.2 |
C |
53 |
dimitri |
1.12 |
INTEGER LAD, IMAX_TICE |
54 |
mlosch |
1.20 |
INTEGER SEAICEadvScheme |
55 |
|
|
COMMON /SEAICE_PARM_I/ |
56 |
|
|
& LAD, IMAX_TICE, |
57 |
|
|
& SEAICEadvScheme |
58 |
heimbach |
1.2 |
|
59 |
|
|
C-- COMMON /SEAICE_PARM_C/ Character valued sea ice model parameters. |
60 |
dimitri |
1.5 |
C uwindFile - File containing uwind |
61 |
|
|
C vwindFile - File containing vwind |
62 |
|
|
C atempFile - File containing atemp |
63 |
|
|
C aqhFile - File containing aqh |
64 |
|
|
C lwdownFile - File containing lwdown |
65 |
|
|
C swdownFile - File containing swdown |
66 |
|
|
C precipFile - File containing precip |
67 |
|
|
C evapFile - File containing evap |
68 |
|
|
C runoffFile - File containing runoffF |
69 |
|
|
C HeffFile - File containing initial sea-ice thickness |
70 |
dimitri |
1.6 |
C !!! NOTE !!! Initial sea-ice thickness can also be set using |
71 |
|
|
C SEAICE_initialHEFF below. But a constant initial condition |
72 |
|
|
C can mean large artificial fluxes of heat and freshwater in |
73 |
|
|
C the surface layer during the first model time step. |
74 |
heimbach |
1.2 |
C |
75 |
dimitri |
1.4 |
CHARACTER*(MAX_LEN_FNAM) uwindFile |
76 |
|
|
CHARACTER*(MAX_LEN_FNAM) vwindFile |
77 |
|
|
CHARACTER*(MAX_LEN_FNAM) atempFile |
78 |
|
|
CHARACTER*(MAX_LEN_FNAM) aqhFile |
79 |
dimitri |
1.5 |
CHARACTER*(MAX_LEN_FNAM) lwdownFile |
80 |
|
|
CHARACTER*(MAX_LEN_FNAM) swdownFile |
81 |
dimitri |
1.4 |
CHARACTER*(MAX_LEN_FNAM) precipFile |
82 |
heimbach |
1.2 |
CHARACTER*(MAX_LEN_FNAM) evapFile |
83 |
|
|
CHARACTER*(MAX_LEN_FNAM) runoffFile |
84 |
dimitri |
1.5 |
CHARACTER*(MAX_LEN_FNAM) HeffFile |
85 |
dimitri |
1.4 |
COMMON /SEAICE_PARM_C/ uwindFile, vwindFile, atempFile, aqhFile, |
86 |
dimitri |
1.5 |
& lwdownFile, swdownFile, precipFile, evapFile, runoffFile, |
87 |
|
|
& HeffFile |
88 |
heimbach |
1.2 |
|
89 |
|
|
C-- COMMON /SEAICE_PARM_RL/ Real valued parameters of sea ice model. |
90 |
dimitri |
1.13 |
C SEAICE_deltaTtherm - Seaice timestep for thermodynamic equations (s) |
91 |
|
|
C SEAICE_deltaTdyn - Seaice timestep for dynamic solver (s) |
92 |
mlosch |
1.26 |
C SEAICE_deltaTevp - Seaice timestep for EVP solver (s) |
93 |
|
|
C SEAICE_elasticParm - parameter that sets relaxation timescale |
94 |
|
|
C T = SEAICE_elasticParm * SEAICE_deltaTdyn |
95 |
dimitri |
1.13 |
C SEAICE_dumpFreq - SEAICE dump frequency. (s) |
96 |
|
|
C SEAICE_taveFreq - SEAICE time-averaging frequency. (s) |
97 |
|
|
C SEAICE_initialHEFF - initial sea-ice thickness (m) |
98 |
mlosch |
1.23 |
C SEAICE_rhoAir - density of air (kg/m^3) |
99 |
|
|
C SEAICE_rhoIce - density of sea ice (kg/m^3) |
100 |
heimbach |
1.2 |
C SEAICE_drag - air-ice drag coefficient |
101 |
dimitri |
1.8 |
C OCEAN_drag - air-ocean drag coefficient |
102 |
heimbach |
1.2 |
C SEAICE_waterDrag - water-ice drag coefficient * water density |
103 |
heimbach |
1.9 |
C SEAICE_dryIceAlb - winter albedo |
104 |
|
|
C SEAICE_wetIceAlb - summer albedo |
105 |
heimbach |
1.2 |
C SEAICE_drySnowAlb - dry snow albedo |
106 |
|
|
C SEAICE_wetSnowAlb - wet snow albedo |
107 |
|
|
C SEAICE_waterAlbedo - water albedo |
108 |
dimitri |
1.15 |
C SEAICE_strength - sea-ice strength Pstar |
109 |
mlosch |
1.23 |
C SEAICE_eccen - sea-ice eccentricity of the elliptical yield curve |
110 |
mlosch |
1.19 |
C SEAICE_sensHeat - buld sensible heat transfer coefficient |
111 |
|
|
C = (sensible heat transfer coefficient) |
112 |
|
|
C x (heat capacity of air) |
113 |
|
|
C x (density of air) |
114 |
|
|
C SEAICE_latentWater - bulk latent heat transfer coefficient for water |
115 |
|
|
C = (latent heat transfer coefficient for water) |
116 |
|
|
C x (specific latent heat water to water vapor) |
117 |
|
|
C x (density of air) |
118 |
|
|
C SEAICE_latentIce - bulk latent heat transfer coefficient for ice |
119 |
|
|
C = (latent heat transfer coefficient for ice) |
120 |
|
|
C x (latent heat ice to water vapor) |
121 |
|
|
C x (density of air) |
122 |
heimbach |
1.2 |
C SEAICE_iceConduct - sea-ice conductivity |
123 |
|
|
C SEAICE_snowConduct - snow conductivity |
124 |
|
|
C SEAICE_emissivity - Stefan-Boltzman constant * emissivity |
125 |
|
|
C SEAICE_snowThick - cutoff snow thickness |
126 |
|
|
C SEAICE_shortwave - penetration shortwave radiation factor |
127 |
dimitri |
1.14 |
C SEAICE_freeze - FREEZING TEMP. OF SEA WATER |
128 |
mlosch |
1.29 |
C SEAICEstressFactor - factor by which ice affects wind stress (default=1) |
129 |
heimbach |
1.2 |
C LSR_ERROR - sets accuracy of LSR solver |
130 |
|
|
C DIFF1 - parameter used in advect.F |
131 |
|
|
C A22 - parameter used in growth.F |
132 |
dimitri |
1.10 |
C HO - demarcation thickness between thin and |
133 |
|
|
C thick ice: HO is a key ice-growth parameter |
134 |
heimbach |
1.2 |
C WindForcingStart - Time of first wind forcing record (s) |
135 |
|
|
C WindForcingEnd - Time of last wind forcing record (s) |
136 |
|
|
C WindForcingPeriod - Period between wind forcing records (s) |
137 |
|
|
C FluxForcingStart - Time of first flux forcing record (s) |
138 |
|
|
C FluxForcingEnd - Time of last flux forcing record (s) |
139 |
|
|
C FluxForcingPeriod - Period between flux forcing records (s) |
140 |
|
|
C SSTForcingStart - Time of first SST forcing record (s) |
141 |
|
|
C SSTForcingEnd - Time of last SST forcing record (s) |
142 |
|
|
C SSTForcingPeriod - Period between SST forcing records (s) |
143 |
|
|
C SSSForcingStart - Time of first SSS forcing record (s) |
144 |
|
|
C SSSForcingEnd - Time of last SSS forcing record (s) |
145 |
|
|
C SSSForcingPeriod - Period between SSS forcing records (s) |
146 |
|
|
C StartingYear - Starting year of integration |
147 |
|
|
C EndingYear - Ending year of integration |
148 |
mlosch |
1.22 |
C SEAICE_airTurnAngle - turning angles of air-ice interfacial stress |
149 |
|
|
C SEAICE_waterTurnAngle - and ice-water interfacial stress (in degrees) |
150 |
heimbach |
1.2 |
C |
151 |
mlosch |
1.26 |
_RL SEAICE_deltaTtherm, SEAICE_deltaTdyn, SEAICE_deltaTevp |
152 |
dimitri |
1.6 |
_RL SEAICE_dumpFreq, SEAICE_taveFreq, SEAICE_initialHEFF |
153 |
mlosch |
1.23 |
_RL SEAICE_rhoAir, SEAICE_rhoIce |
154 |
heimbach |
1.9 |
_RL SEAICE_drag, SEAICE_waterDrag, SEAICE_dryIceAlb |
155 |
|
|
_RL SEAICE_wetIceAlb, SEAICE_drySnowAlb, SEAICE_wetSnowAlb |
156 |
mlosch |
1.23 |
_RL SEAICE_waterAlbedo, SEAICE_strength, SEAICE_eccen |
157 |
heimbach |
1.2 |
_RL SEAICE_sensHeat, SEAICE_latentWater, SEAICE_latentIce |
158 |
|
|
_RL SEAICE_iceConduct, SEAICE_snowConduct, SEAICE_emissivity |
159 |
dimitri |
1.14 |
_RL SEAICE_snowThick, SEAICE_shortwave, SEAICE_freeze |
160 |
mlosch |
1.29 |
_RL SEAICEstressFactor |
161 |
dimitri |
1.14 |
_RL OCEAN_drag, LSR_ERROR, DIFF1, A22, HO |
162 |
heimbach |
1.2 |
_RL WindForcingStart, WindForcingEnd, WindForcingPeriod |
163 |
|
|
_RL FluxForcingStart, FluxForcingEnd, FluxForcingPeriod |
164 |
|
|
_RL SSTForcingStart, SSTForcingEnd, SSTForcingPeriod |
165 |
|
|
_RL SSSForcingStart, SSSForcingEnd, SSSForcingPeriod |
166 |
|
|
_RL StartingYear, EndingYear |
167 |
mlosch |
1.22 |
_RL SEAICE_airTurnAngle, SEAICE_waterTurnAngle |
168 |
mlosch |
1.26 |
_RL SEAICE_elasticParm |
169 |
heimbach |
1.2 |
COMMON /SEAICE_PARM_RL/ |
170 |
dimitri |
1.13 |
& SEAICE_deltaTtherm, SEAICE_deltaTdyn, |
171 |
mlosch |
1.26 |
& SEAICE_deltaTevp, SEAICE_elasticParm, |
172 |
dimitri |
1.6 |
& SEAICE_dumpFreq, SEAICE_taveFreq, SEAICE_initialHEFF, |
173 |
mlosch |
1.23 |
& SEAICE_rhoAir, SEAICE_rhoIce, |
174 |
heimbach |
1.9 |
& SEAICE_drag, SEAICE_waterDrag, SEAICE_dryIceAlb, |
175 |
|
|
& SEAICE_wetIceAlb, SEAICE_drySnowAlb, SEAICE_wetSnowAlb, |
176 |
mlosch |
1.23 |
& SEAICE_waterAlbedo, SEAICE_strength, SEAICE_eccen, |
177 |
heimbach |
1.2 |
& SEAICE_sensHeat, SEAICE_latentWater, SEAICE_latentIce, |
178 |
|
|
& SEAICE_iceConduct, SEAICE_snowConduct, SEAICE_emissivity, |
179 |
dimitri |
1.14 |
& SEAICE_snowThick, SEAICE_shortwave, SEAICE_freeze, |
180 |
mlosch |
1.29 |
& SEAICEstressFactor, |
181 |
dimitri |
1.14 |
& OCEAN_drag, LSR_ERROR, DIFF1, A22, HO, |
182 |
heimbach |
1.2 |
& WindForcingStart, WindForcingEnd, WindForcingPeriod, |
183 |
|
|
& FluxForcingStart, FluxForcingEnd, FluxForcingPeriod, |
184 |
|
|
& SSTForcingStart, SSTForcingEnd, SSTForcingPeriod, |
185 |
|
|
& SSSForcingStart, SSSForcingEnd, SSSForcingPeriod, |
186 |
mlosch |
1.22 |
& StartingYear, EndingYear, |
187 |
|
|
& SEAICE_airTurnAngle, SEAICE_waterTurnAngle |
188 |
heimbach |
1.2 |
|
189 |
|
|
C-- COMMON /SEAICE_BOUND_RL/ Various bounding values |
190 |
dimitri |
1.6 |
C MAX_HEFF - maximum ice thickness (m) |
191 |
|
|
C MIN_ATEMP - minimum air temperature (deg C) |
192 |
dimitri |
1.5 |
C MIN_LWDOWN - minimum downward longwave (W/m^2) |
193 |
dimitri |
1.6 |
C MAX_TICE - maximum ice temperature (deg C) |
194 |
|
|
C MIN_TICE - minimum ice temperature (deg C) |
195 |
dimitri |
1.7 |
C SEAICE_EPS, SEAICE_EPS_SQ - used to reduce derivative singularities |
196 |
heimbach |
1.2 |
C |
197 |
dimitri |
1.5 |
_RL MAX_HEFF, MIN_ATEMP, MIN_LWDOWN, MAX_TICE, MIN_TICE |
198 |
dimitri |
1.7 |
_RL SEAICE_EPS, SEAICE_EPS_SQ |
199 |
heimbach |
1.2 |
COMMON /SEAICE_BOUND_RL/ |
200 |
dimitri |
1.7 |
& MAX_HEFF, MIN_ATEMP, MIN_LWDOWN, MAX_TICE, MIN_TICE, |
201 |
|
|
& SEAICE_EPS, SEAICE_EPS_SQ |
202 |
dimitri |
1.3 |
|
203 |
|
|
C-- Constants used by sea-ice model |
204 |
|
|
_RL ZERO , ONE , TWO |
205 |
|
|
parameter ( ZERO = 0.0 _d 0, ONE = 1.0 _d 0, TWO = 2.0 _d 0 ) |
206 |
|
|
_RL QUART , HALF |
207 |
|
|
parameter ( QUART = 0.25 _d 0, HALF = 0.5 _d 0 ) |
208 |
edhill |
1.16 |
|
209 |
mlosch |
1.27 |
C-- identifiers for advected properties |
210 |
|
|
INTEGER GAD_HEFF, GAD_AREA, GAD_QICE1, GAD_QICE2, GAD_SNOW |
211 |
|
|
PARAMETER ( GAD_HEFF = 101, |
212 |
|
|
& GAD_AREA = 102, |
213 |
|
|
& GAD_QICE1 = 103, |
214 |
|
|
& GAD_QICE2 = 104, |
215 |
|
|
& GAD_SNOW = 105 ) |
216 |
mlosch |
1.20 |
|
217 |
edhill |
1.16 |
|
218 |
|
|
CEH3 ;;; Local Variables: *** |
219 |
|
|
CEH3 ;;; mode:fortran *** |
220 |
|
|
CEH3 ;;; End: *** |