Giter Club home page Giter Club logo

marbl's Introduction

---------------------------------
| MARBL Developers Mailing List |
---------------------------------

You can join the MARBL developers mailing list at

https://groups.google.com/forum/#!forum/marbl-dev

-----------------------
| MARBL Documentation |
-----------------------

MARBL documentation is compiled by sphinx and hosted by github pages.
It can be found on the web at

https://marbl-ecosys.github.io

---------------
| About MARBL |
---------------

The MARine Biogeochemistry Library (MARBL) is organized as follows:

    MARBL
    ├── MARBL_tools                   Python scripts to help GCMs configure MARBL
    ├── autogenerated_src
    ├── docs                          Documentation
    │   └── src                       RestructedText files (converted to HTML via sphinx)
    ├── include                       Subdirectories contain default location for module files
    |   |                             to be included when linking the MARBL library
    |   |                             * subdirectories for each compiler / MPI option
    │   ├── cray
    │   ├── gnu
    │   ├── gnu-mpi
    │   ├── intel
    │   ├── intel-mpi
    │   ├── nag
    │   ├── nag-mpi
    │   ├── pgi
    │   └── pgi-mpi
    ├── lib                           Default location of libmarbl.a (or libmarbl-[compiler].a)
    ├── src                           Source code for MARBL library (Fortran)
    └── tests
        ├── bld_tests                 Test the MARBL build system
        |                             (library build as well as fortran driver executable)
        ├── driver_exe                Default location for marbl.exe (or marbl-mpi.exe)
        ├── driver_src                Fortran source code for the stand-alone driver used
        |                             by the test system (calls into MARBL library)
        ├── input_files               Input files for regression tests
        ├── obj                       Subdirectories contain default location for object files
        |   |                         * subdirectories for each compiler / MPI option, which are
        |   |                           then further divided to separate stand-alone driver objects
        |   |                           from library objects
        │   ├── cray
        │   │   └── driver
        │   ├── gnu
        │   │   └── driver
        │   ├── gnu-mpi
        │   │   └── driver
        │   ├── intel
        │   │   └── driver
        │   ├── intel-mpi
        │   │   └── driver
        │   ├── nag
        │   │   └── driver
        │   ├── nag-mpi
        │   │   └── driver
        │   ├── pgi
        │   │   └── driver
        │   └── pgi-mpi
        │       └── driver
        ├── python_for_tests          Python modules for code that is used by multiple test
        |                             scripts. E.g. routines to parse command line arguments,
        |                             build the library, or load modules on supported machines
        ├── regression_tests          Tests that produce output with various MARBL configurations
        │   |                         so developers can quickly check the effect of new code
        │   ├── gen_input_file        Generate a valid input file
        │   ├── init                  Run initialization
        │   ├── init-twice            Initialize, finalize, and initialize again
        |   |                         * Ensures memory is deallocated correctly in finalize
        │   ├── requested_diags       List all diagnostics being provided by MARBL
        │   ├── requested_forcings    List all forcing fields MARBL requests from GCM
        │   ├── requested_restoring   List all tracers MARBL will apply restoring to
        │   └── requested_tracers     List all tracers MARBL will provide tendencies for
        └── unit_tests                Tests that check the functionality of small pieces of the code
            ├── get_put               Make sure parameters are registered correctly for
            |                         get_setting() and put_setting()
            └── utils_routines        Make sure all tools provided in marbl_utils_mod.F90
                                       what they claim to do (esp. tests edge cases)

marbl's People

Contributors

mnlevy1981 avatar klindsay28 avatar

Watchers

James Cloos avatar  avatar

marbl's Issues

modify_Tfunc branch: make settings_cesm2.1+cocco.yaml (and .json)

For POP, this will let users set OCN_BGC_CONFIG = cesm2.1+cocco to get the correct tunings out of the box. This is tied to two other updates:

  1. Remove QCaCO3_max_exp (just set QCaCO3_max to 2.0 in the cocco settings file)
  2. copy the current settings_latest.yaml file to settings_cesm2.1.yaml

modify_Tfunc branch: clean up comments

The comments in compute_autotroph_calcification(), specifically, were noticed because they are out of date (discussing biomass instead of growth). We should go through all of the comments and make sure they are correct.

modify_Tfunc branch: overhaul of temp_func_form

  1. Make temp_func_form_opt a per-autotroph (and per-zooplankton) option
  2. Define temp_func_form_iopt_power for power function scaling
  3. Coccolithophores should use the power function scaling

End result is that we don't need

          if (lexplicit_calcifier(Tfunc_ind)) then
            Tfunc(Tfunc_ind,:) = 0.12_r8 * (max(c0, min(temperature(:), 27.0_r8))**0.4_r8)
          else
            Tfunc(Tfunc_ind,:) = Q_10**(((temperature(:) + T0_Kelvin) - (Tref + T0_Kelvin)) / c10)
          end if

in the Q10 block because that isn't a form of Q10 scaling.

modify_Tfunc branch: better trigger than ((autotroph_calcifier)) for carbon limitation diagnostics

Introduce an autotroph setting named is_carbon_limited and then the updates to the diagnostics YAML file would be

((autotroph_sname))_C_lim_surf :
   dependencies :
      ((autotroph_is_carbon_limited)) : true
   longname : ((autotroph_lname)) C Limitation, Surface
   units : 1
   vertical_grid : none
   frequency : medium
   operator : average
((autotroph_sname))_C_lim_Cweight_avg_100m :
   dependencies :
      ((autotroph_is_carbon_limited)) : true
   longname : ((autotroph_lname)) C Limitation, carbon biomass weighted average over 0-100m
   units : 1
   vertical_grid : none
   frequency : medium
   operator : average

Notes:

  1. This will require updating MARBL_share.py to add template_fill_dict['autotroph_is_carbon_limited']
  2. Only define (and compute) the carbon limitation diagnostics in marbl_diagnostics_mod.F90 if this new flag is true
  3. This will then be updated when I tackle marbl-ecosys/MARBL#337, so I'll need to update that ticket after merging your PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.