[MITgcm-devel] merged budget_ice

Jean-Michel Campin jmc at ocean.mit.edu
Tue Sep 21 19:41:50 EDT 2010


Hi Ian and others,

I've checked that the merged (_if + original) version of seaice_budget_ice.F
is not changing at all the forward tesreport results (tested with gfortran 
and with ifort+mpi+mth). And regarding adjoint test (with gfortran),         
I am getting small differences (15 versus 16 digits of matching 
in gradient check) for lab_sea & lab_sea.evp (others are identical).

It could be moved to pkg/seaice. Do we want to give it a new name ?
(I think it would be better since the way it's written is quite
different from pkg/seaice/seaice_budget_ice.F).
The somehow equivalent in pkg/thsice (I was wrong last time) are:
THSICE_STEP_TEMP which call THSICE_SOLVE4TEMP
(seaice_solve4temp.F would look OK to me)

Cheers,
Jean-Michel

On Tue, Sep 21, 2010 at 12:10:27PM -0400, Jean-Michel Campin wrote:
> Hi Ian,
> 
> I did not get the confirmation from Gael, but looks like the problem
> he was having (getting NaNs) with the MITgcm_contrib version of 
> seaice_growth_if.F is quite similar to what I was getting (division by zero) 
> in the same routine. The lines of code where we have a pb are:
> 1268                   IF  (salt(I,J,kSurface,bi,bj) .GE.
> 1269      &               SEAICE_salinity_fixed)  THEN
> 1270 
> 1271                      FreshwaterContribFromIce(I,J) =
> 1272      &                  - ActualIceVolumeChange(I,J)*
> 1273      &                  SEAICE_rhoICE/ RHOFW* (ONE -
> 1274      &                  SEAICE_salinity_fixed/salt(I,J,kSurface,bi,bj))
> 
> I personally don't understand what this formulation means. 
> 
> In addition, it introduces a sharp discontinuity around 
> salt() = SEAICE_salinity_fixed:
> a) if salt() = -1.e-16 + SEAICE_salinity_fixed, then
>  FreshwaterContribFromIce is the full delta ice-volume
> b) if salt() = SEAICE_salinity_fixed, then
>  FreshwaterContribFromIce = 0 even if there is a large 
>  change of ice volume (from melting or freezing)
> 
> I have a 3rd remark: did not see any contribution to saltFlux,
> which seems strange for the case where SEAICE_salinity(_fixed) is > 0
> 
> Thanks,
> Jean-Michel
> 
> On Tue, Sep 21, 2010 at 02:27:07AM -0400, Ian Fenty wrote:
> > Merging SEAICE_BUDGET_ICE and SEAICE_BUDGET_ICE_IF
> >
> > Fenty_Thermo_Code_Updates/code_updates/seaice_budget_ice.F
> >
> > The routine seaice_budget_ice.F is merged with seaice_budget_ice_if.F in  
> > a file which continues to be called seaice_budget_ice.F.  The newly  
> > merged routine can use either the original "default" method for  
> > calculating fluxes between snow-ice and air by including "#define  
> > USE_ORIGINAL_SBI" in SEAICE_OPTIONS.h.
> >
> > The method used in seaice_budget_ice_if.F is set to be the default.   
> > Invoking the original flux calculations should give the same results as  
> > using the original seaice_budget_ice routine.  The difference between  
> > the two methods is due to 1) alternative formulation of saturation vapor  
> > pressure over the ice 2) truncation errors stemming from differences in  
> > the ordering of some calculation 3) difference in the iterative search  
> > scheme ( the original method uses an approximate derivative of the  
> > surface energy balance w.r.t. the snow/ice surface temperature while the  
> > _if codes uses the full derivative.).
> >
> >
> >
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel



More information about the MITgcm-devel mailing list