[MITgcm-devel] real-fresh-water-flux with pkg/shelfice
Martin Losch
Martin.Losch at awi.de
Fri Jan 9 09:02:06 EST 2015
Hi Jean-Michel,
I think we talked about this about a year ago, but I never completed my action item to actually implement this.
From what I found in my multiple personal MITgcm copies, I think we agreed on option 2(b) and your suggestions in 3), because I had partly implemented that already. The extra code in shelfice_forcing_surf.F looks like this:
#ifdef EXACT_CONSERV
C NB: synchronous time step: PmEpR lags 1 time step behind EmPmR
C to stay consitent with volume change (=d/dt etaH).
CML# ifdef ALLOW_AUTODIFF_TAMC
CMLCADJ STORE PmEpR = comlev1, key = ikey_dynamics, kind = isbyte
CMLCADJ STORE EmPmR = comlev1, key = ikey_dynamics, kind = isbyte
CML# endif
CML IF ( staggerTimeStep ) THEN
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
PmEpR(i,j,bi,bj) = PmEpR(i,j,bi,bj)
& - SHELFICEfreshWaterFlux(i,j,bi,bj)
ENDDO
ENDDO
CML ENDIF
#endif /* EXACT_CONSERV */
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
EmPmR(i,j,bi,bj) = EmPmR(i,j,bi,bj)
& + SHELFICEfreshWaterFlux(i,j,bi,bj)
ENDDO
ENDDO
cFac=1 adds temperature and salinity tendency due to the advection by meltwater. This is very tricky, because the underlying assumption is, that there is a thin boundary (not resolved) at T=tfreeze and S=sFreeze. This boundary layer will not vanish if freshwater is really added to the ocean, so I think that the cFac = 1 is still OK, but I can be convinced otherwise.
rFac is used on one place: computation of shelficeHeatFlux, which is “just” a diagnostic (and used in esoteric cost functions …), so I don’t see this as a crucial thing to understand (again). Currently, I don’t understand why it is used in the way it is.
Martin
On Jan 9, 2015, at 2:11 AM, Jean-Michel Campin <jmc at ocean.mit.edu> wrote:
> Hi Martin and others,
>
> Looking at how to make shelfice to work with useRealFreshWaterFlux=T :
>
> 1) I think there will be few things to change in solve_for_pressure.F
> (+ integr_continuity.F, integrate_for_w.F, cg3d.F & pre_/post_cg3d.F)
> for z* and/or for Non-Hydrostatic,
> but if we leave these 2 options on the side for now, should work
> as long as EmPmR has been updated to include ice-shelf melting.
>
> 2) Regarding where/when to modify EmPmR (to add melting):
> a) one option would be fill-up EmPmR (and may be also Qnet)
> in shelfice_thermodynamics.F and rely on usual way surface forcing
> is apply to T,S time-stepping.
> The problem here is that external_forcing_surf.F is not ready yet
> to deal with ks > 1.
> b) a simpler alternative (involving less changes) would be to continue
> to rely on shelfice_forcing_surf.F (called from external_forcing_surf.F)
> to copy shelficeForcingT/S into surfaceForcingT,S
> and to add a piece of code there to update/modify EmPmR.
> This would make a difference if using balanceEmPmR (that would
> balance EmPmR over ocean surface - excluding shelfice melting -
> but this might even be better.
>
> 3) The other things involve changes in shelfice_thermodynamics.F:
> I would propose that:
> a) we keep unchanged the "SHELFICEBoundaryLayer" part together with
> the 2 S/R within shelfice_forcing.F but
> b) for the case SHELFICEBoundaryLayer=F, we could just compute the melting
> rate (shelfIceFreshWaterFlux ?) in shelfice_thermodynamics.F
> and push shelficeForcingT/S calculation to shelfice_forcing_surf.F
> I am not sure about the current setting of cFac/rFac according to
> SHELFICEconserve/useRealFreshWaterFlux, and there might be some simpler
> (and more consistent with main model options such as useRealFreshWaterFlux
> & nonlinFreeSurf with temp,salt_EvPrRn settings) ways to change this.
>
> I might have missed something there (did not check too carefully);
> and any comment is appreciated.
>
> Cheers,
> Jean-Michel
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list