Skip to content

Forcing data models

Andrew Kiss edited this page Jan 31, 2025 · 7 revisions

Forcing

Forcing is provided via CDEPS data models documented here, in particular

  • DATM for the atmosphere
  • DROF for runoff

Coupling

  • DATM and DROF are coupled to the other components via the mediator - see the coupling architecture here.
  • The coupled fields and remapping methods used are recorded in the mediator log output file and can be found with grep '^ mapping' archive/output000/log/med.log; see here for how to decode this.
  • See the Configurations page for details on how the coupling is determined.

Input data

datm.streams.xml and drof.streams.xml set individual input file paths for DATM and DROF respectively, relative to this entry in the input section of config.yaml (see the Configurations page).

Ice surface wind stress

This is calculated in CICE6 (IcePack). The wind velocity, specific humidity, air density and potential temperature at the level height zlvl (with optionally a different height zlvs for scalars) are used to compute transfer coefficients used in formulas for the surface wind stress and turbulent heat fluxes.

The CICE6 forcing settings are in namelist group forcing_nml in cice_in. Many are unspecified and therefore take the default values. We use the default atmbndy = 'similarity', which uses a stability-based boundary layer parameterisation based on Monin-Obukhov theory following Kauffman and Large (2002). Because our ice-ocean coupling frequency resolves inertial oscillations we use the non-default option highfreq = .true. (Roberts et al., 2015), which uses the relative ice-atmosphere velocity to calculate the wind stress on the ice. The exchange coefficients for momentum and scalars are determined iteratively, with a convergence tolerance atmiter_conv on ustar and maximum natmiter iterations. These take default values atmiter_conv = 0.0 and natmiter = 5. We don't use spatiotemporally variable form drag (formdrag = .false, the default).

Ocean surface stress

Ocean surface stress is a combination of wind stress and ice-ocean stress. Foxx_taux and Foxx_tauy are the components of this combined surface stress received by the MOM6 cap, and are calculated in the mediator. Foxx_taux is a weighted sum of Fioi_taux (the ice-ocean stress) and Faox_taux (the atmosphere-ocean stress), weighted by the fraction of ice and open ocean in each cell. Similarly, Foxx_tauy is a weighted sum of Fioi_tauy and Faox_tauy. The prefix Foxx denotes an ocean (o) - mediator (x) flux (F) calculated by the mediator (x). Similarly Fioi denotes an ice (i) - ocean flux calculated by the ice component, and Faox indicates an atmosphere (a) - ocean flux calculated by the mediator (see here for details on this notation). Thus Fioi_taux is calculated in CICE6, whereas Faox_taux is calculated in the mediator (similarly for the y components).

Ice-ocean stress

The ice-ocean stress components Fioi_taux and Fioi_tauy are calculated in CICE6. Fioi_taux and Fioi_tauy are mapped from tauxo and tauyo in the CICE6 cap, which are in turn calculated in the CICE6 cap from strocnxT_iavg and strocnyT_iavg, which are per-ice-area quantities at T points calculated from per-cell-area stresses at U points strocnxU and strocnyU. strocnxU and strocnyU are calculated by subtroutine dyn_finish using this code; see equation (4) here and equation (2) here for an explanation. We use a turning angle $\theta=0$ (cosw = 1.0, sinw = 0.0, the defaults), which is appropriate for an ocean component with vertical resolution sufficient to resolve the surface Ekman layer. We don't use spatiotemporally variable form drag (formdrag = .false, the default).

TODO: what namelist controls the ice-ocean stress calculation?

Atmosphere-ocean stress

The atmosphere-ocean stress components Faox_taux and Faox_tauy are calculated in the mediator. We calculate Faox_taux and Faox_tauy using ocn_surface_flux_scheme = 0 in nuopc.runconfig, which is the default CESM1.2 scheme. This iterates towards convergence of ustar to a relative error of less than flux_convergence = 0.01, if this can be achieved in flux_max_iteration = 5 iterations or fewer. The atmosphere-ocean stress is calculated using the relative wind, i.e. the difference between the surface wind and surface current velocity.

Clone this wiki locally