[MITgcm-devel] wrapping up seaice_growth.F october 2010 revision

Gael Forget gforget at MIT.EDU
Sun Oct 17 11:14:32 EDT 2010


Jean-Michel, updating SEAICE_OPTIONS.h is indeed in order. Tomorrow I guess.
May be we should then replace USE_ORIGINAL_SBI with a meaningful name.
The same is true for the ones I chose, if you feel they are inadequate.

Regarding the failed lab_sea ad+mpi test, it sounds like it is probably due to my modifs. Sorry if it is.
A priori, I dont see why it would run fine in the forward and not in the adjoint. 
I will try to run lab_sea ad+mpi on my laptop today if I have time.

Martin, seaice_growth.F does not use the USE_ORIGINAL_SBI in any event. 
The way I see it, the solve4temp branches and the seaice_growth.F branches will 
eventually be chosen independently. What stands in our way is the fact that there
are extra outputs "#ifndef USE_ORIGINAL_SBI". Once the _IF stuff is removed,
we shall remove the extra outputs too, which will allow us to use either 
temperature solver branch, regardless of the seaice_growth.F branch. 

Cheers,
Gael



On Oct 17, 2010, at 9:19 AM, Jean-Michel Campin wrote:

> Hi Martin,
> 
> I don't know how things should be at the end, but it was clear to me
> that those 2 options (SEAICE_GROWTH_LEGACY and USE_ORIGINAL_SBI) should
> move to SEAICE_OPTIONS.h at some point. 
> 
> May be now it could be a good time to move them both to SEAICE_OPTIONS.h ?
> Gael, what do you think of this ?
> 
> And regarding SEAICE_ALLOW_TD_IF, It sould be removed (with the corresponding
> S/R) once we are happy with the updated code with undef SEAICE_GROWTH_LEGACY
> and USE_ORIGINAL_SBI). 
> 
> Cheers,
> Jean-Michel
> 
> On Sun, Oct 17, 2010 at 11:59:58AM +0200, Martin Losch wrote:
>> Just a comment:
>> 
>> In seaice_solve4temp with have USE_ORIGINAL_SBI to decide between "legacy" and Ian's code, but in seaice_growth we have a different flag (SEAICE_GROWTH_LEGACY) to do this. So, if you want to turn off the old code, you'll have to modify two different files. Further, there is still the flag SEAICE_ALLOW_TD_IF, that is not part of seaice_growth.F (i.e. if used there will be a different number of formal/dummy parameters in the list of seaice_solve4temp.F). I am sure that this will cause a lot of confusion.
>> 
>> Martin
>> 
>> On Oct 16, 2010, at 1:12 AM, Gael Forget wrote:
>> 
>>> Dear all,
>>> 
>>> Revision 1.89 of seaice_growth.F completes the overall october 2010 revision and merging process. 
>>> After sending this email I will add a summary of the 10/10 revision in tag-index.
>>> 
>>> If you please, it is time for you to look at the code, and put it to the test. 
>>> Hopefully we won't discover too many mistakes of mine. Please let me know if you do.
>>> 
>>> In my view, the next phase consists in freezing seaice_growth.F (the code I mean :-) ) for a while, 
>>> to take the necessary time (a week or two?) to understand and evaluate the code as it stands now. 
>>> 
>>> The routine has two branches (ifdef/ifndef SEAICE_GROWTH_LEGACY) that are meant 
>>> to cohexist, at least for a while. For the most part they are identical. Only a 
>>> few code blocks are switched ON or OFF by means of SEAICE_GROWTH_LEGACY.
>>> 
>>> The 'legacy' branch remains the default for now (see #define SEAICE_GROWTH_LEGACY 
>>> at the top of the routine). It should give results that are very similar to v1.70.
>>> This branch is meant to stay the way it is, except for potential bug fixes. 
>>> 
>>> So, please keep new stuff within "#ifndef SEAICE_GROWTH_LEGACY" brackets, 
>>> namely within the other ('evolution') branch. No need to rush it anyway.
>>> 
>>> The 'evolution' branch is meant to eventually become the default, but only once it 
>>> has been sufficiently tested, and I have gotten feedback -- I wont rush it. 
>>> 'evolution' contains the two "_if.F" pieces. Except for that, the main deviation 
>>> from 'legacy' is the treatment of pathological cases. It does, or will, 
>>> ensure closed budgets. It takes place at the beginning of seaice_growth.F, 
>>> right after advdiff, which is where pathological cases can come from. There is 
>>> no reason why the thermodynamic code itself would lead to pathological cases. 
>>> We just have to make it rigorously correct -- if the code is not already such, 
>>> it will be.
>>> 
>>> With my set-up I plan to do few-years-long runs to test the code, using
>>> 	v1.70 (legacy, pre  10/2010 revision)
>>> 	v1.89 (legacy, post 10/2010 revision)
>>> 	v1.89 (evolution' #undef SEAICE_GROWTH_LEGACY in seaice_growth.F)
>>> 	v1.11 of seaice_growth_if.F
>>> and compare results. It would be great if some of you did something like 
>>> this with your own set-up of choice, and let me know how it went.
>>> 
>>> Cheers,
>>> Gael
>>> 
>>> ps: Martin, I will reply to your questions in a separate email.
>>> 
>>> 
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>> 
>> 
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list