url = "", 
                  height_above_water = <none>,
                  minimum_depth = 0,
                  dir = joinpath(@__DIR__, "..", "data"),
                  filename = "")

Regrid bathymetry associated with the NetCDF file at path = joinpath(dir, filename) to target_grid. If path does not exist, then a download is attempted from joinpath(url, filename).

TODO: describe keyword arguments.

stretched_vertical_faces(; surface_layer_Δz = 5.0,
                           surface_layer_height = 100.0,
                           constant_bottom_spacing_depth = Inf,
                           maximum_Δz = Inf,
                           stretching = PowerLawStretching(1.02),
                           rounding_digits = 1,
                           minimum_depth = 5000)

Return an array of cell interfaces with surface_layer_Δz spacing in a surface layer of height surface_layer_height, and stretched according to the function stretching(Δz_above, z_above) down to minimum_depth. The interfaces extends from Lz = -z[1] to 0 = z[end], where Lz ≥ minimum_depth.

The grid spacing Δz is limited to be less than maximum_Δz. The grid is also uniformly-spaced below constant_bottom_spacing_depth.

rounding_digits controls the accuracy with which the grid face positions are saved.

                        architecture = CPU(),
                        time_indices = :,    
                        url = urls[name],
                        filename = file_names[variable_name],
                        short_name = short_names[variable_name])

Return a FieldTimeSeries containing atmospheric reanalysis data for variable_name, which describes one of the variables in the "repeat year forcing" dataset derived from the Japanese 55-year atmospheric reanalysis for driving ocean-sea-ice models (JRA55-do). For more information about the derivation of the repeat year forcing dataset, see

"Stewart et al., JRA55-do-based repeat year forcing datasets for driving ocean–sea-ice models", Ocean Modelling, 2020,

The variable_names (and their short_names used in NetCDF files) available from the JRA55-do are:

- `:freshwater_river_flux`              ("friver")
- `:freshwater_rain_flux`               ("prra")
- `:freshwater_snow_flux`               ("prsn")
- `:freshwater_iceberg_flux`            ("licalvf")
- `:specific_humidity`                  ("huss")
- `:sea_level_pressure`                 ("psl")
- `:relative_humidity`                  ("rhuss")
- `:downwelling_longwave_radiation`     ("rlds")
- `:downwelling_shortwave_radiation`    ("rsds")
- `:atmospheric_temperature`            ("ras")
- `:atmospheric_eastward_velocity`      ("uas")
- `:atmospheric_northward_velocity`     ("vas")

Keyword arguments

- `architecture`: Architecture for the `FieldTimeSeries`.
                  Default: CPU()

- `time_indices`: Indices of the timeseries to extract from file. 
                  For example, `time_indices=1:3` returns a 
                  `FieldTimeSeries` with the first three time snapshots
                  of `variable_name`.

- `url`: The url accessed to download the data for `variable_name`.
         Default: `ClimaOcean.JRA55.urls[variable_name]`.

- `filename`: The name of the downloaded file.
              Default: `ClimaOcean.JRA55.filenames[variable_name]`.

- `short_name`: The "short name" of `variable_name` inside its NetCDF file.
                Default: `ClimaOcean.JRA55.short_names[variable_name]`.
MixedLayerDepthField(grid, tracers, buoyancy_model; Δb = 3e-4, field_kw...)

Return a reduced Field{Center, Center, Nothing} that represents mixed layer depth for model, based on a buoyancy differential criterion. The mixed layer depth is defined as the depth $h$ for which

\[b(z=0) - b(z=-h) = Δb\]

This criterion is solved by integrating downwards and linearly interpolating to find h, assuming that $b$ decreases with depth.

Keyword arguments

  • Δb: Buoyancy differential used to calculate mixed layer depth
  • field_kw: Keyword arguments passed to Field.


h = MixedLayerDepth(model)
compute!(h) # compute mixed layer depth