[MITgcm-devel] autodiff_store/restore/ALLOW_ECCO_EVOLUTION

Gael Forget gforget at MIT.EDU
Fri Mar 7 09:42:38 EST 2014


Hi Martin,
I am interested. However I just 
came back from 2 weeks traveling 
and am Backed up with papers for 
the next weeks if not months.

I will try to get to it ASAP but
Can't promise it will be very soon.
Realistically it could be two months ...

You can always check stuff in and
I will figure out later if the Ecco v4
Set up got broken. In any case,
Thanks for looking Into this,

Gael

Sent from my iPhone

On Mar 7, 2014, at 9:24, Martin Losch <Martin.Losch at awi.de> wrote:

> Hi again,
> 
> I don’t know about the utility of ALLOW_ECCO_EVOLTION, but I think I solved my problem, in case anyone is interested:
> 
> I prefer that have the cpp-flags for the exf-pkg in the EXF_OPTIONS.h file. This somehow clashes with the convention that for adjoint models these cpp-flags should now be in ECCO_CPPOPTIONS.h. This convention, which I’d like to challenge (again), has been cemented a little more by these lines 
> #ifdef ECCO_CPPOPTIONS_H
> dont do anythin
> #else
> here are the exf flags
> #endif
> that I found in my EXF_OPTIONS.h (which I grabbed from MITgcm_contrib/arctic/cs_36km/code, but it’s also in pkg/exf/EXF_OPTIONS.h).
> With this if-construct, EXF_OPTIONS.h are never loaded after ECCO_CPPOPTIONS.h has been loaded. In this sense the 
> #ifdef ALLOW_ECCO_EVOLUTION
> #ifdef ALLOW_EXF
> #include “EXF_OPTIONS.h”
> #endif
> #endif
> has no effect, because ALLOW_ECCO_EVOLUTION is typically defined in ECCO_CPPOPTIONS.h
> 
> My solution is to remove the if statement from the EXF_OPTIONS.h or should I rather remove ECCO_CPPOPTIONS.h and distribute the flags in there to AUTODIFF_OPTIONS.h/CTRL_OPTIONS.h/COST_OPTIONS.h/EXF_OPTIONS.h
> What’s the preferred method now?
> 
> Martin
> 
> On Mar 5, 2014, at 12:52 AM, Patrick Heimbach <heimbach at mit.edu> wrote:
> 
>> Hi Martin,
>> 
>> I can take a look after Thursday (currently on travel).
>> The flags seem a little messed up.
>> 
>> p.
>> 
>> On Mar 4, 2014, at 12:29 PM, Martin Losch <Martin.Losch at awi.de> wrote:
>> 
>>> Hi there,
>>> 
>>> I have a setup for which I do not want to use the ecco package, but seaice, exf, etc.
>>> 
>>> I think that autodiff_store/restore do not compile without ECCO, at least not in my case because the
>>> #ifdef ALLOW_ECCO_EVOLUTION 
>>> prevents loading the EXF_OPTIONS.h, that in turn prevent defining ALLOW_RUNOFF and the variable runoff is not defined (line 548).
>>> 
>>> How do I fix that so that it doesn’t break things for ECCO or anyone else? Remove the #ifdef ALLOW_ECCO_EVOLUTION? so that EXF_OPTIONS.h are always included as long as ALLOW_EXF is defined?
>>> 
>>> Martin
>>> 
>>> 
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>> 
>> 
>> ---
>> Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
>> MIT | EAPS 54-1420 | 77 Massachusetts Ave | Cambridge MA 02139 USA
>> FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach
>> 
>> _______________________________________________
>> 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