[MITgcm-devel] status
Menemenlis, Dimitris (3248)
Dimitris.Menemenlis at jpl.nasa.gov
Fri Feb 25 19:22:36 EST 2011
Gael, thank you for really helpful message.
Pierre and I had missed this problem going over the ice age code yesterday.
We agree that for ifdef SEAICE_AGE_VOL, we should have iceAge=a*HEFF
We have changed code and comments accordingly.
Yes, the ifndef SEAICE_AGE_VOL case is for more direct comparison with
satellite-derived estimates but even this is not ideal.
What we would really like to have for comparison with observations
is two or more tracers, that quantify fraction of first year ice, second year ice,
etc., in each grid cell. But this will have to wait for ice tracer sub-package.
On Feb 25, 2011, at 5:09 AM, Gael Forget wrote:
> Hi Pierre and Dimitris,
>
> sorry for the terminology confusion. In the first place, I should have specified that
> I was focusing on the "#define SEAICE_AGE_VOL" case. Below I shall try to be more
> precise and expend my earlier comment. Hopefully I am not going to add confusion…
>
> Cheers, Gael
>
> ==== #define SEAICE_AGE_VOL case ====
>
> Let me denote the age of the ice material as 'a' (the intensive property, in seconds)
> and the total age of the ice in a grid cell as 'aExt' (the extensive property, in s*kg),
> so that aExt =a*HACTUAL*(AREA*RAC)*RHOICE=a*HEFF*RAC*RHOICE.
> The model iceAge variable is the 'effective' age iceAge=a*AREA.
>
> In this case, unless I am mistaken, seaice_advection expects
> to receive a*HEFF (omitting the RHOICE constant) whereas it
> receives a*AREA. This is the problem that we overlooked when
> I started coding the '#define SEAICE_AGE_VOL' case with Pierre.
>
> ==== #undef SEAICE_AGE_VOL case ====
>
> Now 'a' (still in seconds) is a tracer of ice cover, as opposed to a tracer of ice material.
> The extensive property then is aExt=a*AREA*RAC (in s.m^2). iceAge is still a*AREA.
>
> In this case, seaice_advection expects to receive a*AREA, which
> it does in the form of iceAge (no problem here, you are right).
>
> ==== #define SEAICE_SALINITY ===
>
> HSALT is s*HEFF (in g/m2) where s would be a 'salinity expressed in g/m3'.
> It is referred to as 'effective' in SEAICE.h but I am loosing track of what 'effective'
> means at this point. Anyway seaice_advection receiving HSALT is correct I believe.
>
> ==== short term fix for #define SEAICE_AGE_VOL case ====
>
> define iceAge as iceAge=a*HEFF when'#define SEAICE_AGE_VOL'
> in analogy with what is done for HSALT when '#define SEAICE_SALINITY'
>
> ===== ice tracers more generally ====
>
> I agree with Chris and Manfredi that the integration with ptracers
> should be regarded as the broader issue of most importance.
>
> In addition to what they said, let me stress that the '#undef SEAICE_AGE_VOL case'
> seems of no interest in this broader context. My understanding is that the only reason
> we are talking about an ice cover tracer is that there is an observational proxy to that.
> As soon as we consider ocean-ice exchanges (as for HSALT e.g.), tracers need to be
> tied to a mass of material (as opposed to ice cover), right? This is why I was focusing on
> the '#define SEAICE_AGE_VOL case', and why Pierre and I started coding it in the first place.
>
> ==== seaice_advection and ice tracers ====
>
> So, let me focus on advection for tracers of ice material (as in
> '#define SEAICE_SALINITY' and '#define SEAICE_AGE_VOL').
>
> The two options consist in having the main prognostic variable,
> which seaice_advection receives, be like
> (1) a*HEFF and s*HEFF (i.e. extensive, modulo some constants)
> or (2) a and s (i.e. intensive).
> Both options have been coded in seaice_advection.F so you can look up
> what the differences are in details, and we could choose either approach.
> (you will note that 'extensiveFld' is presently hard-coded to true though)
> But in summary, advection of intensive ice tracers is more complicated
> and involves a multiplication by r_hfld factor (i.e. a division by HEFF).
>
> I guess my previous email comment should have been phrased more precisely as:
> may be it is a good time to adopt iceAge=a*HEFF when'#define SEAICE_AGE_VOL',
> assuming that the long term strategy to advect generic ice tracers is along this line.
>
>
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
More information about the MITgcm-devel
mailing list