[MITgcm-devel] pkg/exf main options
Martin Losch
martin.losch at awi.de
Wed Jan 25 05:12:16 EST 2017
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