Skip to content

Coupler Conventions

Julia Sloan edited this page Apr 10, 2024 · 1 revision
  • all vertical fluxes: upward positive
  • mask: contains only 0s and 1s; otherwise refer to as area fraction
  • bang functions!: = first argument is the one being modified.
  • get_... = no allocations
  • src/ functions have no dependency on component model data structure (e.g., integrator.u.c.u)
  • variables in functions - shall we create pointers at the beginning and then be less verbose in the function operations?
  • decide on what nomenclature and units we want to support for the coupler fields, and list them here
  • docs: show internal functions?
  • we shouldn't use magic numbers - e.g. 1309 here

Package import convention

  • if using a Clima package that we commonly use, use import PackageName as PN (e.g. ClimaAtmos -> CA, SurfaceFluxes -> SF; see package shorthands below)
  • if using an external package, use import PackageName (e.g. for Dates or JLD2)
  • if using a module within ClimaCoupler, use import ClimaCoupler: Module1, Module2, ..., and qualify functions/structs within the code using Module1.___, Module2.___, etc
  • maintain flexibility within this approach, especially to prevent the need to qualify e.g. macros or symbols we use from other packages

package shorthands:

  • ClimaAtmos -> CA
  • ClimaCore -> CC
  • ClimaCoreTempestRemap -> CCTR
  • ClimaLand -> CL
  • SurfaceFluxes -> SF
  • Thermodynamics -> TD
  • ClimaAnalysis -> CAN