[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