Skip to content

Development Guidelines

Michael Levy edited this page Jun 8, 2014 · 1 revision

###Consistent naming for modules, procedures, variables, etc

Notes:

  • “this directory” is $CVMix/templates
  • only cvmix_MODULE.F90 exists at this time

Format of the files needed to include a new mixing method in CVMix

  1. See cvmix_MODULE.F90 in this directory for a template for what goes in the src/shared/ directory
    • Public routines: cvmix_init_MODULE, cvmix_coeffs_MODULE, cvmix_put_MODULE
  2. See cvmix_MODULE_drv.F90 in this directory for a template for what goes in the src/drivers/ directory
    • subroutine cvmix_MODULE_driver()
    • also need to edit cvmix_driver.F90 to add option to call routine
    • need reg_tests/ subdirectory with namelist, shell script
  3. See cvmix_MODULE.tex in the directory /manual for a template for what goes in the CVMix manual.

Requirements

  1. Use CVMix kind number for real variables (cvmix_r8 is double precision)
  • Two-space [soft] tabs
  • No more than 79 characters per line
  • Include developer contact information in all Fortran files
  • Include protex documentation
  • Include author contact info in Fortran module and chapter for description
  • Variable names in CVMix data types should be descriptive, with words separated by capital letters rather than underscores (OceanDepth rather than ocean_depth)

###Chapter for CVMix scientific description

For each module or method included in CVMix, there is a scientific documentation included as part of the CVMix manual. This documentation chapter can be brief, amounting to the citation of a few key papers, or more thorough and pedagogical (e.g., see the KPP chapter). The author of any new scheme should recognize that many users first go to the documentation. It is therefore important to provide a readable pedagogical overview of the scheme to ensure intelligent use of the CVMix module. Complexity of the documentation is directly related to complexity of the parameterization.