Skip to content

Commit

Permalink
merge ice shelf updates from Alex
Browse files Browse the repository at this point in the history
  • Loading branch information
MJHarrison-GFDL committed Jan 10, 2024
2 parents 9d0ca6a + 006445f commit 0766d13
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 16 deletions.
2 changes: 1 addition & 1 deletion src/ice_shelf/MOM_ice_shelf.F90
Original file line number Diff line number Diff line change
Expand Up @@ -854,7 +854,7 @@ subroutine ice_sheet_calving_to_ocean_sfc(CS,US,calving,calving_hflx)
ISS => CS%ISS
is = G%isc ; ie = G%iec ; js = G%jsc ; je = G%jec

calving = US%RZ_to_kg_m2 * ISS%calving(is:ie, js:je)
calving = US%RZ_T_to_kg_m2s * ISS%calving(is:ie,js:je)
calving_hflx = US%QRZ_T_to_W_m2 * ISS%calving_hflx(is:ie,js:je)

CS%calve_ice_shelf_bergs=.true.
Expand Down
20 changes: 6 additions & 14 deletions src/ice_shelf/MOM_ice_shelf_dynamics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1179,19 +1179,12 @@ subroutine ice_shelf_advect(CS, ISS, G, time_step, Time, calve_ice_shelf_bergs)
call shelf_advance_front(CS, ISS, G, ISS%hmask, uh_ice, vh_ice)
!add mass of the partially-filled cells to calving field, which is used to initialize icebergs
!Then, remove the partially-filled cells from the ice shelf
!Note that the ocean_public_type calving and calving_hflx point
!to ISS%calving and ISS%calving_hflx, repectively
do j=jsc,jec; do i=isc,iec
if (ISS%hmask(i,j)==2) then
ISS%calving(i,j) = ISS%calving(i,j) + &
ISS%h_shelf(i,j) * ISS%area_shelf_h(i,j) * CS%density_ice / (G%areaT(i,j) * time_step) !kg/m2s
!is this correct (which Cp and T do you use?) See river definition of calving_hflx?
!see MOM_forcing_type.F90...why use heat capacity of seawater there.
!here, we use Cp_ice of freshwater, and dT is the shelf temperature (maybe should be
!shelf temperature - local seawater temperature?)
ISS%calving_hflx(i,j) = ISS%calving_hflx(i,j) + &
CS%Cp_ice * ISS%h_shelf(i,j) * ISS%area_shelf_h(i,j) * &
CS%density_ice * abs(CS%t_shelf(i,j)) / G%areaT(i,j) !W/m2
ISS%calving(i,j) = ISS%h_shelf(i,j) * ISS%area_shelf_h(i,j) * &
CS%density_ice / (G%areaT(i,j) * time_step)
ISS%calving_hflx(i,j) = CS%Cp_ice * ISS%h_shelf(i,j) * ISS%area_shelf_h(i,j) * &
CS%density_ice * CS%t_shelf(i,j) / G%areaT(i,j)
ISS%h_shelf(i,j) = 0.0; ISS%area_shelf_h(i,j) = 0.0; ISS%hmask(i,j) = 0.0
endif
enddo; enddo
Expand Down Expand Up @@ -3111,10 +3104,9 @@ subroutine calc_shelf_taub(CS, ISS, G, US, u_shlf, v_shlf)
real :: umid, vmid, unorm, eps_min ! Velocities [L T-1 ~> m s-1]
real :: alpha !Coulomb coefficient [nondim]
real :: Hf !"floatation thickness" for Coulomb friction [Z ~> m]

real :: fN !Effective pressure (ice pressure - ocean pressure) for Coulomb friction [R L2 T-2 ~> Pa]
real :: fN !Effective pressure (ice pressure - ocean pressure) for Coulomb friction [Pa]
real :: fB !for Coulomb Friction [(T L-1)^CS%CF_PostPeak ~> (s m-1)^CS%CF_PostPeak]
real :: fN_scale !To convert effective pressure to mks units during Coulomb friction
real :: fN_scale !To convert effective pressure to mks units during Coulomb friction [Pa T2 R-1 L-2 ~> 1]


isc = G%isc ; jsc = G%jsc ; iec = G%iec ; jec = G%jec
Expand Down
2 changes: 1 addition & 1 deletion src/ice_shelf/MOM_ice_shelf_state.F90
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ module MOM_ice_shelf_state

!only active when calve_point_bergs_from_static_shelf_front=.true.:
calving => NULL(), & !< The mass per unit area of the ice shelf to convert to
!!bergs [R Z ~> kg m-2].
!!bergs [RZ_T ~> kg m-2 s-1].
calving_hflx => NULL() !< Calving heat flux [Q R Z T-1 ~> W m-2].
end type ice_shelf_state

Expand Down

0 comments on commit 0766d13

Please sign in to comment.