[MITgcm-devel] pkg/exf main options

Jean-Michel Campin jmc at mit.edu
Fri Jan 27 17:03:41 EST 2017


Hi,

So I've checked-in the proposed changes.

I made several changes/updates in pkg/exf/EXF_OPTIONS.h and specially regarding 
documentation (i.e., comments); if you have any comments or suggestions to 
improve it, would be nice to send them before I update the few
EXF_OPTIONS.h in verification/*/code* dirs (will not happen before mid-week).

There is an other "simplification" that I would suggest:
When ALLOW_ATM_TEMP is undef, EXF_READ_EVAP still allows to read-in evap 
even though evap is not used. I cannot think of a situation where evap could 
be used without ALLOW_ATM_TEMP (i.e., without precip).
Restricting the use of EXF_READ_EVAP to the case of ALLOW_ATM_TEMP defined,
will make the code simpler (evap will appear just like precip, undef the
same #ifdef); this could also facilitate the conversion of EXF_READ_EVAP
into a run-time parameter.

And the last point is related to S/R EXF_CHECK: I think it would help to
add some basic checks, such as:
- stop when a file is specified but code to read it is not available (given
  the set of CPP options used to compile).
- add a warning when a file is read-in but not used within pkg/exf (e.g.,
  hfluxfile and sfluxfile when ALLOW_ATM_TEMP is defined).

Cheers,
Jean-Michel

On Wed, Jan 25, 2017 at 11:12:16AM +0100, Martin Losch wrote:
> Hi Jean-Michel,
> 
> thanks for disentangling these exf options. As far as I can understand exf, your changes are a step forward! I assume that the TAF recomputations with ???useAtmWind??? can be fixed with some store directives (for ???sh???)?
> 
> Martin
> 
> > On 24 Jan 2017, at 18:25, Jean-Michel Campin <jmc at mit.edu> wrote:
> > 
> > Hi all,
> > 
> > I was looking at the different main options in pkg/exf (in EXF_OPTIONS.h).
> > 
> > Currently, pkg/exf supports the option of prescribing net radiative
> > fluxes while computing turbulent heat flux (latent and sensible) 
> > but the reverse can also be useful, meaning a mixed set-up where:
> > - we specify turbulent heat flux as well as precip and evap [+ run off].
> > and
> > - we compute net radiative fluxes (LW & SW) from downward radiative component.
> > 
> > Apart form adding the loading from files of Sensible and Latent heat flux,
> > there are few changes needed to make this works:
> > 1) ALLOW_ATM_TEMP has to be defined to compute net heat-flux from 4 components
> >  (SW,LW,SH,LW). This feature is not well documented, but does not prevent to
> >  implement the new mixed setting.
> > 2) EXF_RADIATION and EXF_WIND are called only if ALLOW_BULKFORMULAE is defined.
> > This is a problem for this mixed setting implementation because the simplest 
> > way to not recompute/overwrite the Sensible and Latent heat fluxes would be 
> > to skip the call to EXF_BULKFORMULAE ; this would be also safer since
> > atemp & aqh don't need to be read-in for this mixed setting to work.
> > 
> > A little bit on the side (but related):
> > I've recently updated the table of option in EXF_OPTIONS.h
> > to reflect the fact that 2 documented combinations (ALLOW_ATM_TEMP defined 
> > with ALLOW_BULKFORMULAE undef) are indeed not currently working as assumed.
> > In fact, the way pkg/exf works well is when ALLOW_BULKFORMULAE is always
> > set according to (EXF_OPTIONS.h, lines 164-167): 
> >> #if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND))
> >> # define ALLOW_BULKFORMULAE
> >> # undef  ALLOW_BULK_LARGEYEAGER04
> >> #endif
> > 
> > So, I propose to make the following changes:
> > 1) document what ALLOW_ATM_TEMP does.
> > 2) make the call to EXF_RADIATION independent of ALLOW_BULKFORMULAE,
> >   always called when ALLOW_DOWNWARD_RADIATION is defined.
> >   This is very easy, not much to change, no TAF recomp. issues.
> > 3)  make the call to EXF_WIND independent of ALLOW_BULKFORMULAE:
> >  From my point of view, this would be nice since it would make
> >  wind-stress options available even with simplest buoyancy forcing.
> >  This is a little bit more tricky, because I have to move a short piece
> >  of code from exf_bulkformulae.F (case ALLOW_ATM_TEMP undef) to exf_wind.F
> >  and the replacement of ALLOW_ATM_WIND with run-time parameter "useAtmWind"
> >  introduces some TAF recomputations (as a quick fix, I can avoid this 
> >  problem by using again the CPP option ALLOW_ATM_WIND).
> > With those changes, the CPP option ALLOW_BULKFORMULAE will only be used
> > to call (or not) S/R EXF_BULKFORMULAE.
> > 
> > Note that none of these proposed changes will affect the 2 most used settings
> > (and the only ones tested), i.e., direct sea-surface forcing fluxes
> > (like in global_with_exf/) of the full bulk-formulae + downward radiation.
> > case (e.g, in lab_sea/).
> > 
> > Any suggestion/comment ?
> > 
> > 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