Requirements on the GCM

After MARBL has been setup, the GCM will need to ensure that it can provide MARBL with all the data MARBL has requested and run any computations that MARBL is not capable of.

Provide data to MARBL

MARBL will need the following from the GCM:

  1. Tracer state (including initial state)
  2. Specific forcing fields
  3. Saved state from the previous timestep

Computations across columns

Currently, the only time MARBL expects a GCM to set lgcm_has_global_ops = .true. in init() is when running with ladjust_bury_coeff = .true.. In that case, MARBL will ask the GCM to provide results from the following two functions:

  1. Global sums of data MARBL computes column-by-column
  2. Running means of fields (eventually MARBL will compute these internally and use saved state to maintain the mean)

Note that most typical experiments can be run with ladjust_bury_coeff = .false., so for first-time implementations it is okay to skip this section.