[MITgcm-devel] pkg/exf main options
Jean-Michel Campin
jmc at mit.edu
Tue Jan 24 12:25:38 EST 2017
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
More information about the MITgcm-devel
mailing list