.. MIDAS documentation master file

Welcome to MIDAS documentation
==============================

This is the documentation for version v_3.9.1

This is the automatically generated MIDAS documentation. Below you
will find a list of all fortran programs and modules that make up
the MIDAS software. Documentation in the fortran code that appears 
in comments immediately following the program or module or subroutine
statement will be included. It can be formatted using *reStructuredText*.
A primer on this markup language can be found here:

https://sphinx-tutorial.readthedocs.io/cheatsheet/

https://matplotlib.org/sampledoc/cheatsheet.html

High-level documentation
========================

* Introduction: :doc:`what is MIDAS? <what_is_midas>`

* MIDAS :doc:`code design philosophy. <midas_design_philosophy>`

* Overall MIDAS :doc:`code design description. <overall_midas_design>`

* Use of :doc:`MPI parallelization in MIDAS. <mpi_in_midas>`

* MIDAS  `coding standards <https://gitlab.science.gc.ca/atmospheric-data-assimilation/midas/blob/main/docs/codingStandards.md>`_


Programs
========

.. toctree::
   :maxdepth: 2

   programs/midas_adjointTest
   programs/midas_analysisErrorOI
   programs/midas_calcStats
   programs/midas_diagBmatrix
   programs/midas_diagHBHt
   programs/midas_ensembleH
   programs/midas_ensPostProcess
   programs/midas_extractBmatrixFor1Dvar
   programs/midas_genCoeff
   programs/midas_letkf
   programs/midas_obsImpact
   programs/midas_obsSelection
   programs/midas_oMinusF
   programs/midas_prepcma
   programs/midas_pseudoSSTobs
   programs/midas_randomPert
   programs/midas_sstBias
   programs/midas_sstTrial
   programs/midas_thinning
   programs/midas_var1D
   programs/midas_var

Modules: 1. High-level functionality
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/analysiserroroi_mod
   modules/backgroundcheck_mod
   modules/bgckcsr_mod
   modules/bgckmicrowave_mod
   modules/bgckocean_mod
   modules/bgckssmis_mod
   modules/biascorrectionconv_mod
   modules/biascorrectionsat_mod
   modules/calcstatsglb_mod
   modules/calcstatslam_mod
   modules/enkf_mod
   modules/enspostprocess_mod
   modules/fsoi_mod
   modules/increment_mod
   modules/innovation_mod
   modules/menetrierdiag_mod
   modules/minimization_mod
   modules/multiirbgck_mod
   modules/obsspacediag_mod
   modules/obsspaceerrorstddev_mod
   modules/oceanbackground_mod
   modules/oceanobservations_mod
   modules/ominusf_mod
   modules/quasinewton_mod
   modules/residual_mod
   modules/sstbias_mod
   modules/thinning_mod
   modules/varqc_mod

Modules: 2. B and R matrices
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/bmatrix1dvar_mod
   modules/bmatrixchem_mod
   modules/bmatrixdiff_mod
   modules/bmatrixensemble_mod
   modules/bmatrixhi_mod
   modules/bmatrix_mod
   modules/lambmatrixhi_mod
   modules/localizationfunction_mod
   modules/localization_mod
   modules/localizationspectral_mod
   modules/obserrors_mod
   modules/rmatrix_mod

Modules: 3. Observation input/output
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/burpfiles_mod
   modules/burpread_mod
   modules/obsdbfiles_mod
   modules/obsdiagfiles_mod
   modules/obsfiles_mod
   modules/obsutil_mod
   modules/sqlitefiles_mod
   modules/sqliteread_mod
   modules/sqliteutilities_mod

Modules: 4. Data object transformations
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/advection_mod
   modules/calcheightandpressure_mod
   modules/columnvariabletransforms_mod
   modules/diffusion_mod
   modules/globalspectraltransform_mod
   modules/gridbinning_mod
   modules/gridstatevectorfileio_mod
   modules/gridvariabletransforms_mod
   modules/humiditylimits_mod
   modules/interpolation_mod
   modules/lamspectraltransform_mod
   modules/obstimeinterp_mod
   modules/obsvariabletransforms_mod
   modules/statetocolumn_mod
   modules/var1d_mod
   modules/verticalmodes_mod
   modules/windrotation_mod

Modules: 5. Observation operators
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/costfunction_mod
   modules/gps_mod
   modules/obsfilter_mod
   modules/obsoperatorschem_mod
   modules/obsoperators_mod
   modules/ozoneclim_mod
   modules/radialvelocity_mod
   modules/slantprofilelatlon_mod
   modules/tovslin_mod
   modules/tovsnl_mod

Modules: 6. High-level data objects
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/bcovarsetupchem_mod
   modules/columndata_mod
   modules/controlvector_mod
   modules/ensembleobservations_mod
   modules/ensemblestatevector_mod
   modules/gridstatevector_mod
   modules/obsspacedata_mod
   modules/obssubspacedata_mod

Modules: 7. Low-level data objects
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/filenames_mod
   modules/horizontalcoord_mod
   modules/indexlistdepot_mod
   modules/lamanalysisgridtransforms_mod
   modules/obscolumnnames_mod
   modules/obsdatacolumn_mod
   modules/obsfamilylist_mod
   modules/oceanmask_mod
   modules/regions_mod
   modules/timecoord_mod
   modules/varnamelist_mod
   modules/verticalcoord_mod

Modules: 8. Low-level utilities and constants
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/bufr_mod
   modules/codeprecision_mod
   modules/codtyp_mod
   modules/earthconstants_mod
   modules/getgridposition_mod
   modules/kdtree2_mod
   modules/kdtree2_precision_mod
   modules/kdtree2_priority_queue_mod
   modules/mathphysconstants_mod
   modules/message_mod
   modules/midasmpi_mod
   modules/physicsfunctions_mod
   modules/presprofileoperators_mod
   modules/ramdisk_mod
   modules/randomnumber_mod
   modules/spectralfilter_mod
   modules/utilities_mod
   modules/version_mod

Modules: 9. Global interfaces
===========================================================================

.. toctree::
   :maxdepth: 2

   modules/clibinterfaces_mod
   modules/rttovinterfaces_mod

Additional information
======================

* Namelists: Information is :doc:`here on which namelists are used for each program. <namelists_in_each_program>`

* Namelists: Information is `here on the definition of all namelists. <namelists.html>`_

* TMG timing blocks: Information is :doc:`here on the numbering and labelling of all TMG timing blocks. <tmg_information>`

Indices and tables
==================

* :ref:`genindex`
* :ref:`search`