@@ -46,7 +46,7 @@ subroutine temperature_changes_salinity(dt, &
46
46
fswsfc , fswint , &
47
47
Sswabs , Iswabs , &
48
48
hilyr , hslyr , &
49
- apnd , hpond , &
49
+ apond , hpond , &
50
50
zqin , zTin , &
51
51
zqsn , zTsn , &
52
52
zSin , &
@@ -56,8 +56,7 @@ subroutine temperature_changes_salinity(dt, &
56
56
flwoutn , fsurfn , &
57
57
fcondtop , fcondbot , &
58
58
fadvheat , snoice , &
59
- smice , smliq , &
60
- alvl )
59
+ smice , smliq )
61
60
62
61
! solve the enthalpy and bulk salinity of the ice for a single column
63
62
@@ -72,17 +71,16 @@ subroutine temperature_changes_salinity(dt, &
72
71
shcoef , & ! transfer coefficient for sensible heat
73
72
lhcoef , & ! transfer coefficient for latent heat
74
73
Tbot , & ! ice bottom surfce temperature (deg C)
75
- sss , & ! sea surface salinity (PSU)
76
- alvl ! melt pond area fraction
77
-
74
+ sss ! sea surface salinity (PSU)
75
+
78
76
real (kind= dbl_kind), intent (inout ) :: &
79
77
fswsfc , & ! SW absorbed at ice/snow surface (W m-2)
80
78
fswint ! SW absorbed in ice interior below surface (W m-2)
81
79
82
80
real (kind= dbl_kind), intent (inout ) :: &
83
81
hilyr , & ! ice layer thickness (m)
84
82
hslyr , & ! snow layer thickness (m)
85
- apnd , & ! melt pond area fraction tracer
83
+ apond , & ! melt pond area fraction of category
86
84
hpond ! melt pond depth (m)
87
85
88
86
real (kind= dbl_kind), dimension (:), intent (inout ) :: &
@@ -184,8 +182,8 @@ subroutine temperature_changes_salinity(dt, &
184
182
! calculate vertical bulk darcy flow
185
183
call flushing_velocity(zTin, phi, &
186
184
hin, hsn, &
187
- hilyr, alvl, &
188
- hpond, apnd, &
185
+ hilyr, &
186
+ hpond, apond, &
189
187
dt, w)
190
188
if (icepack_warnings_aborted(subname)) return
191
189
@@ -330,7 +328,7 @@ subroutine temperature_changes_salinity(dt, &
330
328
endif
331
329
332
330
! drain ponds from flushing
333
- call flush_pond(w, hpond, apnd , dt, alvl )
331
+ call flush_pond(w, hpond, apond , dt)
334
332
if (icepack_warnings_aborted(subname)) return
335
333
336
334
! flood snow ice
@@ -3066,8 +3064,8 @@ end subroutine explicit_flow_velocities
3066
3064
3067
3065
subroutine flushing_velocity (zTin , phi , &
3068
3066
hin , hsn , &
3069
- hilyr , alvl , &
3070
- hpond , apnd , &
3067
+ hilyr , &
3068
+ hpond , apond , &
3071
3069
dt , w )
3072
3070
3073
3071
! calculate the vertical flushing Darcy velocity (positive downward)
@@ -3078,9 +3076,8 @@ subroutine flushing_velocity(zTin, phi, &
3078
3076
3079
3077
real (kind= dbl_kind), intent (in ) :: &
3080
3078
hilyr , & ! ice layer thickness (m)
3081
- alvl , & ! level ice area tracer
3082
3079
hpond , & ! melt pond thickness (m)
3083
- apnd , & ! melt pond area (-)
3080
+ apond , & ! melt pond area fraction of category (-)
3084
3081
hsn , & ! snow thickness (m)
3085
3082
hin , & ! ice thickness (m)
3086
3083
dt ! time step (s)
@@ -3141,12 +3138,8 @@ subroutine flushing_velocity(zTin, phi, &
3141
3138
perm_harm = real (nilyr,dbl_kind) / perm_harm
3142
3139
3143
3140
! calculate ocean surface height above bottom of ice
3144
- if (tr_pond_lvl) then
3145
- hocn = (ice_mass + hpond * apnd * rhofresh * alvl + hsn * rhos) / rhow
3146
- else
3147
- hocn = (ice_mass + hpond * apnd * rhofresh + hsn * rhos) / rhow
3148
- endif
3149
-
3141
+ hocn = (ice_mass + hpond * apond * rhofresh + hsn * rhos) / rhow
3142
+
3150
3143
! calculate brine height above bottom of ice
3151
3144
hbrine = hin + hpond
3152
3145
@@ -3157,12 +3150,8 @@ subroutine flushing_velocity(zTin, phi, &
3157
3150
w = (perm_harm * rhow * gravit * (dhhead / hin)) / viscosity_dyn
3158
3151
3159
3152
! maximum down flow to drain pond
3160
- if (tr_pond_lvl) then
3161
- w_down_max = (hpond * apnd * alvl) / dt
3162
- else
3163
- w_down_max = (hpond * apnd) / dt
3164
- endif
3165
-
3153
+ w_down_max = (hpond * apond) / dt
3154
+
3166
3155
! limit flow
3167
3156
w = min (w,w_down_max)
3168
3157
@@ -3183,15 +3172,14 @@ end subroutine flushing_velocity
3183
3172
3184
3173
! =======================================================================
3185
3174
3186
- subroutine flush_pond (w , hpond , apnd , dt , alvl )
3175
+ subroutine flush_pond (w , hpond , apond , dt )
3187
3176
3188
3177
! given a flushing velocity drain the meltponds
3189
3178
3190
3179
real (kind= dbl_kind), intent (in ) :: &
3191
3180
w , & ! vertical flushing Darcy flow rate (m s-1)
3192
- apnd , & ! melt pond area (-)
3193
- dt , & ! time step (s)
3194
- alvl ! level ice area tracer
3181
+ apond , & ! melt pond area fraction of category (-)
3182
+ dt ! time step (s)
3195
3183
3196
3184
real (kind= dbl_kind), intent (inout ) :: &
3197
3185
hpond ! melt pond thickness (m)
@@ -3205,14 +3193,10 @@ subroutine flush_pond(w, hpond, apnd, dt, alvl)
3205
3193
character (len=* ),parameter :: subname= ' (flush_pond)'
3206
3194
3207
3195
if (tr_pond) then
3208
- if (apnd > c0 .and. hpond > c0) then
3196
+ if (apond > c0 .and. hpond > c0) then
3209
3197
3210
3198
! flush pond through mush
3211
- if (tr_pond_lvl) then
3212
- hpond = hpond - w * dt / (apnd * alvl)
3213
- else
3214
- hpond = hpond - w * dt / apnd
3215
- endif
3199
+ hpond = hpond - w * dt / apond
3216
3200
3217
3201
hpond = max (hpond, c0)
3218
3202
0 commit comments