[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