Skeleton ocean-atmosphere configuration

A "skeleton" ocean-atmosphere configuration, defining Domains and fluxes but no biogeochemistry. Illustrative fluxes are configured for a C, O, P model.

yaml configuration file

The model configuration (file examples/skeleton_configuration/PALEO_examples_oceanskeleton_cfg.yaml) contains:




# skeleton atmosphere-ocean configuration
# This defines Domains and fluxes, with no state variables or biogeochemistry
# Illustrative fluxes are defined for a carbon, oxygen, phosphorus model.
ocean_skeleton_COP:
    parameters:
        CIsotope:   IsotopeLinear
    domains:
        
        global:
            # scalar domain used for budgets and forcings
            reactions:
                
        atm:
            # scalar domain for atmospheric reservoirs and chemistry            
            reactions:

                # apply air-sea flux to atmosphere                
                transfer_fluxAtmtoOceansurface:
                    class: ReactionFluxTransfer
                    parameters:
                        transfer_matrix:      Distribute
                        transfer_multiplier:  -1.0  
                        input_fluxes:         fluxAtmtoOceansurface.flux_$fluxname$
                        output_fluxes:        $fluxname$_sms

        fluxAtmtoOceansurface:
            # air-sea exchange fluxes
            reactions:
                fluxtarget:
                    class: ReactionFluxTarget                    
                    parameters:
                        flux_totals: true
                        fluxlist: ["CO2::CIsotope", "O2"]

        oceansurface:
            # air-sea exchange reactions
            reactions:

                # apply air-sea flux to ocean surface
                transfer_fluxAtmtoOceansurface:
                    class: ReactionFluxTransfer
                    parameters:
                        transfer_matrix:      Identity
                        input_fluxes:         fluxAtmtoOceansurface.flux_$fluxname$
                        output_fluxes:        ocean.oceansurface.$fluxname$_sms                       
                    variable_links:                        
                        output_CO2:           ocean.oceansurface.DIC_sms           

        ocean:
            reactions:
                # transport reaction defines geometry and implements ocean transport
                transport3box:
                    class: ReactionOceanTransport3box 
                    parameters:
                        temp:             [21.5, 2.0, 2.0]
                        temp_trackglobal: false
                        
        fluxOceanfloor:
            # particulate and solute ocean floor fluxes
            reactions:
                particulatefluxtarget:
                    class: ReactionFluxTarget                    
                    parameters:
                        flux_totals: true
                        target_prefix: particulateflux_
                        fluxlist: ["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] # particulate organic matter is defined by Corg, N, P, Ccarb components

                solutefluxtarget:
                    class: ReactionFluxTarget                    
                    parameters:
                        flux_totals: true
                        target_prefix: soluteflux_
                        fluxlist: ["DIC::CIsotope", "TAlk", "P", "O2"] # , "Ca"  # solute fluxes should match ocean reservoirs

        oceanfloor:
            # reactions that remineralize or bury particulate fluxes
            reactions:

                # apply particulate fluxes to oceanfloor
                transfer_particulatefluxOceanfloor:
                    class: ReactionFluxTransfer
                    parameters:
                        transfer_matrix:      Identity
                        input_fluxes:         fluxOceanfloor.particulateflux_$fluxname$
                        output_fluxes:        particulateflux_$fluxname$                       
                    variable_links:                        

                # apply solute fluxes to ocean
                transfer_solutefluxOceanfloor:
                    class: ReactionFluxTransfer
                    parameters:
                        transfer_matrix:      Identity
                        input_fluxes:         fluxOceanfloor.soluteflux_$fluxname$
                        output_fluxes:        ocean.oceanfloor.$fluxname$_sms                       
                    variable_links:      

        fluxOceanBurial:
            # burial fluxes
            reactions:
                target:
                    class: ReactionFluxTarget
                    parameters:
                        flux_totals: true                        
                        fluxlist: ["Ccarb::CIsotope", "Corg::CIsotope", "P", "Pauth", "PFe", "Porg", ]              

Variables defined

julia> include("PALEO_examples_oceanskeleton.jl")
show(PB.show_variables(model); allrows=true, allcols=true, eltypes=false, show_row_number=false)
48×8 DataFrame
 domain                 name                         type                      units     vfunction     space        field_data     description
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 fluxAtmtoOceansurface  flux_CO2                     VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxAtmtoOceansurface  flux_O2                      VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxAtmtoOceansurface  flux_total_CO2               VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxAtmtoOceansurface  flux_total_O2                VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanBurial        flux_Ccarb                   VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxOceanBurial        flux_Corg                    VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxOceanBurial        flux_P                       VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanBurial        flux_PFe                     VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanBurial        flux_Pauth                   VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanBurial        flux_Porg                    VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanBurial        flux_total_Ccarb             VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxOceanBurial        flux_total_Corg              VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxOceanBurial        flux_total_P                 VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanBurial        flux_total_PFe               VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanBurial        flux_total_Pauth             VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanBurial        flux_total_Porg              VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanfloor         particulateflux_Ccarb        VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxOceanfloor         particulateflux_Corg         VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxOceanfloor         particulateflux_N            VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanfloor         particulateflux_P            VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanfloor         particulateflux_total_Ccarb  VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxOceanfloor         particulateflux_total_Corg   VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxOceanfloor         particulateflux_total_N      VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanfloor         particulateflux_total_P      VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanfloor         soluteflux_DIC               VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    IsotopeLinear  flux input
 fluxOceanfloor         soluteflux_O2                VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanfloor         soluteflux_P                 VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanfloor         soluteflux_TAlk              VariableDomContribTarget  mol yr-1  VF_Undefined  CellSpace    ScalarData     flux input
 fluxOceanfloor         soluteflux_total_DIC         VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  IsotopeLinear  total flux input
 fluxOceanfloor         soluteflux_total_O2          VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanfloor         soluteflux_total_P           VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 fluxOceanfloor         soluteflux_total_TAlk        VariableDomPropDep        mol yr-1  VF_Undefined  ScalarSpace  ScalarData     total flux input
 ocean                  Abox                         VariableDomPropDep        m^2       VF_Undefined  CellSpace    ScalarData     horizontal area of box
 ocean                  pressure                     VariableDomPropDep        dbar      VF_Undefined  CellSpace    ScalarData     Ocean pressure
 ocean                  rho                          VariableDomPropDep        kg m^-3   VF_Undefined  CellSpace    ScalarData     physical ocean density
 ocean                  rho_ref                      VariableDomPropDep        kg m^-3   VF_Undefined  CellSpace    ScalarData     Ocean transport model density co…
 ocean                  sal                          VariableDomPropDep        psu       VF_Undefined  CellSpace    ScalarData     Ocean salinity
 ocean                  temp                         VariableDomPropDep        K         VF_Undefined  CellSpace    ScalarData     Ocean temperature
 ocean                  volume                       VariableDomPropDep        m^3       VF_Undefined  CellSpace    ScalarData     volume of ocean cells
 ocean                  volume_total                 VariableDomPropDep        m^3       VF_Undefined  ScalarSpace  ScalarData     total volume of ocean cells
 ocean                  zlower                       VariableDomPropDep        m         VF_Undefined  CellSpace    ScalarData     depth of lower surface of box (m)
 ocean                  zmid                         VariableDomPropDep        m         VF_Undefined  CellSpace    ScalarData     mean depth of box
 ocean                  zupper                       VariableDomPropDep        m         VF_Undefined  CellSpace    ScalarData     depth of upper surface of box (m…
 oceanfloor             Afloor                       VariableDomPropDep        m^2       VF_Undefined  CellSpace    ScalarData     horizontal area of seafloor at b…
 oceanfloor             Afloor_total                 VariableDomPropDep        m^2       VF_Undefined  ScalarSpace  ScalarData     total area of seafloor
 oceanfloor             zfloor                       VariableDomPropDep        m         VF_Undefined  CellSpace    ScalarData     depth of ocean floor (m, -ve)
 oceansurface           Asurf                        VariableDomPropDep        m^2       VF_Undefined  CellSpace    ScalarData     horizontal area of oceansurface
 oceansurface           open_area_fraction           VariableDomPropDep                  VF_Undefined  CellSpace    ScalarData     fraction of area open to atmosph…

ocean, oceansurface, and oceanfloor Variables are standard grid variables, provided by the ocean transport Reaction (a ReactionOceanTransport3box in this case).

Flux target Variables to accumulate exchange fluxes are provided by ReactionFluxTarget Reactions, the illustrative configuration here defines fluxes for a C, O, P model with atmospheric state variables CO2, O2, and ocean state variables including DIC, TAlk, O2 and P.